| set hive.vectorized.execution.enabled=false; |
| set hive.support.concurrency=true; |
| set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; |
| set hive.strict.checks.cartesian.product=false; |
| set hive.materializedview.rewriting=true; |
| |
| create table cmv_basetable_n9 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true'); |
| |
| insert into cmv_basetable_n9 values |
| (1, 'alfred', 10.30, 2), |
| (2, 'bob', 3.14, 3), |
| (2, 'bonnie', 172342.2, 3), |
| (3, 'calvin', 978.76, 3), |
| (3, 'charlie', 9.8, 1); |
| |
| create materialized view cmv_mat_view_n9 |
| as select b from cmv_basetable_n9 where c > 10.0 group by a, b, c; |
| |
| -- CANNOT BE TRIGGERED |
| explain |
| select b from cmv_basetable_n9 where c > 20.0 group by a, b; |
| |
| select b from cmv_basetable_n9 where c > 20.0 group by a, b; |
| |
| create materialized view cmv_mat_view_2 |
| as select b, c from cmv_basetable_n9 where c > 10.0 group by a, b, c; |
| |
| -- CANNOT BE TRIGGERED |
| explain |
| select b from cmv_basetable_n9 where c > 20.0 group by a, b; |
| |
| select b from cmv_basetable_n9 where c > 20.0 group by a, b; |
| |
| create materialized view cmv_mat_view_3 |
| as select a, b, c from cmv_basetable_n9 where c > 10.0 group by a, b, c; |
| |
| -- CAN BE TRIGGERED |
| explain |
| select b from cmv_basetable_n9 where c > 20.0 group by a, b; |
| |
| select b from cmv_basetable_n9 where c > 20.0 group by a, b; |
| |
| create materialized view cmv_mat_view_4 |
| as select a, b from cmv_basetable_n9 group by a, b; |
| |
| -- CAN BE TRIGGERED |
| explain |
| select b from cmv_basetable_n9 group by b; |
| |
| select b from cmv_basetable_n9 group by b; |
| |
| create table cmv_basetable_2_n4 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true'); |
| |
| insert into cmv_basetable_2_n4 values |
| (1, 'alfred', 10.30, 2), |
| (3, 'calvin', 978.76, 3); |
| |
| create materialized view cmv_mat_view_5 |
| as select cmv_basetable_n9.a, cmv_basetable_2_n4.c |
| from cmv_basetable_n9 join cmv_basetable_2_n4 on (cmv_basetable_n9.a = cmv_basetable_2_n4.a) |
| where cmv_basetable_2_n4.c > 10.0 |
| group by cmv_basetable_n9.a, cmv_basetable_2_n4.c; |
| |
| explain |
| select cmv_basetable_n9.a |
| from cmv_basetable_n9 join cmv_basetable_2_n4 on (cmv_basetable_n9.a = cmv_basetable_2_n4.a) |
| where cmv_basetable_2_n4.c > 10.10 |
| group by cmv_basetable_n9.a, cmv_basetable_2_n4.c; |
| |
| select cmv_basetable_n9.a |
| from cmv_basetable_n9 join cmv_basetable_2_n4 on (cmv_basetable_n9.a = cmv_basetable_2_n4.a) |
| where cmv_basetable_2_n4.c > 10.10 |
| group by cmv_basetable_n9.a, cmv_basetable_2_n4.c; |
| |
| explain |
| select cmv_basetable_n9.a |
| from cmv_basetable_n9 join cmv_basetable_2_n4 on (cmv_basetable_n9.a = cmv_basetable_2_n4.a) |
| where cmv_basetable_2_n4.c > 10.10 |
| group by cmv_basetable_n9.a; |
| |
| select cmv_basetable_n9.a |
| from cmv_basetable_n9 join cmv_basetable_2_n4 on (cmv_basetable_n9.a = cmv_basetable_2_n4.a) |
| where cmv_basetable_2_n4.c > 10.10 |
| group by cmv_basetable_n9.a; |
| |
| drop materialized view cmv_mat_view_n9; |
| drop materialized view cmv_mat_view_2; |
| drop materialized view cmv_mat_view_3; |
| drop materialized view cmv_mat_view_4; |
| drop materialized view cmv_mat_view_5; |