From 382f6946f7fa2a8d85b4d8d92514b5d598c761d5 Mon Sep 17 00:00:00 2001 From: yangzhg Date: Mon, 28 Sep 2020 15:29:59 +0800 Subject: [PATCH 1/3] xx --- .../org/apache/doris/alter/MaterializedViewHandler.java | 8 +++++++- .../java/org/apache/doris/alter/SchemaChangeHandler.java | 4 ++-- .../src/main/java/org/apache/doris/catalog/OlapTable.java | 7 ++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java index d121a29ec7c5eb..4d597b85cf1e45 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java @@ -517,7 +517,7 @@ public List checkAndPrepareMaterializedView(AddRollupClause addRollupCla boolean meetReplaceValue = false; KeysType keysType = olapTable.getKeysType(); Map baseColumnNameToColumn = Maps.newHashMap(); - for (Column column : olapTable.getSchemaByIndexId(baseIndexId)) { + for (Column column : olapTable.getSchemaByIndexId(baseIndexId, false)) { baseColumnNameToColumn.put(column.getName(), column); } if (keysType.isAggregationFamily()) { @@ -555,6 +555,12 @@ public List checkAndPrepareMaterializedView(AddRollupClause addRollupCla throw new DdlException("Rollup should contains all keys if there is a REPLACE value"); } } + if (KeysType.UNIQUE_KEYS == olapTable.getKeysType() && olapTable.hasDeleteSign()) { + rollupSchema.add(new Column(olapTable.getDeleteSignColumn())); + } + if (KeysType.UNIQUE_KEYS == olapTable.getKeysType() && olapTable.hasSequenceCol()) { + rollupSchema.add(new Column(olapTable.getSequenceCol())); + } } } else if (KeysType.DUP_KEYS == keysType) { // supplement the duplicate key diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java index 916eb73398bcaa..6b061ed3831735 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java @@ -582,7 +582,7 @@ private void addColumnInternal(OlapTable olapTable, Column newColumn, ColumnPosi // check if the new column already exist in base schema. // do not support adding new column which already exist in base schema. - List baseSchema = olapTable.getBaseSchema(); + List baseSchema = olapTable.getBaseSchema(true); boolean found = false; for (Column column : baseSchema) { if (column.getName().equalsIgnoreCase(newColName)) { @@ -1381,7 +1381,7 @@ public void process(List alterClauses, String clusterName, Database // index id -> index schema Map> indexSchemaMap = new HashMap<>(); - for (Map.Entry> entry : olapTable.getIndexIdToSchema().entrySet()) { + for (Map.Entry> entry : olapTable.getIndexIdToSchema(true).entrySet()) { indexSchemaMap.put(entry.getKey(), new LinkedList<>(entry.getValue())); } List newIndexes = olapTable.getCopiedIndexes(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java index e30e896946b55d..660127c1962a3f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java @@ -514,9 +514,14 @@ public List getIndexIdListExceptBaseIndex() { // schema public Map> getIndexIdToSchema() { + return getIndexIdToSchema(Util.showHiddenColumns()); + } + + // schema + public Map> getIndexIdToSchema(boolean full) { Map> result = Maps.newHashMap(); for (Map.Entry entry : indexIdToMeta.entrySet()) { - result.put(entry.getKey(), entry.getValue().getSchema(Util.showHiddenColumns())); + result.put(entry.getKey(), entry.getValue().getSchema(true)); } return result; } From 27274c1da478d8abb915ec5eb6e1a5efd3eb9eaf Mon Sep 17 00:00:00 2001 From: yangzhg Date: Mon, 28 Sep 2020 15:58:26 +0800 Subject: [PATCH 2/3] xx --- .../java/org/apache/doris/alter/MaterializedViewHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java index 4d597b85cf1e45..3e920907cfd25e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java @@ -517,7 +517,7 @@ public List checkAndPrepareMaterializedView(AddRollupClause addRollupCla boolean meetReplaceValue = false; KeysType keysType = olapTable.getKeysType(); Map baseColumnNameToColumn = Maps.newHashMap(); - for (Column column : olapTable.getSchemaByIndexId(baseIndexId, false)) { + for (Column column : olapTable.getSchemaByIndexId(baseIndexId, true)) { baseColumnNameToColumn.put(column.getName(), column); } if (keysType.isAggregationFamily()) { From d61291520ccf1a2298fb19d4cee48e012fc34c5b Mon Sep 17 00:00:00 2001 From: yangzhg Date: Mon, 28 Sep 2020 16:03:38 +0800 Subject: [PATCH 3/3] xx --- .../src/main/java/org/apache/doris/catalog/OlapTable.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java index 660127c1962a3f..8ae24b327070b2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java @@ -521,7 +521,7 @@ public Map> getIndexIdToSchema() { public Map> getIndexIdToSchema(boolean full) { Map> result = Maps.newHashMap(); for (Map.Entry entry : indexIdToMeta.entrySet()) { - result.put(entry.getKey(), entry.getValue().getSchema(true)); + result.put(entry.getKey(), entry.getValue().getSchema(full)); } return result; }