You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2023/06/10 14:56:39 UTC

[doris] 08/10: [fix](replay) fix truncate partition name need case insensitive (#20098)

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

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git

commit ccdc63634dca6b9c0376a11d2a4f3cf5737bb732
Author: xueweizhang <zx...@163.com>
AuthorDate: Fri Jun 9 09:34:55 2023 +0800

    [fix](replay) fix truncate partition name need case insensitive (#20098)
    
    truncate table with partition name need case insensitive
---
 .../apache/doris/datasource/InternalCatalog.java   |  2 +-
 .../suites/ddl_p0/test_truncate_table.groovy       | 63 ++++++++++++++++++++++
 2 files changed, 64 insertions(+), 1 deletion(-)

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 ce760a38bf..beaf2c4794 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
@@ -2535,7 +2535,7 @@ public class InternalCatalog implements CatalogIf<Database> {
         TableName dbTbl = tblRef.getName();
 
         // check, and save some info which need to be checked again later
-        Map<String, Long> origPartitions = Maps.newHashMap();
+        Map<String, Long> origPartitions = Maps.newTreeMap(String.CASE_INSENSITIVE_ORDER);
         Map<Long, DistributionInfo> partitionsDistributionInfo = Maps.newHashMap();
         OlapTable copiedTbl;
 
diff --git a/regression-test/suites/ddl_p0/test_truncate_table.groovy b/regression-test/suites/ddl_p0/test_truncate_table.groovy
new file mode 100644
index 0000000000..e983915f22
--- /dev/null
+++ b/regression-test/suites/ddl_p0/test_truncate_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_truncate_table") {
+    def testTable = "test_truncate_table"
+
+    sql "DROP TABLE IF EXISTS ${testTable}"
+
+    sql """
+        CREATE TABLE ${testTable}
+		(
+			k1 DATE,
+			k2 DECIMAL(10, 2) DEFAULT "10.5",
+			k3 CHAR(10) COMMENT "string column",
+			k4 INT NOT NULL DEFAULT "1" COMMENT "int column"
+		)
+		PARTITION BY RANGE(k1)
+		(
+			PARTITION p1 VALUES LESS THAN ("2020-02-01"),
+			PARTITION p2 VALUES LESS THAN ("2020-03-01"),
+			PARTITION p3 VALUES LESS THAN ("2020-04-01")
+		)
+		DISTRIBUTED BY HASH(k2) BUCKETS 32
+		PROPERTIES (
+			"replication_num" = "1"
+		);
+		"""
+    List<List<Object>> result = sql "show partitions from ${testTable}"
+    logger.info("${result}")
+    assertEquals(result.size(), 3)
+    assertEquals(result.get(0).get(1), "p1")	
+
+    sql """truncate table ${testTable};"""
+    result = sql "show partitions from ${testTable}"
+    logger.info("${result}")
+    assertEquals(result.size(), 3)
+    assertEquals(result.get(0).get(1), "p1")
+
+    sql """truncate table ${testTable} partitions (p1, P1);"""
+
+    result = sql "show partitions from ${testTable}"
+    logger.info("${result}")
+    assertEquals(result.size(), 3)
+    assertEquals(result.get(0).get(1), "p1")
+	
+    sql "DROP TABLE IF EXISTS ${testTable}"
+}
+


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