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

panxiaolei 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 8328ab69ad [Chore](Materialized-View) add some mv regression test case 
(#17345)
8328ab69ad is described below

commit 8328ab69ad9aada977cf55d2ef15cf99837dc29b
Author: Pxl <[email protected]>
AuthorDate: Sat Mar 11 10:55:11 2023 +0800

    [Chore](Materialized-View) add some mv regression test case (#17345)
    
    1. add some mv regression test case
    2. rename materialized_view_p0 to mv_p0 (avoid create database failed 
because long db name)
---
 be/src/olap/file_helper.h                          |  4 +-
 be/src/olap/utils.cpp                              |  4 ++
 be/src/olap/utils.h                                |  4 +-
 .../test_create_mv_datatype.out                    | 31 --------------
 .../agg_have_dup_base/agg_have_dup_base.out        |  0
 .../k1ap2spa/k1ap2spa.out                          |  0
 .../multi_slot_k123p/multi_slot_k123p.out          |  0
 .../multi_slot_k1a2p2ap3p.out                      |  0
 .../multi_slot_k1a2p2ap3ps.out                     |  0
 .../multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.out    |  0
 .../multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.out  |  0
 .../multi_slot_multi_mv/multi_slot_multi_mv.out    |  0
 .../mv_with_view/mv_with_view.out                  |  0
 .../test_dup_group_by_mv_abs.out                   |  0
 .../test_dup_group_by_mv_plus.out                  |  0
 .../test_dup_mv_abs/test_dup_mv_abs.out            |  0
 .../test_dup_mv_bin/test_dup_mv_bin.out            |  0
 .../test_dup_mv_bitmap_hash.out                    |  0
 .../test_dup_mv_plus/test_dup_mv_plus.out          |  0
 .../test_dup_mv_year/test_dup_mv_year.out          |  0
 .../testIncorrectMVRewriteInSubquery.out}          | 11 ++---
 .../ut/testProjectionMV1/testProjectionMV1.out     |  0
 .../ut/testProjectionMV2/testProjectionMV2.out     |  0
 .../ut/testProjectionMV3/testProjectionMV3.out     |  0
 .../ut/testProjectionMV4/testProjectionMV4.out     |  0
 .../ut/testQueryOnStar/testQueryOnStar.out}        |  5 +--
 .../testSelectMVWithTableAlias.out}                | 12 ++----
 .../agg_have_dup_base/agg_have_dup_base.groovy     | 12 +-----
 .../k1ap2spa/k1ap2spa.groovy                       | 12 +-----
 .../multi_slot_k123p/multi_slot_k123p.groovy       | 12 +-----
 .../multi_slot_k1a2p2ap3p.groovy                   | 12 +-----
 .../multi_slot_k1a2p2ap3ps.groovy                  | 12 +-----
 .../multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.groovy | 12 +-----
 .../multi_slot_k1p2ap3ps.groovy                    | 12 +-----
 .../multi_slot_multi_mv/multi_slot_multi_mv.groovy | 12 +-----
 .../mv_with_view/mv_with_view.groovy               |  4 ++
 .../test_create_mv_complex_type.groovy             | 13 ------
 .../test_dup_group_by_mv_abs.groovy                | 12 +-----
 .../test_dup_group_by_mv_plus.groovy               | 12 +-----
 .../test_dup_mv_abs/test_dup_mv_abs.groovy         | 12 +-----
 .../test_dup_mv_bin/test_dup_mv_bin.groovy         | 12 +-----
 .../test_dup_mv_bitmap_hash.groovy                 | 13 +-----
 .../test_dup_mv_plus/test_dup_mv_plus.groovy       | 12 +-----
 .../test_dup_mv_year/test_dup_mv_year.groovy       | 13 +-----
 .../test_mv_useless/test_agg_mv_useless.groovy     |  0
 .../test_mv_useless/test_dup_mv_useless.groovy     |  0
 .../test_mv_useless/test_uniq_mv_useless.groovy    |  0
 .../testIncorrectMVRewriteInSubquery.groovy        | 49 ++++++++++++++++++++++
 .../ut/testProjectionMV1/testProjectionMV1.groovy  |  0
 .../ut/testProjectionMV2/testProjectionMV2.groovy  |  0
 .../ut/testProjectionMV3/testProjectionMV3.groovy  |  0
 .../ut/testProjectionMV4/testProjectionMV4.groovy  |  0
 .../ut/testQueryOnStar/testQueryOnStar.groovy}     | 11 +++--
 .../testSelectMVWithTableAlias.groovy}             | 36 +++++++---------
 54 files changed, 105 insertions(+), 261 deletions(-)

diff --git a/be/src/olap/file_helper.h b/be/src/olap/file_helper.h
index c01602ee24..5b5a292968 100644
--- a/be/src/olap/file_helper.h
+++ b/be/src/olap/file_helper.h
@@ -255,7 +255,7 @@ Status FileHeader<MessageType, ExtraType, 
FileHandlerType>::prepare(FileHandlerT
     }
 
     _fixed_file_header.protobuf_checksum =
-            olap_adler32(ADLER32_INIT, _proto_string.c_str(), 
_proto_string.size());
+            olap_adler32(olap_adler32_init(), _proto_string.c_str(), 
_proto_string.size());
 
     _fixed_file_header.checksum = 0;
     _fixed_file_header.protobuf_length = _proto_string.size();
@@ -382,7 +382,7 @@ Status FileHeader<MessageType, ExtraType, 
FileHandlerType>::unserialize(
 
     // check proto checksum
     real_protobuf_checksum =
-            olap_adler32(ADLER32_INIT, buf.get(), 
_fixed_file_header.protobuf_length);
+            olap_adler32(olap_adler32_init(), buf.get(), 
_fixed_file_header.protobuf_length);
 
     if (real_protobuf_checksum != _fixed_file_header.protobuf_checksum) {
         LOG(WARNING) << "checksum is not match. file=" << 
file_handler->file_name()
diff --git a/be/src/olap/utils.cpp b/be/src/olap/utils.cpp
index 46919b789d..0ea8c6450d 100644
--- a/be/src/olap/utils.cpp
+++ b/be/src/olap/utils.cpp
@@ -59,6 +59,10 @@ using std::vector;
 namespace doris {
 using namespace ErrorCode;
 
+uint32_t olap_adler32_init() {
+    return adler32(0L, Z_NULL, 0);
+}
+
 uint32_t olap_adler32(uint32_t adler, const char* buf, size_t len) {
     return adler32(adler, reinterpret_cast<const Bytef*>(buf), len);
 }
diff --git a/be/src/olap/utils.h b/be/src/olap/utils.h
index 9ce35ce6ea..e63d998cce 100644
--- a/be/src/olap/utils.h
+++ b/be/src/olap/utils.h
@@ -106,9 +106,7 @@ void _destruct_object(const void* obj, void*) {
     delete ((const T*)obj);
 }
 
-// 计算adler32的包装函数
-// 第一次使用的时候第一个参数传宏ADLER32_INIT, 之后的调用传上次计算的结果
-#define ADLER32_INIT adler32(0L, Z_NULL, 0)
+uint32_t olap_adler32_init();
 uint32_t olap_adler32(uint32_t adler, const char* buf, size_t len);
 
 // 获取系统当前时间,并将时间转换为字符串
diff --git 
a/regression-test/data/materialized_view_p0/test_create_mv_datatype.out 
b/regression-test/data/materialized_view_p0/test_create_mv_datatype.out
deleted file mode 100644
index 4b64da148b..0000000000
--- a/regression-test/data/materialized_view_p0/test_create_mv_datatype.out
+++ /dev/null
@@ -1,31 +0,0 @@
--- This file is automatically generated. You should know what you did if you 
want to edit this
--- !select_desc1 --
-base_table     DUP_KEYS        c_int   INT     Yes     true    \N              
true
-               c_bigint        BIGINT  Yes     false   \N      NONE    true
-               c_float BIGINT  Yes     false   \N      NONE    true
-               c_jsonb JSONB   Yes     false   \N      NONE    true
-               c_array ARRAY<INT(11)>  Yes     false   \N      NONE    true
-               c_map   MAP<TEXT,INT(11)>       Yes     false   \N      NONE    
true
-               c_struct        STRUCT<a:int(11),b:int(11)>     Yes     false   
\N      NONE    true
-                                                               
-mv1    DUP_KEYS        c_bigint        BIGINT  Yes     true    \N              
true
-               c_int   INT     Yes     true    \N              true
-               c_float BIGINT  Yes     true    \N              true
-
--- !select_desc2 --
-base_table     DUP_KEYS        c_int   INT     Yes     true    \N              
true
-               c_bigint        BIGINT  Yes     false   \N      NONE    true
-               c_float BIGINT  Yes     false   \N      NONE    true
-               c_jsonb JSONB   Yes     false   \N      NONE    true
-               c_array ARRAY<INT(11)>  Yes     false   \N      NONE    true
-               c_map   MAP<TEXT,INT(11)>       Yes     false   \N      NONE    
true
-               c_struct        STRUCT<a:int(11),b:int(11)>     Yes     false   
\N      NONE    true
-                                                               
-mv1    DUP_KEYS        c_bigint        BIGINT  Yes     true    \N              
true
-               c_int   INT     Yes     true    \N              true
-               c_float BIGINT  Yes     true    \N              true
-                                                               
-mv2    DUP_KEYS        c_bigint        BIGINT  Yes     true    \N              
true
-               c_int   INT     Yes     true    \N              true
-               c_jsonb JSONB   Yes     false   \N      NONE    true
-
diff --git 
a/regression-test/data/materialized_view_p0/agg_have_dup_base/agg_have_dup_base.out
 b/regression-test/data/mv_p0/agg_have_dup_base/agg_have_dup_base.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/agg_have_dup_base/agg_have_dup_base.out
rename to regression-test/data/mv_p0/agg_have_dup_base/agg_have_dup_base.out
diff --git a/regression-test/data/materialized_view_p0/k1ap2spa/k1ap2spa.out 
b/regression-test/data/mv_p0/k1ap2spa/k1ap2spa.out
similarity index 100%
copy from regression-test/data/materialized_view_p0/k1ap2spa/k1ap2spa.out
copy to regression-test/data/mv_p0/k1ap2spa/k1ap2spa.out
diff --git 
a/regression-test/data/materialized_view_p0/multi_slot_k123p/multi_slot_k123p.out
 b/regression-test/data/mv_p0/multi_slot_k123p/multi_slot_k123p.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/multi_slot_k123p/multi_slot_k123p.out
rename to regression-test/data/mv_p0/multi_slot_k123p/multi_slot_k123p.out
diff --git 
a/regression-test/data/materialized_view_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.out
 b/regression-test/data/mv_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.out
rename to 
regression-test/data/mv_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.out
diff --git 
a/regression-test/data/materialized_view_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.out
 b/regression-test/data/mv_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.out
rename to 
regression-test/data/mv_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.out
diff --git 
a/regression-test/data/materialized_view_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.out
 b/regression-test/data/mv_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.out
rename to regression-test/data/mv_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.out
diff --git 
a/regression-test/data/materialized_view_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.out
 b/regression-test/data/mv_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.out
rename to 
regression-test/data/mv_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.out
diff --git 
a/regression-test/data/materialized_view_p0/multi_slot_multi_mv/multi_slot_multi_mv.out
 b/regression-test/data/mv_p0/multi_slot_multi_mv/multi_slot_multi_mv.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/multi_slot_multi_mv/multi_slot_multi_mv.out
rename to regression-test/data/mv_p0/multi_slot_multi_mv/multi_slot_multi_mv.out
diff --git 
a/regression-test/data/materialized_view_p0/mv_with_view/mv_with_view.out 
b/regression-test/data/mv_p0/mv_with_view/mv_with_view.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/mv_with_view/mv_with_view.out
rename to regression-test/data/mv_p0/mv_with_view/mv_with_view.out
diff --git 
a/regression-test/data/materialized_view_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.out
 
b/regression-test/data/mv_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.out
rename to 
regression-test/data/mv_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.out
diff --git 
a/regression-test/data/materialized_view_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.out
 
b/regression-test/data/mv_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.out
rename to 
regression-test/data/mv_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.out
diff --git 
a/regression-test/data/materialized_view_p0/test_dup_mv_abs/test_dup_mv_abs.out 
b/regression-test/data/mv_p0/test_dup_mv_abs/test_dup_mv_abs.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/test_dup_mv_abs/test_dup_mv_abs.out
rename to regression-test/data/mv_p0/test_dup_mv_abs/test_dup_mv_abs.out
diff --git 
a/regression-test/data/materialized_view_p0/test_dup_mv_bin/test_dup_mv_bin.out 
b/regression-test/data/mv_p0/test_dup_mv_bin/test_dup_mv_bin.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/test_dup_mv_bin/test_dup_mv_bin.out
rename to regression-test/data/mv_p0/test_dup_mv_bin/test_dup_mv_bin.out
diff --git 
a/regression-test/data/materialized_view_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.out
 
b/regression-test/data/mv_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.out
rename to 
regression-test/data/mv_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.out
diff --git 
a/regression-test/data/materialized_view_p0/test_dup_mv_plus/test_dup_mv_plus.out
 b/regression-test/data/mv_p0/test_dup_mv_plus/test_dup_mv_plus.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/test_dup_mv_plus/test_dup_mv_plus.out
rename to regression-test/data/mv_p0/test_dup_mv_plus/test_dup_mv_plus.out
diff --git 
a/regression-test/data/materialized_view_p0/test_dup_mv_year/test_dup_mv_year.out
 b/regression-test/data/mv_p0/test_dup_mv_year/test_dup_mv_year.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/test_dup_mv_year/test_dup_mv_year.out
rename to regression-test/data/mv_p0/test_dup_mv_year/test_dup_mv_year.out
diff --git a/regression-test/data/materialized_view_p0/k1ap2spa/k1ap2spa.out 
b/regression-test/data/mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.out
similarity index 71%
copy from regression-test/data/materialized_view_p0/k1ap2spa/k1ap2spa.out
copy to 
regression-test/data/mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.out
index 16fe69c3ff..472739cdad 100644
--- a/regression-test/data/materialized_view_p0/k1ap2spa/k1ap2spa.out
+++ 
b/regression-test/data/mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.out
@@ -1,13 +1,8 @@
 -- This file is automatically generated. You should know what you did if you 
want to edit this
 -- !select_star --
--4     -4      -4      d
-1      1       1       a
-2      2       2       b
-3      -3      \N      c
+2020-01-01     1       a       1
+2020-01-01     1       a       1
+2020-01-02     2       b       2
 
 -- !select_mv --
-2      2
-3      3
-4      2
-5      3
 
diff --git 
a/regression-test/data/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.out
 b/regression-test/data/mv_p0/ut/testProjectionMV1/testProjectionMV1.out
similarity index 100%
copy from 
regression-test/data/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.out
copy to regression-test/data/mv_p0/ut/testProjectionMV1/testProjectionMV1.out
diff --git 
a/regression-test/data/materialized_view_p0/ut/testProjectionMV2/testProjectionMV2.out
 b/regression-test/data/mv_p0/ut/testProjectionMV2/testProjectionMV2.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/ut/testProjectionMV2/testProjectionMV2.out
rename to regression-test/data/mv_p0/ut/testProjectionMV2/testProjectionMV2.out
diff --git 
a/regression-test/data/materialized_view_p0/ut/testProjectionMV3/testProjectionMV3.out
 b/regression-test/data/mv_p0/ut/testProjectionMV3/testProjectionMV3.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/ut/testProjectionMV3/testProjectionMV3.out
rename to regression-test/data/mv_p0/ut/testProjectionMV3/testProjectionMV3.out
diff --git 
a/regression-test/data/materialized_view_p0/ut/testProjectionMV4/testProjectionMV4.out
 b/regression-test/data/mv_p0/ut/testProjectionMV4/testProjectionMV4.out
similarity index 100%
rename from 
regression-test/data/materialized_view_p0/ut/testProjectionMV4/testProjectionMV4.out
rename to regression-test/data/mv_p0/ut/testProjectionMV4/testProjectionMV4.out
diff --git 
a/regression-test/data/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.out
 b/regression-test/data/mv_p0/ut/testQueryOnStar/testQueryOnStar.out
similarity index 82%
rename from 
regression-test/data/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.out
rename to regression-test/data/mv_p0/ut/testQueryOnStar/testQueryOnStar.out
index ba455b7e85..7782346729 100644
--- 
a/regression-test/data/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.out
+++ b/regression-test/data/mv_p0/ut/testQueryOnStar/testQueryOnStar.out
@@ -5,7 +5,6 @@
 2020-01-02     2       b       2       2       2
 
 -- !select_mv --
-1      1
-1      1
-2      2
+2020-01-01     1       a       1       1       1
+2020-01-01     1       a       1       1       1
 
diff --git a/regression-test/data/materialized_view_p0/k1ap2spa/k1ap2spa.out 
b/regression-test/data/mv_p0/ut/testSelectMVWithTableAlias/testSelectMVWithTableAlias.out
similarity index 71%
rename from regression-test/data/materialized_view_p0/k1ap2spa/k1ap2spa.out
rename to 
regression-test/data/mv_p0/ut/testSelectMVWithTableAlias/testSelectMVWithTableAlias.out
index 16fe69c3ff..30b1f06fdf 100644
--- a/regression-test/data/materialized_view_p0/k1ap2spa/k1ap2spa.out
+++ 
b/regression-test/data/mv_p0/ut/testSelectMVWithTableAlias/testSelectMVWithTableAlias.out
@@ -1,13 +1,9 @@
 -- This file is automatically generated. You should know what you did if you 
want to edit this
 -- !select_star --
--4     -4      -4      d
-1      1       1       a
-2      2       2       b
-3      -3      \N      c
+2020-01-01     1       a       1
+2020-01-01     1       a       1
+2020-01-02     2       b       2
 
 -- !select_mv --
-2      2
-3      3
-4      2
-5      3
+3
 
diff --git 
a/regression-test/suites/materialized_view_p0/agg_have_dup_base/agg_have_dup_base.groovy
 b/regression-test/suites/mv_p0/agg_have_dup_base/agg_have_dup_base.groovy
similarity index 83%
rename from 
regression-test/suites/materialized_view_p0/agg_have_dup_base/agg_have_dup_base.groovy
rename to 
regression-test/suites/mv_p0/agg_have_dup_base/agg_have_dup_base.groovy
index df0e50cac9..b95e868f95 100644
--- 
a/regression-test/suites/materialized_view_p0/agg_have_dup_base/agg_have_dup_base.groovy
+++ b/regression-test/suites/mv_p0/agg_have_dup_base/agg_have_dup_base.groovy
@@ -36,17 +36,7 @@ suite ("agg_have_dup_base") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k12s3m as select k1,sum(k2),max(k2) from 
d_table group by k1;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV( "create materialized view k12s3m as select k1,sum(k2),max(k2) 
from d_table group by k1;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/k1ap2spa/k1ap2spa.groovy 
b/regression-test/suites/mv_p0/k1ap2spa/k1ap2spa.groovy
similarity index 78%
rename from regression-test/suites/materialized_view_p0/k1ap2spa/k1ap2spa.groovy
rename to regression-test/suites/mv_p0/k1ap2spa/k1ap2spa.groovy
index 1d1351ddcc..2d1e8fd656 100644
--- a/regression-test/suites/materialized_view_p0/k1ap2spa/k1ap2spa.groovy
+++ b/regression-test/suites/mv_p0/k1ap2spa/k1ap2spa.groovy
@@ -36,17 +36,7 @@ suite ("k1ap2spa") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k1ap2spa as select abs(k1)+1,sum(abs(k2+1)) 
from d_table group by abs(k1)+1;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV("create materialized view k1ap2spa as select 
abs(k1)+1,sum(abs(k2+1)) from d_table group by abs(k1)+1;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/multi_slot_k123p/multi_slot_k123p.groovy
 b/regression-test/suites/mv_p0/multi_slot_k123p/multi_slot_k123p.groovy
similarity index 79%
rename from 
regression-test/suites/materialized_view_p0/multi_slot_k123p/multi_slot_k123p.groovy
rename to regression-test/suites/mv_p0/multi_slot_k123p/multi_slot_k123p.groovy
index b80ae2ac36..9d6309fc86 100644
--- 
a/regression-test/suites/materialized_view_p0/multi_slot_k123p/multi_slot_k123p.groovy
+++ b/regression-test/suites/mv_p0/multi_slot_k123p/multi_slot_k123p.groovy
@@ -36,17 +36,7 @@ suite ("multi_slot_k123p") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k123p as select k1,k2+k3 from d_table;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV ("create materialized view k123p as select k1,k2+k3 from 
d_table;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.groovy
 
b/regression-test/suites/mv_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.groovy
similarity index 79%
rename from 
regression-test/suites/materialized_view_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.groovy
rename to 
regression-test/suites/mv_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.groovy
index c05afc3f13..d75b2c1326 100644
--- 
a/regression-test/suites/materialized_view_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.groovy
+++ 
b/regression-test/suites/mv_p0/multi_slot_k1a2p2ap3p/multi_slot_k1a2p2ap3p.groovy
@@ -36,17 +36,7 @@ suite ("multi_slot_k1a2p2ap3p") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k1a2p2ap3p as select 
abs(k1)+k2+1,abs(k2+2)+k3+3 from d_table;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV ("create materialized view k1a2p2ap3p as select 
abs(k1)+k2+1,abs(k2+2)+k3+3 from d_table;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.groovy
 
b/regression-test/suites/mv_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.groovy
similarity index 82%
rename from 
regression-test/suites/materialized_view_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.groovy
rename to 
regression-test/suites/mv_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.groovy
index 419ff5f42d..136d58e2ec 100644
--- 
a/regression-test/suites/materialized_view_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.groovy
+++ 
b/regression-test/suites/mv_p0/multi_slot_k1a2p2ap3ps/multi_slot_k1a2p2ap3ps.groovy
@@ -44,17 +44,7 @@ suite ("multi_slot_k1a2p2ap3ps") {
     }
     assertTrue(createFail);
 
-    def result = "null"
-    sql "create materialized view k1a2p2ap3ps as select 
abs(k1)+k2+1,sum(abs(k2+2)+k3+3) from d_table group by abs(k1)+k2+1;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV ("create materialized view k1a2p2ap3ps as select 
abs(k1)+k2+1,sum(abs(k2+2)+k3+3) from d_table group by abs(k1)+k2+1;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.groovy
 b/regression-test/suites/mv_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.groovy
similarity index 79%
rename from 
regression-test/suites/materialized_view_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.groovy
rename to 
regression-test/suites/mv_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.groovy
index 0bba8b07ac..5d93712271 100644
--- 
a/regression-test/suites/materialized_view_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.groovy
+++ 
b/regression-test/suites/mv_p0/multi_slot_k1p2ap3p/multi_slot_k1p2ap3p.groovy
@@ -36,17 +36,7 @@ suite ("multi_slot_k1p2ap3p") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k1p2ap3p as select k1+1,abs(k2+2)+k3+3 from 
d_table;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV ("create materialized view k1p2ap3p as select k1+1,abs(k2+2)+k3+3 
from d_table;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.groovy
 b/regression-test/suites/mv_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.groovy
similarity index 78%
rename from 
regression-test/suites/materialized_view_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.groovy
rename to 
regression-test/suites/mv_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.groovy
index f0fdd7ea43..af08794300 100644
--- 
a/regression-test/suites/materialized_view_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.groovy
+++ 
b/regression-test/suites/mv_p0/multi_slot_k1p2ap3ps/multi_slot_k1p2ap3ps.groovy
@@ -36,17 +36,7 @@ suite ("multi_slot_k1p2ap3ps") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k1p2ap3ps as select k1+1,sum(abs(k2+2)+k3+3) 
from d_table group by k1+1;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV ("create materialized view k1p2ap3ps as select 
k1+1,sum(abs(k2+2)+k3+3) from d_table group by k1+1;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/multi_slot_multi_mv/multi_slot_multi_mv.groovy
 b/regression-test/suites/mv_p0/multi_slot_multi_mv/multi_slot_multi_mv.groovy
similarity index 84%
rename from 
regression-test/suites/materialized_view_p0/multi_slot_multi_mv/multi_slot_multi_mv.groovy
rename to 
regression-test/suites/mv_p0/multi_slot_multi_mv/multi_slot_multi_mv.groovy
index 115c372763..4e6f89055a 100644
--- 
a/regression-test/suites/materialized_view_p0/multi_slot_multi_mv/multi_slot_multi_mv.groovy
+++ 
b/regression-test/suites/mv_p0/multi_slot_multi_mv/multi_slot_multi_mv.groovy
@@ -36,17 +36,7 @@ suite ("multi_slot_multi_mv") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k1a2p2ap3p as select 
abs(k1)+k2+1,abs(k2+2)+k3+3 from d_table;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV ("create materialized view k1a2p2ap3p as select 
abs(k1)+k2+1,abs(k2+2)+k3+3 from d_table;")
 
     sql "create materialized view k1a2p2ap3ps as select 
abs(k1)+k2+1,sum(abs(k2+2)+k3+3) from d_table group by abs(k1)+k2+1;"
     while (!result.contains("FINISHED")){
diff --git 
a/regression-test/suites/materialized_view_p0/mv_with_view/mv_with_view.groovy 
b/regression-test/suites/mv_p0/mv_with_view/mv_with_view.groovy
similarity index 97%
rename from 
regression-test/suites/materialized_view_p0/mv_with_view/mv_with_view.groovy
rename to regression-test/suites/mv_p0/mv_with_view/mv_with_view.groovy
index 4c147d51ac..9e1ea01606 100644
--- 
a/regression-test/suites/materialized_view_p0/mv_with_view/mv_with_view.groovy
+++ b/regression-test/suites/mv_p0/mv_with_view/mv_with_view.groovy
@@ -58,6 +58,10 @@ suite ("mv_with_view") {
     }
     qt_select_mv "select * from v_k132 order by k1;"
 
+    sql """
+        drop view if exists v_k124;
+    """
+
     sql """
         create view v_k124 as select k1,k2,k4 from d_table where k1 = 1;
     """
diff --git 
a/regression-test/suites/materialized_view_p0/test_create_mv_complex_type.groovy
 
b/regression-test/suites/mv_p0/test_create_mv_complex_type/test_create_mv_complex_type.groovy
similarity index 92%
rename from 
regression-test/suites/materialized_view_p0/test_create_mv_complex_type.groovy
rename to 
regression-test/suites/mv_p0/test_create_mv_complex_type/test_create_mv_complex_type.groovy
index a689649c3e..aed740f302 100644
--- 
a/regression-test/suites/materialized_view_p0/test_create_mv_complex_type.groovy
+++ 
b/regression-test/suites/mv_p0/test_create_mv_complex_type/test_create_mv_complex_type.groovy
@@ -18,19 +18,6 @@
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
 suite ("create_mv_complex_type") {
-    def wait_for_create_mv_finish = { table_name, OpTimeout ->
-        def delta_time = 1000
-        for(useTime = 0; useTime <= OpTimeout; useTime += delta_time){
-            alter_res = sql """SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;"""
-            alter_res = alter_res.toString()
-            if(alter_res.contains("FINISHED")) {
-                 break
-            }
-            sleep(delta_time)
-        }
-        assertTrue(useTime <= OpTimeout, "wait_for_create_mv_finish timeout")
-    }
-
     sql "ADMIN SET FRONTEND CONFIG ('enable_struct_type' = 'true')"
     sql "ADMIN SET FRONTEND CONFIG ('enable_map_type' = 'true')"
 
diff --git 
a/regression-test/suites/materialized_view_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.groovy
 
b/regression-test/suites/mv_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.groovy
similarity index 80%
rename from 
regression-test/suites/materialized_view_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.groovy
rename to 
regression-test/suites/mv_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.groovy
index 3e1a0c9616..42c9ffd277 100644
--- 
a/regression-test/suites/materialized_view_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.groovy
+++ 
b/regression-test/suites/mv_p0/test_dup_group_by_mv_abs/test_dup_group_by_mv_abs.groovy
@@ -36,17 +36,7 @@ suite ("test_dup_group_by_mv_abs") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k12sa as select k1,sum(abs(k2)) from d_table 
group by k1;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV ("create materialized view k12sa as select k1,sum(abs(k2)) from 
d_table group by k1;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.groovy
 
b/regression-test/suites/mv_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.groovy
similarity index 80%
rename from 
regression-test/suites/materialized_view_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.groovy
rename to 
regression-test/suites/mv_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.groovy
index abbf4176f1..162c5f46d6 100644
--- 
a/regression-test/suites/materialized_view_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.groovy
+++ 
b/regression-test/suites/mv_p0/test_dup_group_by_mv_plus/test_dup_group_by_mv_plus.groovy
@@ -36,17 +36,7 @@ suite ("test_dup_group_by_mv_plus") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k12sp as select k1,sum(k2+1) from d_table 
group by k1;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV( "create materialized view k12sp as select k1,sum(k2+1) from 
d_table group by k1;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/test_dup_mv_abs/test_dup_mv_abs.groovy
 b/regression-test/suites/mv_p0/test_dup_mv_abs/test_dup_mv_abs.groovy
similarity index 85%
rename from 
regression-test/suites/materialized_view_p0/test_dup_mv_abs/test_dup_mv_abs.groovy
rename to regression-test/suites/mv_p0/test_dup_mv_abs/test_dup_mv_abs.groovy
index 5d4bf8c4dd..a5f595959a 100644
--- 
a/regression-test/suites/materialized_view_p0/test_dup_mv_abs/test_dup_mv_abs.groovy
+++ b/regression-test/suites/mv_p0/test_dup_mv_abs/test_dup_mv_abs.groovy
@@ -36,17 +36,7 @@ suite ("test_dup_mv_abs") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k12a as select k1,abs(k2) from d_table;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV ("create materialized view k12a as select k1,abs(k2) from 
d_table;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/test_dup_mv_bin/test_dup_mv_bin.groovy
 b/regression-test/suites/mv_p0/test_dup_mv_bin/test_dup_mv_bin.groovy
similarity index 86%
rename from 
regression-test/suites/materialized_view_p0/test_dup_mv_bin/test_dup_mv_bin.groovy
rename to regression-test/suites/mv_p0/test_dup_mv_bin/test_dup_mv_bin.groovy
index 4431e44ae7..94b838a6c4 100644
--- 
a/regression-test/suites/materialized_view_p0/test_dup_mv_bin/test_dup_mv_bin.groovy
+++ b/regression-test/suites/mv_p0/test_dup_mv_bin/test_dup_mv_bin.groovy
@@ -36,17 +36,7 @@ suite ("test_dup_mv_bin") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k12b as select k1,bin(k2) from d_table;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV( "create materialized view k12b as select k1,bin(k2) from 
d_table;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.groovy
 
b/regression-test/suites/mv_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.groovy
similarity index 84%
rename from 
regression-test/suites/materialized_view_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.groovy
rename to 
regression-test/suites/mv_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.groovy
index 710e52fbc4..60d40464c0 100644
--- 
a/regression-test/suites/materialized_view_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.groovy
+++ 
b/regression-test/suites/mv_p0/test_dup_mv_bitmap_hash/test_dup_mv_bitmap_hash.groovy
@@ -35,18 +35,7 @@ suite ("test_dup_mv_bitmap_hash") {
     sql "insert into d_table select 2,2,'b';"
     sql "insert into d_table select 3,3,'c';"
 
-    def result = "null"
-
-    sql "create materialized view k1g2bm as select 
k1,bitmap_union(to_bitmap(k2)) from d_table group by k1;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV( "create materialized view k1g2bm as select 
k1,bitmap_union(to_bitmap(k2)) from d_table group by k1;")
 
     explain {
         sql("select bitmap_union_count(to_bitmap(k2)) from d_table group by k1 
order by k1;")
diff --git 
a/regression-test/suites/materialized_view_p0/test_dup_mv_plus/test_dup_mv_plus.groovy
 b/regression-test/suites/mv_p0/test_dup_mv_plus/test_dup_mv_plus.groovy
similarity index 86%
rename from 
regression-test/suites/materialized_view_p0/test_dup_mv_plus/test_dup_mv_plus.groovy
rename to regression-test/suites/mv_p0/test_dup_mv_plus/test_dup_mv_plus.groovy
index f71d39ae8b..eb919b28f6 100644
--- 
a/regression-test/suites/materialized_view_p0/test_dup_mv_plus/test_dup_mv_plus.groovy
+++ b/regression-test/suites/mv_p0/test_dup_mv_plus/test_dup_mv_plus.groovy
@@ -36,17 +36,7 @@ suite ("test_dup_mv_plus") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
-    def result = "null"
-    sql "create materialized view k12p as select k1,k2+1 from d_table;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV ("create materialized view k12p as select k1,k2+1 from d_table;")
 
     sql "insert into d_table select -4,-4,-4,'d';"
 
diff --git 
a/regression-test/suites/materialized_view_p0/test_dup_mv_year/test_dup_mv_year.groovy
 b/regression-test/suites/mv_p0/test_dup_mv_year/test_dup_mv_year.groovy
similarity index 84%
rename from 
regression-test/suites/materialized_view_p0/test_dup_mv_year/test_dup_mv_year.groovy
rename to regression-test/suites/mv_p0/test_dup_mv_year/test_dup_mv_year.groovy
index e461f07cd8..a046dfd247 100644
--- 
a/regression-test/suites/materialized_view_p0/test_dup_mv_year/test_dup_mv_year.groovy
+++ b/regression-test/suites/mv_p0/test_dup_mv_year/test_dup_mv_year.groovy
@@ -35,18 +35,7 @@ suite ("test_dup_mv_year") {
     sql "insert into d_table select 2,'2013-12-31','2013-12-31 01:02:03';"
     sql "insert into d_table select 3,'2023-12-31','2023-12-31 01:02:03';"
 
-    def result = "null"
-
-    sql "create materialized view k12y as select k1,year(k2) from d_table;"
-    while (!result.contains("FINISHED")){
-        result = sql "SHOW ALTER TABLE MATERIALIZED VIEW WHERE 
TableName='d_table' ORDER BY CreateTime DESC LIMIT 1;"
-        result = result.toString()
-        logger.info("result: ${result}")
-        if(result.contains("CANCELLED")){
-            return 
-        }
-        Thread.sleep(1000)
-    }
+    createMV "create materialized view k12y as select k1,year(k2) from 
d_table;"
 
     explain {
         sql("select k1,year(k2) from d_table order by k1;")
diff --git 
a/regression-test/suites/materialized_view_p0/test_mv_useless/test_agg_mv_useless.groovy
 b/regression-test/suites/mv_p0/test_mv_useless/test_agg_mv_useless.groovy
similarity index 100%
rename from 
regression-test/suites/materialized_view_p0/test_mv_useless/test_agg_mv_useless.groovy
rename to 
regression-test/suites/mv_p0/test_mv_useless/test_agg_mv_useless.groovy
diff --git 
a/regression-test/suites/materialized_view_p0/test_mv_useless/test_dup_mv_useless.groovy
 b/regression-test/suites/mv_p0/test_mv_useless/test_dup_mv_useless.groovy
similarity index 100%
rename from 
regression-test/suites/materialized_view_p0/test_mv_useless/test_dup_mv_useless.groovy
rename to 
regression-test/suites/mv_p0/test_mv_useless/test_dup_mv_useless.groovy
diff --git 
a/regression-test/suites/materialized_view_p0/test_mv_useless/test_uniq_mv_useless.groovy
 b/regression-test/suites/mv_p0/test_mv_useless/test_uniq_mv_useless.groovy
similarity index 100%
rename from 
regression-test/suites/materialized_view_p0/test_mv_useless/test_uniq_mv_useless.groovy
rename to 
regression-test/suites/mv_p0/test_mv_useless/test_uniq_mv_useless.groovy
diff --git 
a/regression-test/suites/mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.groovy
 
b/regression-test/suites/mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.groovy
new file mode 100644
index 0000000000..f086c72443
--- /dev/null
+++ 
b/regression-test/suites/mv_p0/ut/testIncorrectMVRewriteInSubquery/testIncorrectMVRewriteInSubquery.groovy
@@ -0,0 +1,49 @@
+// 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.
+
+import org.codehaus.groovy.runtime.IOGroovyMethods
+
+suite ("testIncorrectMVRewriteInSubquery") {
+    sql """ DROP TABLE IF EXISTS user_tags; """
+
+    sql """ create table user_tags (
+                time_col date, 
+                user_id int, 
+                user_name varchar(20), 
+                tag_id int) 
+            partition by range (time_col) (partition p1 values less than 
MAXVALUE) distributed by hash(time_col) buckets 3 properties('replication_num' 
= '1');
+        """
+
+    sql """insert into user_tags values("2020-01-01",1,"a",1);"""
+    sql """insert into user_tags values("2020-01-02",2,"b",2);"""
+
+    createMV("create materialized view user_tags_mv as select user_id, 
bitmap_union(to_bitmap(tag_id)) from user_tags group by user_id;")
+
+    sql """insert into user_tags values("2020-01-01",1,"a",1);"""
+
+    explain {
+        sql("select * from user_tags order by time_col;")
+        contains "(user_tags)"
+    }
+    qt_select_star "select * from user_tags order by time_col;"
+
+    explain {
+        sql("select user_id, bitmap_union(to_bitmap(tag_id)) from user_tags 
where user_name in (select user_name from user_tags group by user_name having 
bitmap_union_count(to_bitmap(tag_id)) >1 ) group by user_id order by user_id;")
+        contains "(user_tags)"
+    }
+    qt_select_mv "select user_id, bitmap_union(to_bitmap(tag_id)) from 
user_tags where user_name in (select user_name from user_tags group by 
user_name having bitmap_union_count(to_bitmap(tag_id)) >1 ) group by user_id 
order by user_id;"
+}
diff --git 
a/regression-test/suites/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.groovy
 b/regression-test/suites/mv_p0/ut/testProjectionMV1/testProjectionMV1.groovy
similarity index 100%
copy from 
regression-test/suites/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.groovy
copy to 
regression-test/suites/mv_p0/ut/testProjectionMV1/testProjectionMV1.groovy
diff --git 
a/regression-test/suites/materialized_view_p0/ut/testProjectionMV2/testProjectionMV2.groovy
 b/regression-test/suites/mv_p0/ut/testProjectionMV2/testProjectionMV2.groovy
similarity index 100%
rename from 
regression-test/suites/materialized_view_p0/ut/testProjectionMV2/testProjectionMV2.groovy
rename to 
regression-test/suites/mv_p0/ut/testProjectionMV2/testProjectionMV2.groovy
diff --git 
a/regression-test/suites/materialized_view_p0/ut/testProjectionMV3/testProjectionMV3.groovy
 b/regression-test/suites/mv_p0/ut/testProjectionMV3/testProjectionMV3.groovy
similarity index 100%
rename from 
regression-test/suites/materialized_view_p0/ut/testProjectionMV3/testProjectionMV3.groovy
rename to 
regression-test/suites/mv_p0/ut/testProjectionMV3/testProjectionMV3.groovy
diff --git 
a/regression-test/suites/materialized_view_p0/ut/testProjectionMV4/testProjectionMV4.groovy
 b/regression-test/suites/mv_p0/ut/testProjectionMV4/testProjectionMV4.groovy
similarity index 100%
rename from 
regression-test/suites/materialized_view_p0/ut/testProjectionMV4/testProjectionMV4.groovy
rename to 
regression-test/suites/mv_p0/ut/testProjectionMV4/testProjectionMV4.groovy
diff --git 
a/regression-test/suites/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.groovy
 b/regression-test/suites/mv_p0/ut/testQueryOnStar/testQueryOnStar.groovy
similarity index 83%
copy from 
regression-test/suites/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.groovy
copy to regression-test/suites/mv_p0/ut/testQueryOnStar/testQueryOnStar.groovy
index c23b533832..8db594a70a 100644
--- 
a/regression-test/suites/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.groovy
+++ b/regression-test/suites/mv_p0/ut/testQueryOnStar/testQueryOnStar.groovy
@@ -17,7 +17,7 @@
 
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
-suite ("testProjectionMV1") {
+suite ("testQueryOnStar") {
     sql """ DROP TABLE IF EXISTS emps; """
 
     sql """
@@ -34,20 +34,19 @@ suite ("testProjectionMV1") {
     sql """insert into emps values("2020-01-01",1,"a",1,1,1);"""
     sql """insert into emps values("2020-01-02",2,"b",2,2,2);"""
 
-    createMV("create materialized view emps_mv as select deptno, empid from 
emps order by deptno;")
+    createMV("create materialized view emps_mv as select time_col, 
deptno,empid, name, salary, commission from emps order by time_col, deptno, 
empid;")
 
     sql """insert into emps values("2020-01-01",1,"a",1,1,1);"""
 
     explain {
         sql("select * from emps order by empid;")
-        contains "(emps)"
+        contains "(emps_mv)"
     }
     qt_select_star "select * from emps order by empid;"
 
-
     explain {
-        sql("select empid, deptno from emps order by empid;")
+        sql("select * from emps where deptno = 1;")
         contains "(emps_mv)"
     }
-    qt_select_mv "select empid, deptno from emps order by empid;"
+    qt_select_mv "select * from emps where deptno = 1 order by empid;"
 }
diff --git 
a/regression-test/suites/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.groovy
 
b/regression-test/suites/mv_p0/ut/testSelectMVWithTableAlias/testSelectMVWithTableAlias.groovy
similarity index 56%
rename from 
regression-test/suites/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.groovy
rename to 
regression-test/suites/mv_p0/ut/testSelectMVWithTableAlias/testSelectMVWithTableAlias.groovy
index c23b533832..f7d81ac7fb 100644
--- 
a/regression-test/suites/materialized_view_p0/ut/testProjectionMV1/testProjectionMV1.groovy
+++ 
b/regression-test/suites/mv_p0/ut/testSelectMVWithTableAlias/testSelectMVWithTableAlias.groovy
@@ -17,37 +17,33 @@
 
 import org.codehaus.groovy.runtime.IOGroovyMethods
 
-suite ("testProjectionMV1") {
-    sql """ DROP TABLE IF EXISTS emps; """
+suite ("testSelectMVWithTableAlias") {
+    sql """ DROP TABLE IF EXISTS user_tags; """
 
-    sql """
-            create table emps (
+    sql """ create table user_tags (
                 time_col date, 
-                empid int, 
-                name varchar, 
-                deptno int, 
-                salary int, 
-                commission int)
+                user_id int, 
+                user_name varchar(20), 
+                tag_id int) 
             partition by range (time_col) (partition p1 values less than 
MAXVALUE) distributed by hash(time_col) buckets 3 properties('replication_num' 
= '1');
         """
 
-    sql """insert into emps values("2020-01-01",1,"a",1,1,1);"""
-    sql """insert into emps values("2020-01-02",2,"b",2,2,2);"""
+    sql """insert into user_tags values("2020-01-01",1,"a",1);"""
+    sql """insert into user_tags values("2020-01-02",2,"b",2);"""
 
-    createMV("create materialized view emps_mv as select deptno, empid from 
emps order by deptno;")
+    createMV("create materialized view user_tags_mv as select user_id, 
count(tag_id) from user_tags group by user_id;")
 
-    sql """insert into emps values("2020-01-01",1,"a",1,1,1);"""
+    sql """insert into user_tags values("2020-01-01",1,"a",1);"""
 
     explain {
-        sql("select * from emps order by empid;")
-        contains "(emps)"
+        sql("select * from user_tags order by time_col;")
+        contains "(user_tags)"
     }
-    qt_select_star "select * from emps order by empid;"
-
+    qt_select_star "select * from user_tags order by time_col;"
 
     explain {
-        sql("select empid, deptno from emps order by empid;")
-        contains "(emps_mv)"
+        sql("select count(tag_id) from user_tags t;")
+        contains "(user_tags_mv)"
     }
-    qt_select_mv "select empid, deptno from emps order by empid;"
+    qt_select_mv "select count(tag_id) from user_tags t;"
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to