This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new 4c4dc72a360 branch-4.0: [fix](schema-change) Fix distribution columns 
with varchar type could not increase length #56743 (#56971)
4c4dc72a360 is described below

commit 4c4dc72a360deee751373a1209ff26587c0bb204
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Oct 16 09:56:49 2025 +0800

    branch-4.0: [fix](schema-change) Fix distribution columns with varchar type 
could not increase length #56743 (#56971)
    
    Cherry-picked from #56743
    
    Co-authored-by: Siyang Tang <[email protected]>
---
 .../trees/plans/commands/info/ModifyColumnOp.java    |  4 ----
 .../test_col_data_type_boundary.groovy               | 20 ++++++++++----------
 ...est_dynamic_partition_mod_distribution_key.groovy |  1 +
 .../test_alter_table_modify_column.groovy            |  2 +-
 .../schema_change_p0/test_schema_change_agg.groovy   |  4 ++--
 5 files changed, 14 insertions(+), 17 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ModifyColumnOp.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ModifyColumnOp.java
index 8e18963bc0b..7a964dcebe4 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ModifyColumnOp.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ModifyColumnOp.java
@@ -110,10 +110,6 @@ public class ModifyColumnOp extends AlterTableOp {
                     columnDef.setIsKey(originalColumn.isKey());
                 }
                 schemaColumns = olapTable.getFullSchema();
-                if 
(olapTable.getPartitionColumnNames().contains(colName.toLowerCase())
-                        || 
olapTable.getDistributionColumnNames().contains(colName.toLowerCase())) {
-                    throw new AnalysisException("Can not modify partition or 
distribution column : " + colName);
-                }
                 long baseIndexId = olapTable.getBaseIndexId();
                 for (Map.Entry<Long, MaterializedIndexMeta> entry : 
olapTable.getVisibleIndexIdToMeta().entrySet()) {
                     long indexId = entry.getKey();
diff --git 
a/regression-test/suites/partition_p0/auto_partition/test_col_data_type_boundary.groovy
 
b/regression-test/suites/partition_p0/auto_partition/test_col_data_type_boundary.groovy
index 2e4776d1db5..f8e3732ecd2 100644
--- 
a/regression-test/suites/partition_p0/auto_partition/test_col_data_type_boundary.groovy
+++ 
b/regression-test/suites/partition_p0/auto_partition/test_col_data_type_boundary.groovy
@@ -71,7 +71,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
@@ -104,7 +104,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
@@ -137,7 +137,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
@@ -170,7 +170,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
@@ -246,7 +246,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
@@ -274,7 +274,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
@@ -303,7 +303,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
@@ -332,7 +332,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
@@ -360,7 +360,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
@@ -388,7 +388,7 @@ suite("test_col_data_type_boundary") {
         if (isClusterKeyEnabled()) {
             assertTrue(e.getMessage().contains("Can not modify "))
         } else {
-            assertTrue(e.getMessage().contains("Can not modify partition or 
distribution column"))
+            assertTrue(e.getMessage().contains("Can not modify partition 
column"))
         }
     }
 
diff --git 
a/regression-test/suites/partition_p0/dynamic_partition/test_dynamic_partition_mod_distribution_key.groovy
 
b/regression-test/suites/partition_p0/dynamic_partition/test_dynamic_partition_mod_distribution_key.groovy
index 8b6130a73fc..1079ca04f81 100644
--- 
a/regression-test/suites/partition_p0/dynamic_partition/test_dynamic_partition_mod_distribution_key.groovy
+++ 
b/regression-test/suites/partition_p0/dynamic_partition/test_dynamic_partition_mod_distribution_key.groovy
@@ -49,6 +49,7 @@ suite("test_dynamic_partition_mod_distribution_key") {
         """
 
         sql """ alter table ${tableName} modify column k1 comment 
'new_comment_for_k1' """
+        sql """ alter table ${tableName} modify column k2 varchar(255) """
 
         sql """ ADMIN SET FRONTEND CONFIG 
('dynamic_partition_check_interval_seconds' = '1') """
         sql """ alter table ${tableName} set('dynamic_partition.end'='5') """
diff --git 
a/regression-test/suites/schema_change_p0/test_alter_table_modify_column.groovy 
b/regression-test/suites/schema_change_p0/test_alter_table_modify_column.groovy
index b402234437c..62be33543da 100644
--- 
a/regression-test/suites/schema_change_p0/test_alter_table_modify_column.groovy
+++ 
b/regression-test/suites/schema_change_p0/test_alter_table_modify_column.groovy
@@ -180,7 +180,7 @@ suite("test_alter_table_modify_column") {
     test {
         sql """alter table ${dupTableName} modify COLUMN siteid BIGINT key 
DEFAULT '10' first;"""
         // check exception message contains
-        exception "Can not modify partition or distribution column : siteid"
+        exception "Can not modify distribution column"
     }
 
     sql """alter table ${dupTableName} modify COLUMN username VARCHAR(32) key 
DEFAULT 'test' first;"""
diff --git 
a/regression-test/suites/schema_change_p0/test_schema_change_agg.groovy 
b/regression-test/suites/schema_change_p0/test_schema_change_agg.groovy
index e7f37a09272..e1cc5a47dfe 100644
--- a/regression-test/suites/schema_change_p0/test_schema_change_agg.groovy
+++ b/regression-test/suites/schema_change_p0/test_schema_change_agg.groovy
@@ -198,14 +198,14 @@ suite("test_schema_change_agg", "p0") {
     //partition col
     test {
         sql "alter table ${tableName3} modify column siteid varchar DEFAULT 
'10'"
-        exception "Can not modify partition or distribution column : siteid"
+        exception "Can not modify partition column[siteid]."
     }
 
     //distribution key
 
     test {
         sql "alter table ${tableName3} modify column citycode smallint  
comment 'citycode'"
-        exception "Can not modify partition or distribution column : citycode"
+        exception "Can not modify distribution column[citycode]. 
index[${tableName3}]"
     }
 
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to