This commit is contained in:
@ -2,12 +2,18 @@
|
||||
-- !select_star --
|
||||
-4 -4 -4 d
|
||||
1 1 1 a
|
||||
1 1 1 a
|
||||
1 1 1 a
|
||||
2 2 2 b
|
||||
2 2 2 b
|
||||
2 2 2 b
|
||||
3 -3 \N c
|
||||
3 -3 \N c
|
||||
3 -3 \N c
|
||||
|
||||
-- !select_mv --
|
||||
-3 1
|
||||
2 7
|
||||
3 9
|
||||
2 21
|
||||
3 27
|
||||
4 \N
|
||||
|
||||
|
||||
@ -1,107 +1,107 @@
|
||||
-- This file is automatically generated. You should know what you did if you want to edit this
|
||||
-- !query_3_0_before --
|
||||
2023-10-17 2023-10-17 2 3 199.00
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-17 2023-10-17 2 3 1990.00
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_3_0_after --
|
||||
2023-10-17 2023-10-17 2 3 199.00
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-17 2023-10-17 2 3 1990.00
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_4_0_before --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_4_0_after --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_7_0_before --
|
||||
2023-10-17 2023-10-17 2 3 199.00
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-17 2023-10-17 2 3 1990.00
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
2023-10-21 \N 2 3 \N
|
||||
|
||||
-- !query_7_0_after --
|
||||
2023-10-17 2023-10-17 2 3 199.00
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-17 2023-10-17 2 3 1990.00
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
2023-10-21 \N 2 3 \N
|
||||
|
||||
-- !query_8_0_before --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_8_0_after --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_11_0_before --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
2023-10-21 \N 2 3 \N
|
||||
|
||||
-- !query_11_0_after --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
2023-10-21 \N 2 3 \N
|
||||
|
||||
-- !query_12_0_before --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_12_0_after --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_16_0_before --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 436.80
|
||||
2023-10-19 2023-10-19 2 3 398.00
|
||||
|
||||
-- !query_16_0_after --
|
||||
2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2 3 436.80
|
||||
2023-10-19 2023-10-19 2 3 398.00
|
||||
|
||||
-- !query_17_0_before --
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 1592.00
|
||||
2023-10-21 2023-10-21 \N 2 3 \N
|
||||
2023-11-21 2023-11-21 \N 2 3 \N
|
||||
|
||||
-- !query_17_0_after --
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 1592.00
|
||||
2023-10-21 2023-10-21 \N 2 3 \N
|
||||
2023-11-21 2023-11-21 \N 2 3 \N
|
||||
|
||||
-- !query_18_0_before --
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_18_0_after --
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_19_0_before --
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 1592.00
|
||||
2023-10-21 2023-10-21 \N 2 3 \N
|
||||
2023-11-21 2023-11-21 \N 2 3 \N
|
||||
2023-11-22 2023-11-22 \N 2 3 \N
|
||||
|
||||
-- !query_19_0_after --
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 1592.00
|
||||
2023-10-21 2023-10-21 \N 2 3 \N
|
||||
2023-11-21 2023-11-21 \N 2 3 \N
|
||||
2023-11-22 2023-11-22 \N 2 3 \N
|
||||
|
||||
-- !query_20_0_before --
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
-- !query_20_0_after --
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 109.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 99.50
|
||||
2023-10-18 2023-10-18 2023-10-18 2 3 1747.20
|
||||
2023-10-19 2023-10-19 2023-10-19 2 3 1592.00
|
||||
|
||||
|
||||
@ -32,8 +32,14 @@ suite ("multi_slot_k1p2ap3ps") {
|
||||
properties("replication_num" = "1");
|
||||
"""
|
||||
|
||||
sql "insert into d_table select 1,1,1,'a';"
|
||||
sql "insert into d_table select 1,1,1,'a';"
|
||||
sql "insert into d_table select 1,1,1,'a';"
|
||||
sql "insert into d_table select 2,2,2,'b';"
|
||||
sql "insert into d_table select 2,2,2,'b';"
|
||||
sql "insert into d_table select 2,2,2,'b';"
|
||||
sql "insert into d_table select 3,-3,null,'c';"
|
||||
sql "insert into d_table select 3,-3,null,'c';"
|
||||
sql "insert into d_table select 3,-3,null,'c';"
|
||||
|
||||
createMV ("create materialized view k1p2ap3ps as select k1+1,sum(abs(k2+2)+k3+3) from d_table group by k1+1;")
|
||||
@ -41,13 +47,13 @@ suite ("multi_slot_k1p2ap3ps") {
|
||||
sql "insert into d_table select -4,-4,-4,'d';"
|
||||
|
||||
sql "analyze table d_table with sync;"
|
||||
sql """alter table d_table modify column k1 set stats ('row_count'='5');"""
|
||||
sql """alter table d_table modify column k1 set stats ('row_count'='11');"""
|
||||
sql """set enable_stats=false;"""
|
||||
|
||||
qt_select_star "select * from d_table order by k1;"
|
||||
order_qt_select_star "select * from d_table order by k1;"
|
||||
|
||||
mv_rewrite_success("select k1+1,sum(abs(k2+2)+k3+3) from d_table group by k1+1 order by k1+1;", "k1p2ap3ps")
|
||||
qt_select_mv "select k1+1,sum(abs(k2+2)+k3+3) from d_table group by k1+1 order by k1+1;"
|
||||
order_qt_select_mv "select k1+1,sum(abs(k2+2)+k3+3) from d_table group by k1+1 order by k1+1;"
|
||||
|
||||
sql """set enable_stats=true;"""
|
||||
mv_rewrite_success("select k1+1,sum(abs(k2+2)+k3+3) from d_table group by k1+1 order by k1+1;", "k1p2ap3ps")
|
||||
|
||||
@ -80,7 +80,7 @@ suite ("mv_ssb_q_1_1") {
|
||||
(19930101 , 1 , 1 , 1 , 1 , 1 , '1' , 1 , 1 , 1 , 1 , 100 , 1 , 1 , 1 , '2023-06-09' , 'shipmode' , 'name' , 'address' , 'city' , 'nation' , 'AMERICA' , 'phone' , 'mktsegment' , 'name' , 'address' , 'city' , 'nation' , 'AMERICA' ,'phone', 'name', 'MFGR#1', 'category', 'brand', 'color', 'type', 4 ,'container'),
|
||||
(19930101 , 1 , 1 , 1 , 1 , 1 , '1' , 1 , 1 , 1 , 1 , 100 , 1 , 1 , 1 , '2023-06-09' , 'shipmode' , 'name' , 'address' , 'city' , 'nation' , 'AMERICA' , 'phone' , 'mktsegment' , 'name' , 'address' , 'city' , 'nation' , 'AMERICA' ,'phone', 'name', 'MFGR#1', 'category', 'brand', 'color', 'type', 4 ,'container');"""
|
||||
|
||||
sql """alter table lineorder_flat modify column LO_ORDERDATE set stats ('row_count'='6');"""
|
||||
sql """alter table lineorder_flat modify column C_CITY set stats ('row_count'='6');"""
|
||||
|
||||
createMV ("""create materialized view lineorder_q_1_1 as
|
||||
SELECT LO_ORDERKEY, SUM(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue
|
||||
@ -101,6 +101,7 @@ suite ("mv_ssb_q_1_1") {
|
||||
qt_select_star "select * from lineorder_flat order by 1,2, P_MFGR;"
|
||||
|
||||
sql "analyze table lineorder_flat with sync;"
|
||||
sql """alter table lineorder_flat modify column C_CITY set stats ('row_count'='6');"""
|
||||
mv_rewrite_success("""SELECT SUM(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue
|
||||
FROM lineorder_flat
|
||||
WHERE
|
||||
|
||||
@ -20,8 +20,6 @@ import java.time.LocalDate
|
||||
suite("create_commit_mtmv_many_tasks", "p2") {
|
||||
|
||||
def src_database_name = context.config.getDbNameByFile(context.file)
|
||||
sql """drop database if exists ${src_database_name};"""
|
||||
sql """create database ${src_database_name};"""
|
||||
sql """use ${src_database_name};"""
|
||||
|
||||
def table_name1 = "lineitem"
|
||||
|
||||
@ -71,6 +71,7 @@ suite("mtmv_range_date_datetrunc_date_part_up") {
|
||||
(1, 2, 3, null, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy', '2023-10-29 03:00:00'),
|
||||
(2, 3, 2, 1, 5.5, 6.5, 7.5, 8.5, 'o', 'k', null, '2023-10-18', 'a', 'b', 'yyyyyyyyy', '2023-10-29 04:00:00');
|
||||
"""
|
||||
sql """alter table ${tb_name} modify column l_comment set stats ('row_count'='5');"""
|
||||
|
||||
def compare_res = { def stmt ->
|
||||
sql "SET enable_materialized_view_rewrite=false"
|
||||
|
||||
@ -119,6 +119,8 @@ suite("mtmv_range_date_part_up") {
|
||||
(1, 3, 2, 2, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy', '2023-10-29');
|
||||
"""
|
||||
|
||||
sql """alter table lineitem_range_date modify column l_comment set stats ('row_count'='7');"""
|
||||
|
||||
def get_part = { def mv_name ->
|
||||
def part_res = sql """show partitions from ${mv_name}"""
|
||||
return part_res.size()
|
||||
|
||||
@ -169,7 +169,7 @@ suite("mtmv_range_date_part_up_rewrite") {
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
def job_name = getJobName(db, mv_name_list[i])
|
||||
waitingMTMVTaskFinished(job_name)
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
@ -177,45 +177,39 @@ suite("mtmv_range_date_part_up_rewrite") {
|
||||
sql """alter table lineitem_range_date_union add partition p4 values [("2023-11-01"), ("2023-11-02"));"""
|
||||
sql """insert into lineitem_range_date_union values
|
||||
(1, null, 3, 1, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy', '2023-11-01')"""
|
||||
sql """analyze table ${mv_prefix}_mv1 with sync"""
|
||||
sql """analyze table ${mv_prefix}_mv2 with sync"""
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
sql """refresh MATERIALIZED VIEW ${mv_name_list[i]} auto;"""
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
sql """insert into lineitem_range_date_union values
|
||||
(2, null, 3, 1, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy', '2023-11-01');"""
|
||||
sql """analyze table ${mv_prefix}_mv1 with sync"""
|
||||
sql """analyze table ${mv_prefix}_mv2 with sync"""
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
sql """refresh MATERIALIZED VIEW ${mv_name_list[i]} auto;"""
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
sql """ALTER TABLE lineitem_range_date_union DROP PARTITION IF EXISTS p4 FORCE"""
|
||||
sql """analyze table ${mv_prefix}_mv1 with sync"""
|
||||
sql """analyze table ${mv_prefix}_mv2 with sync"""
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
sql """refresh MATERIALIZED VIEW ${mv_name_list[i]} auto;"""
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
|
||||
@ -25,13 +25,14 @@ suite("mtmv_range_datetime_part_up_rewrite") {
|
||||
sql "SET enable_materialized_view_nest_rewrite=true"
|
||||
sql "SET enable_materialized_view_union_rewrite=true"
|
||||
sql "SET enable_nereids_timeout = false"
|
||||
String mv_prefix = "range_datetime_up_union"
|
||||
|
||||
String mv_prefix = "mtmv_range_datetime_part_up_rewrite"
|
||||
String lineitemName = "${mv_prefix}_lineitem"
|
||||
String ordersName = "${mv_prefix}_orders"
|
||||
sql """
|
||||
drop table if exists lineitem_range_datetime_union
|
||||
drop table if exists ${lineitemName}
|
||||
"""
|
||||
|
||||
sql """CREATE TABLE `lineitem_range_datetime_union` (
|
||||
sql """CREATE TABLE `${lineitemName}` (
|
||||
`l_orderkey` BIGINT NULL,
|
||||
`l_linenumber` INT NULL,
|
||||
`l_partkey` INT NULL,
|
||||
@ -61,10 +62,10 @@ suite("mtmv_range_datetime_part_up_rewrite") {
|
||||
);"""
|
||||
|
||||
sql """
|
||||
drop table if exists orders_range_datetime_union
|
||||
drop table if exists ${ordersName}
|
||||
"""
|
||||
|
||||
sql """CREATE TABLE `orders_range_datetime_union` (
|
||||
sql """CREATE TABLE `${ordersName}` (
|
||||
`o_orderkey` BIGINT NULL,
|
||||
`o_custkey` INT NULL,
|
||||
`o_orderstatus` VARCHAR(1) NULL,
|
||||
@ -89,7 +90,7 @@ suite("mtmv_range_datetime_part_up_rewrite") {
|
||||
);"""
|
||||
|
||||
sql """
|
||||
insert into lineitem_range_datetime_union values
|
||||
insert into ${lineitemName} values
|
||||
(null, 1, 2, 3, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy', '2023-10-29 00:00:00'),
|
||||
(1, null, 3, 1, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy', '2023-10-29 00:00:00'),
|
||||
(3, 3, null, 2, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx', '2023-10-29 02:00:00'),
|
||||
@ -98,9 +99,10 @@ suite("mtmv_range_datetime_part_up_rewrite") {
|
||||
(3, 1, 1, 2, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', null, 'c', 'd', 'xxxxxxxxx', '2023-10-29 02:00:00'),
|
||||
(1, 3, 2, 2, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy', '2023-10-29 00:00:00');
|
||||
"""
|
||||
sql """alter table ${lineitemName} modify column l_comment set stats ('row_count'='7');"""
|
||||
|
||||
sql """
|
||||
insert into orders_range_datetime_union values
|
||||
insert into ${ordersName} values
|
||||
(null, 1, 'k', 99.5, 'a', 'b', 1, 'yy', '2023-10-29 00:00:00'),
|
||||
(1, null, 'o', 109.2, 'c','d',2, 'mm', '2023-10-29 00:00:00'),
|
||||
(3, 3, null, 99.5, 'a', 'b', 1, 'yy', '2023-10-29 01:00:00'),
|
||||
@ -112,24 +114,18 @@ suite("mtmv_range_datetime_part_up_rewrite") {
|
||||
(3, 2, 'k', 99.5, 'a', 'b', 1, 'yy', '2023-10-29 00:00:00'),
|
||||
(4, 5, 'k', 99.5, 'a', 'b', 1, 'yy', '2023-10-29 02:00:00');
|
||||
"""
|
||||
|
||||
sql """alter table lineitem_range_datetime_union modify column l_shipdate set stats
|
||||
('row_count'='7.0', 'ndv'='3.0', 'num_nulls'='0.0', 'data_size'='56.0', 'min_value'='2023-10-29 00:00:00', 'max_value'='2023-10-29 02:00:00');"""
|
||||
sql """alter table lineitem_range_datetime_union modify column l_orderkey set stats
|
||||
('row_count'='7.0', 'ndv'='3.0', 'num_nulls'='1.0', 'data_size'='56.0', 'min_value'='1', 'max_value'='3');"""
|
||||
sql """alter table orders_range_datetime_union modify column o_orderkey set stats
|
||||
('row_count'='7.0', 'ndv'='3.0', 'num_nulls'='1.0', 'data_size'='56.0', 'min_value'='1', 'max_value'='3');"""
|
||||
sql """alter table ${ordersName} modify column o_comment set stats ('row_count'='10');"""
|
||||
|
||||
sql """DROP MATERIALIZED VIEW if exists ${mv_prefix}_mv1;"""
|
||||
sql """CREATE MATERIALIZED VIEW ${mv_prefix}_mv1 BUILD IMMEDIATE REFRESH AUTO ON MANUAL partition by(date_trunc(`col1`, 'month')) DISTRIBUTED BY RANDOM BUCKETS 2 PROPERTIES ('replication_num' = '1') AS
|
||||
select date_trunc(`l_shipdate`, 'day') as col1, l_shipdate, l_orderkey from lineitem_range_datetime_union as t1 left join orders_range_datetime_union as t2 on t1.l_orderkey = t2.o_orderkey group by col1, l_shipdate, l_orderkey;"""
|
||||
select date_trunc(`l_shipdate`, 'day') as col1, l_shipdate, l_orderkey from ${lineitemName} as t1 left join ${ordersName} as t2 on t1.l_orderkey = t2.o_orderkey group by col1, l_shipdate, l_orderkey;"""
|
||||
|
||||
sql """DROP MATERIALIZED VIEW if exists ${mv_prefix}_mv2;"""
|
||||
sql """CREATE MATERIALIZED VIEW ${mv_prefix}_mv2 BUILD IMMEDIATE REFRESH AUTO ON MANUAL partition by(date_trunc(`col1`, 'month')) DISTRIBUTED BY RANDOM BUCKETS 2 PROPERTIES ('replication_num' = '1') AS
|
||||
select date_trunc(`l_shipdate`, 'hour') as col1, l_shipdate, l_orderkey from lineitem_range_datetime_union as t1 left join orders_range_datetime_union as t2 on t1.l_orderkey = t2.o_orderkey group by col1, l_shipdate, l_orderkey;"""
|
||||
select date_trunc(`l_shipdate`, 'hour') as col1, l_shipdate, l_orderkey from ${lineitemName} as t1 left join ${ordersName} as t2 on t1.l_orderkey = t2.o_orderkey group by col1, l_shipdate, l_orderkey;"""
|
||||
|
||||
def sql1 = """select date_trunc(`l_shipdate`, 'day') as col1, l_shipdate, l_orderkey from lineitem_range_datetime_union as t1 left join orders_range_datetime_union as t2 on t1.l_orderkey = t2.o_orderkey group by col1, l_shipdate, l_orderkey"""
|
||||
def sql2 = """select date_trunc(`l_shipdate`, 'hour') as col1, l_shipdate, l_orderkey from lineitem_range_datetime_union as t1 left join orders_range_datetime_union as t2 on t1.l_orderkey = t2.o_orderkey group by col1, l_shipdate, l_orderkey"""
|
||||
def sql1 = """select date_trunc(`l_shipdate`, 'day') as col1, l_shipdate, l_orderkey from ${lineitemName} as t1 left join ${ordersName} as t2 on t1.l_orderkey = t2.o_orderkey group by col1, l_shipdate, l_orderkey"""
|
||||
def sql2 = """select date_trunc(`l_shipdate`, 'hour') as col1, l_shipdate, l_orderkey from ${lineitemName} as t1 left join ${ordersName} as t2 on t1.l_orderkey = t2.o_orderkey group by col1, l_shipdate, l_orderkey"""
|
||||
|
||||
def localWaitingMTMVTaskFinished = { def jobName ->
|
||||
Thread.sleep(2000);
|
||||
@ -168,60 +164,60 @@ suite("mtmv_range_datetime_part_up_rewrite") {
|
||||
}
|
||||
}
|
||||
|
||||
sql """analyze table ${mv_prefix}_mv1 with sync"""
|
||||
sql """analyze table ${mv_prefix}_mv2 with sync"""
|
||||
def query_stmt_list = [sql1, sql2]
|
||||
def mv_name_list = ["${mv_prefix}_mv1", "${mv_prefix}_mv2"]
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
def job_name = getJobName(db, mv_name_list[i])
|
||||
waitingMTMVTaskFinished(job_name)
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
|
||||
sql """alter table lineitem_range_datetime_union add partition p4 values [("2023-11-29 03:00:00"), ("2023-11-29 04:00:00"));"""
|
||||
sql """insert into lineitem_range_datetime_union values
|
||||
sql """alter table ${lineitemName} add partition p4 values [("2023-11-29 03:00:00"), ("2023-11-29 04:00:00"));"""
|
||||
sql """insert into ${lineitemName} values
|
||||
(1, null, 3, 1, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy', '2023-11-29 03:00:00')"""
|
||||
sql """analyze table ${mv_prefix}_mv1 with sync"""
|
||||
sql """analyze table ${mv_prefix}_mv2 with sync"""
|
||||
sql """alter table ${lineitemName} modify column l_comment set stats ('row_count'='8');"""
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
// both mv should rewrite success
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
sql """refresh MATERIALIZED VIEW ${mv_name_list[i]} auto;"""
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
// both mv should rewrite success
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
sql """insert into lineitem_range_datetime_union values
|
||||
sql """insert into ${lineitemName} values
|
||||
(3, null, 3, 1, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy', '2023-11-29 03:00:00');"""
|
||||
sql """analyze table ${mv_prefix}_mv1 with sync"""
|
||||
sql """analyze table ${mv_prefix}_mv2 with sync"""
|
||||
sql """alter table ${lineitemName} modify column l_comment set stats ('row_count'='9');"""
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
// both mv should rewrite success
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
sql """refresh MATERIALIZED VIEW ${mv_name_list[i]} auto;"""
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
// both mv should rewrite success
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
sql """ALTER TABLE lineitem_range_datetime_union DROP PARTITION IF EXISTS p4 FORCE"""
|
||||
sql """analyze table ${mv_prefix}_mv1 with sync"""
|
||||
sql """analyze table ${mv_prefix}_mv2 with sync"""
|
||||
sql """ALTER TABLE ${lineitemName} DROP PARTITION IF EXISTS p4 FORCE"""
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
// both mv should rewrite success
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
for (int i = 0; i < mv_name_list.size(); i++) {
|
||||
sql """refresh MATERIALIZED VIEW ${mv_name_list[i]} auto;"""
|
||||
mv_rewrite_success(query_stmt_list[i], mv_name_list[i])
|
||||
// both mv should rewrite success
|
||||
mv_rewrite_any_success(query_stmt_list[i], mv_name_list)
|
||||
compare_res(query_stmt_list[i] + " order by 1,2,3")
|
||||
}
|
||||
|
||||
|
||||
@ -84,14 +84,32 @@ suite("partition_mv_rewrite") {
|
||||
sql"""
|
||||
insert into orders values
|
||||
(1, 1, 'ok', 99.5, '2023-10-17', 'a', 'b', 1, 'yy'),
|
||||
(1, 1, 'ok', 99.5, '2023-10-17', 'a', 'b', 1, 'yy'),
|
||||
(1, 1, 'ok', 99.5, '2023-10-17', 'a', 'b', 1, 'yy'),
|
||||
(1, 1, 'ok', 99.5, '2023-10-17', 'a', 'b', 1, 'yy'),
|
||||
(2, 2, 'ok', 109.2, '2023-10-18', 'c','d',2, 'mm'),
|
||||
(2, 2, 'ok', 109.2, '2023-10-18', 'c','d',2, 'mm'),
|
||||
(2, 2, 'ok', 109.2, '2023-10-18', 'c','d',2, 'mm'),
|
||||
(2, 2, 'ok', 109.2, '2023-10-18', 'c','d',2, 'mm'),
|
||||
(3, 3, 'ok', 99.5, '2023-10-19', 'a', 'b', 1, 'yy'),
|
||||
(3, 3, 'ok', 99.5, '2023-10-19', 'a', 'b', 1, 'yy'),
|
||||
(3, 3, 'ok', 99.5, '2023-10-19', 'a', 'b', 1, 'yy'),
|
||||
(3, 3, 'ok', 99.5, '2023-10-19', 'a', 'b', 1, 'yy');
|
||||
"""
|
||||
|
||||
sql """
|
||||
insert into lineitem values
|
||||
(1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy'),
|
||||
(1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy'),
|
||||
(1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy'),
|
||||
(1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-17', '2023-10-17', '2023-10-17', 'a', 'b', 'yyyyyyyyy'),
|
||||
(2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy'),
|
||||
(2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy'),
|
||||
(2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy'),
|
||||
(2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-10-18', '2023-10-18', '2023-10-18', 'a', 'b', 'yyyyyyyyy'),
|
||||
(3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx'),
|
||||
(3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx'),
|
||||
(3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx'),
|
||||
(3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-19', '2023-10-19', '2023-10-19', 'c', 'd', 'xxxxxxxxx');
|
||||
"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user