This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-0.15 in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
commit dce0a1e0e0285078c1abce0ec45a5584847549be Author: pengxiangyu <[email protected]> AuthorDate: Sun Oct 17 22:53:28 2021 +0800 [BUG] fix bug for schema schange (#6839) This commit has an error: #6791 when you only change the order of column, error will apear. --- .../org/apache/doris/alter/SchemaChangeHandler.java | 4 ++-- .../test/java/org/apache/doris/alter/AlterTest.java | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) 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 313ad47..2e6ba17 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 @@ -1221,7 +1221,7 @@ public class SchemaChangeHandler extends AlterHandler { for (Column alterColumn : alterSchema) { if (alterColumn.nameEquals(partitionCol.getName(), true)) { // 2.1 partition column cannot be modified - if (needAlterColumns.contains(alterColumn)) { + if (needAlterColumns.contains(alterColumn) && !alterColumn.equals(partitionCol)) { throw new DdlException("Can not modify partition column[" + partitionCol.getName() + "]. index[" + olapTable.getIndexNameById(alterIndexId) + "]"); @@ -1250,7 +1250,7 @@ public class SchemaChangeHandler extends AlterHandler { for (Column alterColumn : alterSchema) { if (alterColumn.nameEquals(distributionCol.getName(), true)) { // 3.1 distribution column cannot be modified - if (needAlterColumns.contains(alterColumn)) { + if (needAlterColumns.contains(alterColumn) && !alterColumn.equals(distributionCol)) { throw new DdlException("Can not modify distribution column[" + distributionCol.getName() + "]. index[" + olapTable.getIndexNameById(alterIndexId) + "]"); diff --git a/fe/fe-core/src/test/java/org/apache/doris/alter/AlterTest.java b/fe/fe-core/src/test/java/org/apache/doris/alter/AlterTest.java index a2a0667..92a05d9 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/alter/AlterTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/alter/AlterTest.java @@ -704,6 +704,26 @@ public class AlterTest { } + @Test + public void testChangeOrder() throws Exception { + createTable("CREATE TABLE test.change_order\n" + + "(\n" + + " k1 date,\n" + + " k2 int,\n" + + " v1 int sum\n" + + ")\n" + + "PARTITION BY RANGE(k1)\n" + + "(\n" + + " PARTITION p1 values less than('2020-02-01'),\n" + + " PARTITION p2 values less than('2020-03-01')\n" + + ")\n" + + "DISTRIBUTED BY HASH(k2) BUCKETS 3\n" + + "PROPERTIES('replication_num' = '1');"); + + String changeOrderStmt = "ALTER TABLE test.change_order ORDER BY (k2, k1, v1);;"; + alterTable(changeOrderStmt, false); + } + private boolean checkAllTabletsExists(List<Long> tabletIds) { TabletInvertedIndex invertedIndex = Catalog.getCurrentCatalog().getTabletInvertedIndex(); for (long tabletId : tabletIds) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
