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

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


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new af3d66242b8 Branch-3.0 [SchemaChange](RowStore) forbid schema change 
to set property `store_row_column` for agg and mor table (#47019)
af3d66242b8 is described below

commit af3d66242b81a3f70c793f71d41d58d1424ae4f1
Author: lihangyu <[email protected]>
AuthorDate: Thu Jan 16 09:32:31 2025 +0800

    Branch-3.0 [SchemaChange](RowStore) forbid schema change to set property 
`store_row_column` for agg and mor table (#47019)
    
    cherry-pick from (#46973)
---
 .../apache/doris/alter/SchemaChangeHandler.java    |  5 ++++
 regression-test/suites/point_query_p0/load.groovy  | 35 +++++++++++++++++++++-
 .../suites/point_query_p0/test_rowstore.groovy     |  2 +-
 3 files changed, 40 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 884af89e026..e58d3c874b0 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
@@ -1381,6 +1381,11 @@ public class SchemaChangeHandler extends AlterHandler {
             List<String> oriRowStoreColumns = 
olapTable.getTableProperty().getCopiedRowStoreColumns();
             if ((oriRowStoreColumns != null && 
!oriRowStoreColumns.equals(rsColumns))
                     || storeRowColumn != olapTable.storeRowColumn()) {
+                // only support mow and duplicate model
+                if (!(olapTable.getKeysType() == KeysType.DUP_KEYS
+                        || olapTable.getEnableUniqueKeyMergeOnWrite())) {
+                    throw new DdlException("`store_row_column` only support 
duplicate model or mow model");
+                }
                 hasRowStoreChanged = true;
             }
         }
diff --git a/regression-test/suites/point_query_p0/load.groovy 
b/regression-test/suites/point_query_p0/load.groovy
index f3c3add91c1..8e7db326fb8 100644
--- a/regression-test/suites/point_query_p0/load.groovy
+++ b/regression-test/suites/point_query_p0/load.groovy
@@ -119,7 +119,7 @@ suite("test_load_and_schema_change_row_store", "p0") {
         UNIQUE KEY(`k1`)
         COMMENT 'OLAP'
         DISTRIBUTED BY HASH(`k1`) BUCKETS 10
-        PROPERTIES("replication_num" = "1");
+        PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" 
= "true");
         """
 
     wait_job_done.call("tbl_scalar_types_dup")
@@ -162,4 +162,37 @@ suite("test_load_and_schema_change_row_store", "p0") {
     }
     qt_sql "select /*+ 
SET_VAR(enable_nereids_planner=true,enable_short_circuit_query_access_column_store=false)*/
 k1, c_decimalv3 from tbl_scalar_types_dup_1 where k1 = -2147303679"
     sql "set enable_short_circuit_query_access_column_store = true"
+
+
+    sql "DROP TABLE IF EXISTS tbl_scalar_types_uk_not_mow"
+    sql """
+        CREATE TABLE IF NOT EXISTS tbl_scalar_types_uk_not_mow (
+            `k1` bigint(11) NULL,
+            `c_string` text NULL
+        ) ENGINE=OLAP
+        UNIQUE KEY(`k1`)
+        COMMENT 'OLAP'
+        DISTRIBUTED BY HASH(`k1`) BUCKETS 10
+        PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" 
= "false");
+        """
+    test {
+        sql """alter table tbl_scalar_types_uk_not_mow set ("store_row_column" 
= "true")"""    
+        exception("`store_row_column` only support duplicate model or mow 
model")
+    }
+
+    sql "DROP TABLE IF EXISTS tbl_scalar_types_agg"
+    sql """
+        CREATE TABLE IF NOT EXISTS tbl_scalar_types_agg(
+            `k1` bigint(11) NULL,
+            `c_string` text REPLACE_IF_NOT_NULL 
+        ) ENGINE=OLAP
+        AGGREGATE KEY(`k1`)
+        COMMENT 'OLAP'
+        DISTRIBUTED BY HASH(`k1`) BUCKETS 10
+        PROPERTIES("replication_num" = "1");
+        """
+    test {
+        sql """alter table tbl_scalar_types_agg set ("store_row_column" = 
"true")"""    
+        exception("`store_row_column` only support duplicate model or mow 
model")
+    }
 }
diff --git a/regression-test/suites/point_query_p0/test_rowstore.groovy 
b/regression-test/suites/point_query_p0/test_rowstore.groovy
index b95a66b26d6..42e65557af4 100644
--- a/regression-test/suites/point_query_p0/test_rowstore.groovy
+++ b/regression-test/suites/point_query_p0/test_rowstore.groovy
@@ -281,7 +281,7 @@ suite("test_rowstore", "p0,nonConcurrent") {
                "storage_format" = "V2"
                )
     """
-    sql "select /*+ SET_VAR(enable_nereids_planner=true)*/ * from 
table_with_column_group where k1 = 1"
+    sql "select /*+ SET_VAR(enable_nereids_planner=true, 
enable_short_circuit_query_access_column_store=true)*/ * from 
table_with_column_group where k1 = 1"
 
     sql """DROP TABLE IF EXISTS rs_query"""
     sql "set enable_decimal256 = true"


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

Reply via email to