This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new bc069ea [BUG] fix bug for schema schange (#6839)
bc069ea is described below
commit bc069eac8bd12afd04c4a86443dcbd3cec7214f5
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]