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

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


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new fbf3b52385b [fix](coldheat) fix missing partition's storage policy in 
create_table_like stmt (#47145)
fbf3b52385b is described below

commit fbf3b52385bab65b42f46c5f956de0ce52655555
Author: Yulei-Yang <yulei.yang0...@gmail.com>
AuthorDate: Mon Jan 20 10:55:50 2025 +0800

    [fix](coldheat) fix missing partition's storage policy in create_table_like 
stmt (#47145)
---
 .../apache/doris/catalog/ListPartitionInfo.java    |  4 ++
 .../apache/doris/catalog/RangePartitionInfo.java   |  3 ++
 .../create_table_use_partition_policy.groovy       | 55 +++++++++++++++++++++-
 3 files changed, 61 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/ListPartitionInfo.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/ListPartitionInfo.java
index 8683005f37e..3c32e336eb2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/ListPartitionInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/ListPartitionInfo.java
@@ -222,6 +222,10 @@ public class ListPartitionInfo extends PartitionInfo {
             }
             sb.append(")");
 
+            if (!"".equals(getStoragePolicy(entry.getKey()))) {
+                sb.append("(\"storage_policy\" = 
\"").append(getStoragePolicy(entry.getKey())).append("\")");
+            }
+
             if (partitionId != null) {
                 partitionId.add(entry.getKey());
                 break;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/RangePartitionInfo.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/RangePartitionInfo.java
index bea50593c3f..87ac9e20d32 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/RangePartitionInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/RangePartitionInfo.java
@@ -277,6 +277,9 @@ public class RangePartitionInfo extends PartitionInfo {
             sb.append("PARTITION ").append(partitionName).append(" VALUES [");
             sb.append(range.lowerEndpoint().toSql());
             sb.append(", ").append(range.upperEndpoint().toSql()).append(")");
+            if (!"".equals(getStoragePolicy(entry.getKey()))) {
+                sb.append("(\"storage_policy\" = 
\"").append(getStoragePolicy(entry.getKey())).append("\")");
+            }
 
             if (partitionId != null) {
                 partitionId.add(entry.getKey());
diff --git 
a/regression-test/suites/cold_heat_separation/empty_table_use_policy/create_table_use_partition_policy.groovy
 
b/regression-test/suites/cold_heat_separation/empty_table_use_policy/create_table_use_partition_policy.groovy
index 7307392147a..3fff811f33b 100644
--- 
a/regression-test/suites/cold_heat_separation/empty_table_use_policy/create_table_use_partition_policy.groovy
+++ 
b/regression-test/suites/cold_heat_separation/empty_table_use_policy/create_table_use_partition_policy.groovy
@@ -140,11 +140,64 @@ suite("create_table_use_partition_policy") {
         ) PARTITION BY RANGE (k1) (
             PARTITION p1 VALUES LESS THAN ("2022-01-01 00:00:00.111") 
("storage_policy" = "test_create_table_partition_use_policy_1" 
,"replication_num"="1"),
             PARTITION p2 VALUES LESS THAN ("2022-02-01 00:00:00.111") 
("storage_policy" = "test_create_table_partition_use_policy_2" 
,"replication_num"="1")
-        ) DISTRIBUTED BY HASH(k2) BUCKETS 1;
+        ) DISTRIBUTED BY HASH(k2) BUCKETS 1
+        PROPERTIES (
+            "replication_num" = "1"
+        );
     """
 
     assertEquals(create_table_partition_use_created_policy_2.size(), 1);
 
+    // test create table like
+    sql """
+    CREATE TABLE create_table_partition_use_created_policy_3 LIKE 
create_table_partition_use_created_policy_2;
+    """
+    def policy_using_item_count_1 = try_sql """
+        SHOW STORAGE POLICY USING for test_create_table_partition_use_policy_1
+    """
+    assertEquals(policy_using_item_count_1.size(), 2);
+
+    def policy_using_item_count_2 = try_sql """
+        SHOW STORAGE POLICY USING for test_create_table_partition_use_policy_2
+    """
+    assertEquals(policy_using_item_count_2.size(), 2);
+
+    def create_table_partition_use_created_policy_4 = try_sql """
+        CREATE TABLE IF NOT EXISTS create_table_partition_use_created_policy_4
+        (
+            k1 DATE NOT NULL,
+            k2 INT,
+            V1 VARCHAR(2048) REPLACE
+        ) PARTITION BY LIST (k1) (
+            PARTITION p1 VALUES IN ("2022-01-01") ("storage_policy" = 
"test_create_table_partition_use_policy_1" ,"replication_num"="1"),
+            PARTITION p2 VALUES IN ("2022-02-01") ("storage_policy" = 
"test_create_table_partition_use_policy_2" ,"replication_num"="1")
+        ) DISTRIBUTED BY HASH(k2) BUCKETS 1
+        PROPERTIES (
+            "replication_num" = "1"
+        );
+    """
+    sql """
+    CREATE TABLE create_table_partition_use_created_policy_5 LIKE 
create_table_partition_use_created_policy_4;
+    """
+    def policy_using_item_count_3 = try_sql """
+        SHOW STORAGE POLICY USING for test_create_table_partition_use_policy_1
+    """
+    assertEquals(policy_using_item_count_3.size(), 4);
+
+    def policy_using_item_count_4 = try_sql """
+        SHOW STORAGE POLICY USING for test_create_table_partition_use_policy_2
+    """
+    assertEquals(policy_using_item_count_4.size(), 4);
+
+    sql """
+    DROP TABLE create_table_partition_use_created_policy_5;
+    """
+    sql """
+    DROP TABLE create_table_partition_use_created_policy_4;
+    """
+    sql """
+    DROP TABLE create_table_partition_use_created_policy_3;
+    """
     sql """
     DROP TABLE create_table_partition_use_created_policy_2;
     """


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

Reply via email to