Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 8 additions & 38 deletions regression-test/suites/nereids_syntax_p0/advance_mv.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,9 @@ suite("advance_mv") {
def tbName2 = "test_advance_mv_dup_table"
def tbName3 = "schema_change_dup_mv_regression_test"

def getJobState = { tableName ->
def jobStateResult = sql """ SHOW ALTER TABLE MATERIALIZED VIEW WHERE TableName='${tableName}' ORDER BY CreateTime DESC LIMIT 1; """
return jobStateResult[0][8]
}
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"

sql "DROP TABLE IF EXISTS ${tbName1} FORCE"
sql """
CREATE TABLE IF NOT EXISTS ${tbName1}(
Expand Down Expand Up @@ -93,7 +92,7 @@ suite("advance_mv") {
sql "analyze table ${tbName3} with sync;"
sql """set enable_stats=false;"""

createMV("CREATE materialized VIEW mv1 AS SELECT k1 as a1, sum(v2) as a2 FROM ${tbName1} GROUP BY k1;")
create_sync_mv(db, tbName1, "mv1", "SELECT k1 as a1, sum(v2) as a2 FROM ${tbName1} GROUP BY k1;")

explain {
sql("select k1, sum(v2) from ${tbName1} group by k1 order by k1;")
Expand All @@ -107,7 +106,7 @@ suite("advance_mv") {
}
order_qt_select_star "select k1 from ${tbName1} order by k1;"

createMV("CREATE materialized VIEW mv2 AS SELECT abs(k1)+k2+1 as a4, sum(abs(k2+2)+k3+3) as a3 FROM ${tbName2} GROUP BY a4;")
create_sync_mv(db, tbName2, "mv2", "SELECT abs(k1)+k2+1 as a4, sum(abs(k2+2)+k3+3) as a3 FROM ${tbName2} GROUP BY a4;")

explain {
sql("SELECT abs(k1)+k2+1 tmp, sum(abs(k2+2)+k3+3) FROM ${tbName2} GROUP BY tmp;")
Expand All @@ -120,22 +119,8 @@ suite("advance_mv") {
}
order_qt_select_star "SELECT abs(k1)+k2+1 tmp, sum(abs(k2+2)+k3+3) FROM ${tbName2} GROUP BY tmp;"

sql "CREATE materialized VIEW mv3 AS SELECT abs(k1)+k2+1 as a5, abs(k2+2)+k3+3 as a6 FROM ${tbName2};"
int max_try_secs2 = 60
while (max_try_secs2--) {
String res = getJobState(tbName2)
if (res == "FINISHED" || res == "CANCELLED") {
assertEquals("FINISHED", res)
sleep(3000)
break
} else {
Thread.sleep(2000)
if (max_try_secs2 < 1) {
println "test timeout," + "state:" + res
assertEquals("FINISHED",res)
}
}
}
create_sync_mv(db, tbName2, "mv3", "SELECT abs(k1)+k2+1 as a5, abs(k2+2)+k3+3 as a6 FROM ${tbName2};")

explain {
sql("SELECT abs(k1)+k2+1 tmp, abs(k2+2)+k3+3 FROM ${tbName2};")
contains "(mv3)"
Expand All @@ -148,23 +133,8 @@ suite("advance_mv") {
contains "(mv3)"
}

create_sync_mv(db, tbName3, "mv4", "select date as b1, user_id as b2, city as b3, sum(age) from ${tbName3} group by date, user_id, city;")

sql "create materialized view mv4 as select date as b1, user_id as b2, city as b3, sum(age) from ${tbName3} group by date, user_id, city;"
int max_try_secs3 = 60
while (max_try_secs3--) {
String res = getJobState(tbName3)
if (res == "FINISHED" || res == "CANCELLED") {
assertEquals("FINISHED", res)
sleep(3000)
break
} else {
Thread.sleep(2000)
if (max_try_secs2 < 1) {
println "test timeout," + "state:" + res
assertEquals("FINISHED",res)
}
}
}
explain {
sql("select sum(age) from ${tbName3};")
contains "(mv4)"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,12 @@ import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("aggHaveDupBase") {

String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"

def tbName1 = "agg_have_dup_base"
def getJobState = { tableName ->
def jobStateResult = sql """ SHOW ALTER TABLE MATERIALIZED VIEW WHERE TableName='${tableName}' ORDER BY CreateTime DESC LIMIT 1; """
return jobStateResult[0][8]
}
sql """ DROP TABLE IF EXISTS agg_have_dup_base; """
sql """
create table agg_have_dup_base(
Expand All @@ -46,8 +44,7 @@ suite ("aggHaveDupBase") {
sql "insert into agg_have_dup_base select 3,-3,null,'c';"
sql "insert into agg_have_dup_base select 3,-3,null,'c';"

createMV( "create materialized view k12s3m as select k1 as a1,sum(k2),max(k2) from agg_have_dup_base group by k1;")

create_sync_mv(db, "agg_have_dup_base", "k12s3m", "select k1 as a1,sum(k2),max(k2) from agg_have_dup_base group by k1;")

sql "insert into agg_have_dup_base select -4,-4,-4,'d';"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("case_ignore") {

String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS case_ignore; """
Expand All @@ -38,9 +41,7 @@ suite ("case_ignore") {
sql "insert into case_ignore select 2,2,2,'b';"
sql "insert into case_ignore select 3,-3,null,'c';"


createMV ("create materialized view k12a as select K1 as a1,abs(K2) from case_ignore;")
sleep(3000)
create_sync_mv(db, "case_ignore", "k12a", "select K1 as a1,abs(K2) from case_ignore;")

sql "insert into case_ignore select -4,-4,-4,'d';"
sql "SET experimental_enable_nereids_planner=true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("dup_gb_mv_abs") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS dup_gb_mv_abs; """
Expand All @@ -38,8 +40,7 @@ suite ("dup_gb_mv_abs") {
sql "insert into dup_gb_mv_abs select 2,2,2,'b';"
sql "insert into dup_gb_mv_abs select 3,-3,null,'c';"

createMV ("create materialized view k12sa as select k1 as a1,sum(abs(k2)) from dup_gb_mv_abs group by k1;")
sleep(3000)
create_sync_mv(db, "dup_gb_mv_abs", "k12sa", "select k1 as a1,sum(abs(k2)) from dup_gb_mv_abs group by k1;")

sql "insert into dup_gb_mv_abs select -4,-4,-4,'d';"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("dup_gb_mv_plus") {

String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS dup_gb_mv_plus; """
Expand All @@ -38,8 +41,7 @@ suite ("dup_gb_mv_plus") {
sql "insert into dup_gb_mv_plus select 2,2,2,'b';"
sql "insert into dup_gb_mv_plus select 3,-3,null,'c';"

createMV( "create materialized view k12sp as select k1 as a1,sum(k2+1) from dup_gb_mv_plus group by k1;")
sleep(3000)
create_sync_mv(db, "dup_gb_mv_plus", "k12sp", "select k1 as a1,sum(k2+1) from dup_gb_mv_plus group by k1;")

sql "insert into dup_gb_mv_plus select -4,-4,-4,'d';"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("dup_mv_abs") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS dup_mv_abs; """
Expand All @@ -37,8 +39,7 @@ suite ("dup_mv_abs") {
sql "insert into dup_mv_abs select 2,2,2,'b';"
sql "insert into dup_mv_abs select 3,-3,null,'c';"

createMV ("create materialized view k12a as select k1 as a1,abs(k2) from dup_mv_abs;")
sleep(3000)
create_sync_mv(db, "dup_mv_abs", "k12a", "select k1 as a1,abs(k2) from dup_mv_abs;")

sql "insert into dup_mv_abs select -4,-4,-4,'d';"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("dup_mv_bin") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS dup_mv_bin; """
Expand All @@ -38,8 +40,7 @@ suite ("dup_mv_bin") {
sql "insert into dup_mv_bin select 2,2,2,'b';"
sql "insert into dup_mv_bin select 3,-3,null,'c';"

createMV( "create materialized view k12b as select k1 as a1,bin(k2) from dup_mv_bin;")
sleep(3000)
create_sync_mv(db, "dup_mv_bin", "k12b", "select k1 as a1,bin(k2) from dup_mv_bin;")

sql "insert into dup_mv_bin select -4,-4,-4,'d';"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
// under the License.

suite ("dup_mv_bm_hash") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS dup_mv_bm_hash; """
Expand All @@ -35,7 +37,7 @@ suite ("dup_mv_bm_hash") {
sql "insert into dup_mv_bm_hash select 2,2,'b';"
sql "insert into dup_mv_bm_hash select 3,3,'c';"

createMV( "create materialized view dup_mv_bm_hash_mv1 as select k1 as a1,bitmap_union(to_bitmap(k2)) as a2 from dup_mv_bm_hash group by k1;")
create_sync_mv(db, "dup_mv_bm_hash", "dup_mv_bm_hash_mv1", "select k1 as a1,bitmap_union(to_bitmap(k2)) as a2 from dup_mv_bm_hash group by k1;")

sql "SET experimental_enable_nereids_planner=true"
sql "SET enable_fallback_to_original_planner=false"
Expand All @@ -51,7 +53,7 @@ suite ("dup_mv_bm_hash") {
sql """set enable_stats=true;"""
mv_rewrite_success("select bitmap_union_count(to_bitmap(k2)) from dup_mv_bm_hash group by k1 order by k1;", "dup_mv_bm_hash_mv1")

createMV("create materialized view dup_mv_bm_hash_mv2 as select k1 as a3,bitmap_union(bitmap_hash(k3)) as a4 from dup_mv_bm_hash group by k1;")
create_sync_mv(db, "dup_mv_bm_hash", "dup_mv_bm_hash_mv2", "select k1 as a3,bitmap_union(bitmap_hash(k3)) as a4 from dup_mv_bm_hash group by k1;")

sql "insert into dup_mv_bm_hash select 2,2,'bb';"
sql "insert into dup_mv_bm_hash select 3,3,'c';"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("dup_mv_plus") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS dup_mv_plus; """
Expand All @@ -38,8 +40,7 @@ suite ("dup_mv_plus") {
sql "insert into dup_mv_plus select 2,2,2,'b';"
sql "insert into dup_mv_plus select 3,-3,null,'c';"

createMV ("create materialized view k12p as select k1 as a1,k2+1 from dup_mv_plus;")
sleep(3000)
create_sync_mv(db, "dup_mv_plus", "k12p", "select k1 as a1,k2+1 from dup_mv_plus;")

sql "insert into dup_mv_plus select -4,-4,-4,'d';"
sql "SET experimental_enable_nereids_planner=true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
// under the License.

suite ("dup_mv_year") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS dup_mv_year; """
Expand Down Expand Up @@ -51,7 +53,7 @@ suite ("dup_mv_year") {
sql """set enable_stats=true;"""
mv_rewrite_success("select k1,year(k2) from dup_mv_year order by k1;", "k12y")

createMV "create materialized view k13y as select k1 as a3,year(k3) as a4 from dup_mv_year;"
create_sync_mv(db, "dup_mv_year", "k13y", "select k1 as a3,year(k3) as a4 from dup_mv_year;")

sql "insert into dup_mv_year select 4,'2033-12-31','2033-12-31 01:02:03';"
Thread.sleep(1000)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("multi_slot1") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS multi_slot1; """
Expand All @@ -38,8 +40,7 @@ suite ("multi_slot1") {
sql "insert into multi_slot1 select 2,2,2,'b';"
sql "insert into multi_slot1 select 3,-3,null,'c';"

createMV ("create materialized view k1a2p2ap3p as select abs(k1)+k2+1 as a1,abs(k2+2)+k3+3 as a2 from multi_slot1;")
sleep(3000)
create_sync_mv(db, "multi_slot1", "k1a2p2ap3p", "select abs(k1)+k2+1 as a1,abs(k2+2)+k3+3 as a2 from multi_slot1;")

sql "insert into multi_slot1 select -4,-4,-4,'d';"
sql "SET experimental_enable_nereids_planner=true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("multi_slot2") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS multi_slot2; """
Expand Down Expand Up @@ -46,9 +48,8 @@ suite ("multi_slot2") {
}
assertTrue(createFail);

createMV ("create materialized view k1a2p2ap3ps as select abs(k1)+k2+1 as a3,sum(abs(k2+2)+k3+3) as a4 from multi_slot2 group by abs(k1)+k2+1;")
create_sync_mv(db, "multi_slot2", "k1a2p2ap3ps", "select abs(k1)+k2+1 as a3,sum(abs(k2+2)+k3+3) as a4 from multi_slot2 group by abs(k1)+k2+1;")

sleep(3000)
sql "insert into multi_slot2 select -4,-4,-4,'d';"
sql "SET experimental_enable_nereids_planner=true"
sql "SET enable_fallback_to_original_planner=false"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("multi_slot3") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS multi_slot3; """
Expand All @@ -38,9 +40,7 @@ suite ("multi_slot3") {
sql "insert into multi_slot3 select 2,2,2,'b';"
sql "insert into multi_slot3 select 3,-3,null,'c';"

createMV ("create materialized view k1p2ap3p as select k1+1,abs(k2+2)+k3+3 from multi_slot3;")

sleep(3000)
create_sync_mv(db, "multi_slot3", "k1p2ap3p", "select k1+1,abs(k2+2)+k3+3 from multi_slot3;")

sql "insert into multi_slot3 select -4,-4,-4,'d';"
sql "SET experimental_enable_nereids_planner=true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("multi_slot4") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS multi_slot4; """
Expand Down Expand Up @@ -45,9 +47,7 @@ suite ("multi_slot4") {
sql "insert into multi_slot4 select 3,-3,null,'c';"
sql "insert into multi_slot4 select 3,-3,null,'c';"

createMV ("create materialized view k1p2ap3ps as select k1+1,sum(abs(k2+2)+k3+3) from multi_slot4 group by k1+1;")

sleep(3000)
create_sync_mv(db, "multi_slot4", "k1p2ap3ps", "select k1+1,sum(abs(k2+2)+k3+3) from multi_slot4 group by k1+1;")

sql "insert into multi_slot4 select -4,-4,-4,'d';"
sql "insert into multi_slot4 select -4,-4,-4,'d';"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.codehaus.groovy.runtime.IOGroovyMethods

suite ("multi_slot5") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set NOT_IN_RBO explicitly
sql "set pre_materialized_view_rewrite_strategy = NOT_IN_RBO"
sql """ DROP TABLE IF EXISTS multi_slot5; """
Expand All @@ -38,9 +40,7 @@ suite ("multi_slot5") {
sql "insert into multi_slot5 select 2,2,2,'b';"
sql "insert into multi_slot5 select 3,-3,null,'c';"

createMV ("create materialized view k123p as select k1 as a1,k2+k3 from multi_slot5;")

sleep(3000)
create_sync_mv(db, "multi_slot5", "k123p", "select k1 as a1,k2+k3 from multi_slot5;")

sql "insert into multi_slot5 select -4,-4,-4,'d';"
sql "insert into multi_slot5 select 3,-3,null,'c';"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
// under the License.

suite ("multi_slot6") {
String db = context.config.getDbNameByFile(context.file)
sql "use ${db}"
// this mv rewrite would not be rewritten in RBO, so set TRY_IN_RBO explicitly to make case stable
sql "set pre_materialized_view_rewrite_strategy = TRY_IN_RBO"
sql """ DROP TABLE IF EXISTS multi_slot6; """
Expand All @@ -36,9 +38,9 @@ suite ("multi_slot6") {
sql "insert into multi_slot6 select 2,2,2,'b';"
sql "insert into multi_slot6 select 3,-3,null,'c';"

createMV ("create materialized view k1a2p2ap3p as select abs(k1)+k2+1,abs(k2+2)+k3+3 from multi_slot6;")
create_sync_mv(db, "multi_slot6", "k1a2p2ap3p", "select abs(k1)+k2+1,abs(k2+2)+k3+3 from multi_slot6;")

createMV("create materialized view k1a2p2ap3ps as select abs(k1)+k2+1 as a1,sum(abs(k2+2)+k3+3) as a2 from multi_slot6 group by abs(k1)+k2+1;")
create_sync_mv(db, "multi_slot6", "k1a2p2ap3ps", "select abs(k1)+k2+1 as a3,sum(abs(k2+2)+k3+3) as a4 from multi_slot6 group by abs(k1)+k2+1;")

sql "insert into multi_slot6 select -4,-4,-4,'d';"

Expand Down
Loading