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

dataroaring 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 3cd0d365994 [cherry-pick](branch-2.0) pick "[Enhancement](mor) Add 
unique mor table min max push down case #32196" (#37599)
3cd0d365994 is described below

commit 3cd0d3659941047541acebf9370cd33bf818a13d
Author: abmdocrt <yukang.lian2...@gmail.com>
AuthorDate: Sat Jul 13 22:09:57 2024 +0800

    [cherry-pick](branch-2.0) pick "[Enhancement](mor) Add unique mor table min 
max push down case #32196" (#37599)
    
    ## Proposed changes
    
    Issue Number: close #xxx
    
    <!--Describe your changes.-->
---
 .../nereids_p0/explain/test_pushdown_explain.out   | 74 +++++++++++++++++++
 .../explain/test_pushdown_explain.groovy           | 86 ++++++++++++++++++++++
 2 files changed, 160 insertions(+)

diff --git a/regression-test/data/nereids_p0/explain/test_pushdown_explain.out 
b/regression-test/data/nereids_p0/explain/test_pushdown_explain.out
index 2f364bf9bec..eaac687e2d5 100644
--- a/regression-test/data/nereids_p0/explain/test_pushdown_explain.out
+++ b/regression-test/data/nereids_p0/explain/test_pushdown_explain.out
@@ -101,6 +101,80 @@ qdf
 -- !select_18 --
 zzz
 
+-- !select_mor_0 --
+1      asd     cc
+2      qwe     vvx
+3      ffsd    mnm
+4      qdf     ll
+5      cvfv    vff
+
+-- !select_mor_1 --
+1
+
+-- !select_mor_2 --
+5
+
+-- !select_mor_3 --
+asd
+
+-- !select_mor_4 --
+qwe
+
+-- !select_mor_5 --
+cc
+
+-- !select_mor_6 --
+vvx
+
+-- !select_mor_00 --
+1      asd     zzz
+2      qwe     vvx
+3      ffsd    mnm
+4      qdf     ll
+5      cvfv    vff
+
+-- !select_mor_7 --
+1
+
+-- !select_mor_8 --
+5
+
+-- !select_mor_9 --
+asd
+
+-- !select_mor_10 --
+qwe
+
+-- !select_mor_11 --
+cc
+
+-- !select_mor_12 --
+zzz
+
+-- !select_mor_000 --
+1      asd     zzz
+3      ffsd    mnm
+4      qdf     ll
+5      cvfv    vff
+
+-- !select_mor_13 --
+1
+
+-- !select_mor_14 --
+5
+
+-- !select_mor_15 --
+asd
+
+-- !select_mor_16 --
+qdf
+
+-- !select_mor_17 --
+cc
+
+-- !select_mor_18 --
+zzz
+
 -- !select_19 --
 1
 
diff --git 
a/regression-test/suites/nereids_p0/explain/test_pushdown_explain.groovy 
b/regression-test/suites/nereids_p0/explain/test_pushdown_explain.groovy
index ec8d9b5d8ae..ce74d60687c 100644
--- a/regression-test/suites/nereids_p0/explain/test_pushdown_explain.groovy
+++ b/regression-test/suites/nereids_p0/explain/test_pushdown_explain.groovy
@@ -183,6 +183,92 @@ suite("test_pushdown_explain") {
     qt_select_16 "select max(username) from table_unique;"
     qt_select_18 "select max(val) from table_unique;"
 
+    sql "DROP TABLE IF EXISTS table_unique11"
+    sql """ 
+        CREATE TABLE `table_unique11` (
+            `user_id` LARGEINT NOT NULL COMMENT '\"用户id\"',
+            `username` VARCHAR(50) NOT NULL COMMENT '\"用户昵称\"',
+            `val` VARCHAR(50) NULL
+        ) ENGINE=OLAP
+        UNIQUE KEY(`user_id`, `username`)
+        COMMENT 'OLAP'
+        DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
+        PROPERTIES (
+        "replication_allocation" = "tag.location.default: 1",
+        "disable_auto_compaction" = "true",
+        "enable_unique_key_merge_on_write" = "false"
+        );
+    """
+    sql """ 
+        insert into table_unique11 
values(1,"asd","cc"),(2,"qwe","vvx"),(3,"ffsd","mnm"),(4,"qdf","ll"),(5,"cvfv","vff");
+    """
+
+    sql "set enable_pushdown_minmax_on_unique = false;"
+    explain {
+        sql("select min(user_id) from table_unique11;")
+        contains "pushAggOp=NONE"
+    }
+    explain {
+        sql("select max(user_id) from table_unique11;")
+        contains "pushAggOp=NONE"
+    }
+    explain {
+        sql("select min(username) from table_unique11;")
+        contains "pushAggOp=NONE"
+    }
+    explain {
+        sql("select max(username) from table_unique11;")
+        contains "pushAggOp=NONE"
+    }
+
+
+    // set seession variables
+    sql "set enable_pushdown_minmax_on_unique = true;"
+    explain {
+        sql("select min(user_id) from table_unique11;")
+        contains "pushAggOp=MINMAX"
+    }
+    explain {
+        sql("select max(user_id) from table_unique11;")
+        contains "pushAggOp=MINMAX"
+    }
+    explain {
+        sql("select min(username) from table_unique11;")
+        contains "pushAggOp=MINMAX"
+    }
+    explain {
+        sql("select max(username) from table_unique11;")
+        contains "pushAggOp=MINMAX"
+    }
+    qt_select_mor_0 "select * from table_unique11 order by user_id;"
+    qt_select_mor_1 "select min(user_id) from table_unique11;"
+    qt_select_mor_2 "select max(user_id) from table_unique11;"
+    qt_select_mor_3 "select min(username) from table_unique11;"
+    qt_select_mor_4 "select max(username) from table_unique11;"
+    qt_select_mor_5 "select min(val) from table_unique11;"
+    qt_select_mor_6 "select max(val) from table_unique11;"
+    sql """
+        update table_unique11 set val = "zzz" where user_id = 1;
+    """
+    qt_select_mor_00 "select * from table_unique11 order by user_id;"
+    qt_select_mor_7 "select min(user_id) from table_unique11;"
+    qt_select_mor_8 "select max(user_id) from table_unique11;"
+    qt_select_mor_9 "select min(username) from table_unique11;"
+    qt_select_mor_10 "select max(username) from table_unique11;"
+    qt_select_mor_11 "select min(val) from table_unique11;"
+    qt_select_mor_12 "select max(val) from table_unique11;"
+
+    sql """
+        delete from table_unique11 where user_id = 2;
+    """
+    qt_select_mor_000 "select * from table_unique11 order by user_id;"
+    qt_select_mor_13 "select min(user_id) from table_unique11;"
+    qt_select_mor_14 "select max(user_id) from table_unique11;"
+    qt_select_mor_15 "select min(username) from table_unique11;"
+    qt_select_mor_16 "select max(username) from table_unique11;"
+    qt_select_mor_17 "select min(val) from table_unique11;"
+    qt_select_mor_18 "select max(val) from table_unique11;"
+
 
     sql "DROP TABLE IF EXISTS table_agg"
     sql """ 


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

Reply via email to