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

yiguolei 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 8e8a8da2e7 [Improve](regresstest) update collect distinct regress test 
for array hash (#21417)
8e8a8da2e7 is described below

commit 8e8a8da2e7a350e36a49a8f1d846f603f140b73d
Author: amory <wangqian...@selectdb.com>
AuthorDate: Mon Jul 3 12:16:11 2023 +0800

    [Improve](regresstest) update collect distinct regress test for array hash 
(#21417)
    
    this regress sql can make sense of array hashing function is working fine
---
 .../query_p0/join/test_collect_list_distinct.out   |  16 +++
 .../join/test_collect_list_distinct.groovy         | 116 +++++++++++++++++++++
 2 files changed, 132 insertions(+)

diff --git a/regression-test/data/query_p0/join/test_collect_list_distinct.out 
b/regression-test/data/query_p0/join/test_collect_list_distinct.out
new file mode 100644
index 0000000000..23cfae2049
--- /dev/null
+++ b/regression-test/data/query_p0/join/test_collect_list_distinct.out
@@ -0,0 +1,16 @@
+-- This file is automatically generated. You should know what you did if you 
want to edit this
+-- !select_tt --
+1      2       12
+2      1       12
+
+-- !select_bd --
+1      90      \N      car
+7      30      1       amory clever
+
+-- !select_bdp --
+1      7       12      car     amory is cute
+
+-- !select --
+12     ["amory clever"]        car
+12     ["amory clever"]        car
+
diff --git 
a/regression-test/suites/query_p0/join/test_collect_list_distinct.groovy 
b/regression-test/suites/query_p0/join/test_collect_list_distinct.groovy
new file mode 100644
index 0000000000..059e15180b
--- /dev/null
+++ b/regression-test/suites/query_p0/join/test_collect_list_distinct.groovy
@@ -0,0 +1,116 @@
+// 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_collect_list_distinct") {
+    def table1 = "bu_delivery"
+    def table2 = "bu_delivery_product"
+    def table3 = "bu_trans_transfer"
+
+    sql "DROP TABLE IF EXISTS ${table1}"
+    sql "DROP TABLE IF EXISTS ${table2}"
+    sql "DROP TABLE IF EXISTS ${table3}"
+
+    sql """
+            CREATE TABLE `${table1}` (
+              `delivery_id` bigint(20) NOT NULL,
+              `val_status` varchar(6) NULL,
+              `delivery_type` int(11) NULL,
+              `catalog_name` varchar(96) NULL
+            ) ENGINE=OLAP
+            UNIQUE KEY(`delivery_id`)
+            COMMENT 'OLAP'
+            DISTRIBUTED BY HASH(`delivery_id`) BUCKETS 9
+            PROPERTIES (
+            "replication_allocation" = "tag.location.default: 1",
+            "storage_format" = "V2",
+            "light_schema_change" = "true",
+            "disable_auto_compaction" = "false",
+            "enable_single_replica_compaction" = "false"
+            );
+        """
+    sql """
+            CREATE TABLE `${table2}` (
+              `delivery_product_id` bigint(20) NOT NULL,
+              `delivery_id` bigint(20) NULL,
+              `nc_num` text NULL,
+              `material_qty` text NULL,
+              `catalog_name` text NULL
+            ) ENGINE=OLAP
+            UNIQUE KEY(`delivery_product_id`)
+            COMMENT 'OLAP'
+            DISTRIBUTED BY HASH(`delivery_product_id`) BUCKETS 9
+            PROPERTIES (
+            "replication_allocation" = "tag.location.default: 1",
+            "storage_format" = "V2",
+            "light_schema_change" = "true",
+            "disable_auto_compaction" = "false",
+            "enable_single_replica_compaction" = "false"
+            );
+        """
+    sql """
+        CREATE TABLE `${table3}` (
+          `transfer_id` bigint(20) NOT NULL,
+          `delivery_product_id` bigint(20) NULL,
+          `nc_num` text NULL
+        ) ENGINE=OLAP
+        UNIQUE KEY(`transfer_id`)
+        COMMENT '涓浆杩愯緭鍗曚俊鎭�'
+        DISTRIBUTED BY HASH(`transfer_id`) BUCKETS 9
+        PROPERTIES (
+        "replication_allocation" = "tag.location.default: 1",
+        "storage_format" = "V2",
+        "light_schema_change" = "true",
+        "disable_auto_compaction" = "false",
+        "enable_single_replica_compaction" = "false"
+        );
+    """
+
+    sql """insert into ${table3} values (2, 1, "12");"""
+    sql """insert into ${table2} values (1, 7, "12", "car", "amory is cute"); 
"""
+    sql """insert into ${table1} values (7, 30, 1, "amory clever"); """
+    sql """insert into ${table1} values (1, 90, NULL, "car");"""
+    sql """insert into ${table3} values (1, 2, "12");"""
+
+    qt_select_tt  """ select * from ${table3} order by transfer_id;"""
+    qt_select_bd  """ select * from ${table1} order by delivery_id;"""
+    qt_select_bdp  """ select * from ${table2} order by delivery_product_id;"""
+
+    // this select stmt can trigger column array call update_hashes_with_value
+    qt_select """ select * from (
+                    select  bdp.nc_num,
+                            collect_list(distinct(bd.catalog_name)) as 
catalog_name,
+                            material_qty
+                            from ${table2} bdp
+                            left join ${table3} btt on bdp.delivery_product_id 
= btt.delivery_product_id
+                            left join ${table1} bd on bdp.delivery_id = 
bd.delivery_id
+                     where  bd.val_status in ('10', '20', '30', '90')  and 
bd.delivery_type in (0, 1, 2)
+                     group by nc_num, material_qty
+                     union all
+                     select bdp.nc_num,
+                            collect_list(distinct(bd.catalog_name)) as 
catalog_name,
+                            material_qty
+                            from ${table3} btt
+                            left join ${table2} bdp on bdp.delivery_product_id 
= btt.delivery_product_id
+                            left join ${table1} bd on bdp.delivery_id = 
bd.delivery_id
+                     where  bd.val_status in ('10', '20', '30', '90') and 
bd.delivery_type in (0, 1, 2)
+                     group by nc_num, material_qty ) aa;
+              """
+
+    sql "DROP TABLE IF EXISTS ${table1};"
+    sql "DROP TABLE IF EXISTS ${table2};"
+    sql "DROP DATABASE IF EXISTS ${table3};"
+}


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

Reply via email to