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

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


The following commit(s) were added to refs/heads/master by this push:
     new ac6cd947c72 [fix](table) Disable create, alter auto bucket table with 
colocate (#44396)
ac6cd947c72 is described below

commit ac6cd947c725296113cdd4e070fcff5cced65f27
Author: deardeng <deng...@selectdb.com>
AuthorDate: Sun Nov 24 19:14:40 2024 +0800

    [fix](table) Disable create, alter auto bucket table with colocate (#44396)
    
    Colorate and auto bucket are naturally mutually exclusive, so diable it
    now
---
 .../main/java/org/apache/doris/catalog/Env.java    |  3 ++
 .../apache/doris/datasource/InternalCatalog.java   |  3 ++
 .../suites/table_p0/test_colocate_table.groovy     | 63 ++++++++++++++++++++++
 3 files changed, 69 insertions(+)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index 85e041b88b5..7597a7d256b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -4868,6 +4868,9 @@ public class Env {
                     return;
                 }
             }
+            if (!isReplay && table.isAutoBucket()) {
+                throw new DdlException("table " + table.getName() + " is auto 
buckets");
+            }
             ColocateGroupSchema groupSchema = 
colocateTableIndex.getGroupSchema(fullAssignedGroupName);
             if (groupSchema == null) {
                 // user set a new colocate group,
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index ac5cfd59a37..3a9e96bade6 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -2938,6 +2938,9 @@ public class InternalCatalog implements 
CatalogIf<Database> {
                 if (defaultDistributionInfo.getType() == 
DistributionInfoType.RANDOM) {
                     throw new AnalysisException("Random distribution for 
colocate table is unsupported");
                 }
+                if (isAutoBucket) {
+                    throw new AnalysisException("Auto buckets for colocate 
table is unsupported");
+                }
                 String fullGroupName = GroupId.getFullGroupName(db.getId(), 
colocateGroup);
                 ColocateGroupSchema groupSchema = 
Env.getCurrentColocateIndex().getGroupSchema(fullGroupName);
                 if (groupSchema != null) {
diff --git a/regression-test/suites/table_p0/test_colocate_table.groovy 
b/regression-test/suites/table_p0/test_colocate_table.groovy
new file mode 100644
index 00000000000..514b6fe2e8c
--- /dev/null
+++ b/regression-test/suites/table_p0/test_colocate_table.groovy
@@ -0,0 +1,63 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite('test_colocate_table') {
+    def tbl = 'test_colocate_table'
+    sql "DROP TABLE IF EXISTS ${tbl} FORCE"
+    test {
+        sql """
+        CREATE TABLE IF NOT EXISTS ${tbl}
+        (
+           k1 date,
+           k2 int
+        )
+        ENGINE=OLAP
+        UNIQUE KEY (k1,k2)
+        DISTRIBUTED BY HASH(k2) BUCKETS AUTO
+        PROPERTIES
+        (
+            "replication_num" = "1",
+            "colocate_with" = "test_colocate_table_group"
+        )
+        """
+
+        exception 'Auto buckets for colocate table is unsupported'
+    }
+
+    sql """
+        CREATE TABLE IF NOT EXISTS ${tbl}
+        (
+            k1 date,
+            k2 int
+        )
+        ENGINE=OLAP
+        UNIQUE KEY (k1,k2)
+        DISTRIBUTED BY HASH(k2) BUCKETS AUTO
+        PROPERTIES
+        (
+            "replication_num" = "1"
+        )
+    """
+
+    test {
+        sql "ALTER TABLE ${tbl} set ( 'colocate_with' = 
'test_colocate_table_group') "
+
+        exception 'is auto buckets'
+    }
+
+    sql "DROP TABLE IF EXISTS ${tbl} FORCE"
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to