diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/RelOptHiveTable.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/RelOptHiveTable.java index 37e6d4c850..42e60de6a8 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/RelOptHiveTable.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/RelOptHiveTable.java @@ -735,4 +735,8 @@ public int hashCode() { ? super.hashCode() : this.getHiveTableMD().hashCode(); } + public String getPartitionListKey() { + return partitionList != null ? partitionList.getKey() : null; + } + } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveTableScan.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveTableScan.java index 5fda6f928b..d64db03543 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveTableScan.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveTableScan.java @@ -126,6 +126,16 @@ public HiveTableScan copy(RelDataType newRowtype) { newRowtype, this.useQBIdInDigest, this.insideView); } + /** + * Copy TableScan operator with a new Row Schema. The new Row Schema can only + * be a subset of this TS schema. Copies underlying RelOptHiveTable object + * too. + */ + public HiveTableScan copyIncludingTable(RelDataType newRowtype) { + return new HiveTableScan(getCluster(), getTraitSet(), ((RelOptHiveTable) table).copy(newRowtype), this.tblAlias, this.concatQbIDAlias, + newRowtype, this.useQBIdInDigest, this.insideView); + } + @Override public RelWriter explainTerms(RelWriter pw) { if (this.useQBIdInDigest) { // TODO: Only the qualified name should be left here @@ -255,9 +265,15 @@ public boolean isInsideView() { // We need to include isInsideView inside digest to differentiate direct // tables and tables inside view. Otherwise, Calcite will treat them as the same. + // Also include partition list key to trigger cost evaluation even if an + // expression was already generated. public String computeDigest() { - String digest = super.computeDigest(); - return digest + "[" + this.isInsideView() + "]"; + String digest = super.computeDigest() + "[" + this.isInsideView() + "]"; + String partitionListKey = ((RelOptHiveTable) table).getPartitionListKey(); + if (partitionListKey != null) { + return digest + "[" + partitionListKey + "]"; + } + return digest; } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePartitionPruneRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePartitionPruneRule.java index 97802b8a23..b600e9e85f 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePartitionPruneRule.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HivePartitionPruneRule.java @@ -27,6 +27,8 @@ import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveFilter; import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveTableScan; +import java.util.Collections; + public class HivePartitionPruneRule extends RelOptRule { HiveConf conf; @@ -46,12 +48,19 @@ public void onMatch(RelOptRuleCall call) { protected void perform(RelOptRuleCall call, Filter filter, HiveTableScan tScan) { - RelOptHiveTable hiveTable = (RelOptHiveTable) tScan.getTable(); + HiveTableScan tScanCopy = tScan.copyIncludingTable(tScan.getRowType()); + + RelOptHiveTable hiveTable = (RelOptHiveTable) tScanCopy.getTable(); RexNode predicate = filter.getCondition(); Pair predicates = PartitionPrune .extractPartitionPredicates(filter.getCluster(), hiveTable, predicate); RexNode partColExpr = predicates.left; - hiveTable.computePartitionList(conf, partColExpr, tScan.getPartOrVirtualCols()); + hiveTable.computePartitionList(conf, partColExpr, tScanCopy.getPartOrVirtualCols()); + + HiveFilter newFilter = (HiveFilter) filter.copy( + filter.getTraitSet(), Collections.singletonList(tScanCopy)); + + call.transformTo(newFilter); } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java index e6e033066d..d2d5152eff 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java @@ -2232,6 +2232,10 @@ private RelNode copyNodeScan(RelNode scan) { planner.addRule(HiveMaterializedViewRule.INSTANCE_JOIN); planner.addRule(HiveMaterializedViewRule.INSTANCE_PROJECT_AGGREGATE); planner.addRule(HiveMaterializedViewRule.INSTANCE_AGGREGATE); + // Partition pruner rule + planner.addRule(HiveFilterProjectTSTransposeRule.INSTANCE); + planner.addRule(new HivePartitionPruneRule(conf)); + // Optimize plan planner.setRoot(basePlan); basePlan = planner.findBestExp(); diff --git a/ql/src/test/queries/clientpositive/materialized_view_partitioned_2.q b/ql/src/test/queries/clientpositive/materialized_view_partitioned_2.q new file mode 100644 index 0000000000..a3f437ed93 --- /dev/null +++ b/ql/src/test/queries/clientpositive/materialized_view_partitioned_2.q @@ -0,0 +1,46 @@ +--! qt:dataset:src + +set hive.support.concurrency=true; +set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; + +CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true') +AS SELECT * FROM src where key > 200 and key < 300; + +CREATE MATERIALIZED VIEW partition_mv_1 PARTITIONED ON (key) AS +SELECT value, key FROM src_txn_2; + +CREATE MATERIALIZED VIEW partition_mv_2 PARTITIONED ON (value) AS +SELECT key, value FROM src_txn_2; + +CREATE MATERIALIZED VIEW partition_mv_3 PARTITIONED ON (key) AS +SELECT value, key FROM src_txn_2 where key > 220 and key < 230; + +CREATE MATERIALIZED VIEW partition_mv_4 PARTITIONED ON (key) AS +SELECT value, key FROM src_txn_2 where key > 222 and key < 228; + +-- SHOULD CHOOSE partition_mv_1 SINCE ONLY partition_mv_1 AND +-- partition_mv_2 ARE VALID BUT PRUNING KICKS IN FOR THE FORMER +EXPLAIN +SELECT * FROM src_txn_2 where key > 210 and key < 230; + +SELECT * FROM src_txn_2 where key > 210 and key < 230; + +-- SHOULD CHOOSE partition_mv_2 SINCE ONLY partition_mv_2 AND +-- partition_mv_1 ARE VALID BUT PRUNING KICKS IN FOR THE FORMER +EXPLAIN +SELECT * FROM src_txn_2 where value > 'val_220' and value < 'val_230'; + +SELECT * FROM src_txn_2 where value > 'val_220' and value < 'val_230'; + +-- SHOULD CHOOSE partition_mv_4 SINCE IT IS THE MOST EFFICIENT +-- READING ONLY ONE PARTITION +EXPLAIN +SELECT * FROM src_txn_2 where key > 224 and key < 226; + +SELECT * FROM src_txn_2 where key > 223 and key < 225; + +DROP MATERIALIZED VIEW partition_mv_1; +DROP MATERIALIZED VIEW partition_mv_2; +DROP MATERIALIZED VIEW partition_mv_3; +DROP MATERIALIZED VIEW partition_mv_4; +DROP TABLE src_txn_2; diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_partitioned_2.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_partitioned_2.q.out new file mode 100644 index 0000000000..ab03522e10 --- /dev/null +++ b/ql/src/test/results/clientpositive/llap/materialized_view_partitioned_2.q.out @@ -0,0 +1,550 @@ +PREHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true') +AS SELECT * FROM src where key > 200 and key < 300 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@src +PREHOOK: Output: database:default +PREHOOK: Output: default@src_txn_2 +POSTHOOK: query: CREATE TABLE src_txn_2 stored as orc TBLPROPERTIES ('transactional' = 'true') +AS SELECT * FROM src where key > 200 and key < 300 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@src +POSTHOOK: Output: database:default +POSTHOOK: Output: default@src_txn_2 +POSTHOOK: Lineage: src_txn_2.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: src_txn_2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: CREATE MATERIALIZED VIEW partition_mv_1 PARTITIONED ON (key) AS +SELECT value, key FROM src_txn_2 +PREHOOK: type: CREATE_MATERIALIZED_VIEW +PREHOOK: Input: default@src_txn_2 +PREHOOK: Output: database:default +PREHOOK: Output: default@partition_mv_1 +PREHOOK: Output: default@partition_mv_1 +POSTHOOK: query: CREATE MATERIALIZED VIEW partition_mv_1 PARTITIONED ON (key) AS +SELECT value, key FROM src_txn_2 +POSTHOOK: type: CREATE_MATERIALIZED_VIEW +POSTHOOK: Input: default@src_txn_2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@partition_mv_1 +POSTHOOK: Output: default@partition_mv_1@key=201 +POSTHOOK: Output: default@partition_mv_1@key=202 +POSTHOOK: Output: default@partition_mv_1@key=203 +POSTHOOK: Output: default@partition_mv_1@key=205 +POSTHOOK: Output: default@partition_mv_1@key=207 +POSTHOOK: Output: default@partition_mv_1@key=208 +POSTHOOK: Output: default@partition_mv_1@key=209 +POSTHOOK: Output: default@partition_mv_1@key=213 +POSTHOOK: Output: default@partition_mv_1@key=214 +POSTHOOK: Output: default@partition_mv_1@key=216 +POSTHOOK: Output: default@partition_mv_1@key=217 +POSTHOOK: Output: default@partition_mv_1@key=218 +POSTHOOK: Output: default@partition_mv_1@key=219 +POSTHOOK: Output: default@partition_mv_1@key=221 +POSTHOOK: Output: default@partition_mv_1@key=222 +POSTHOOK: Output: default@partition_mv_1@key=223 +POSTHOOK: Output: default@partition_mv_1@key=224 +POSTHOOK: Output: default@partition_mv_1@key=226 +POSTHOOK: Output: default@partition_mv_1@key=228 +POSTHOOK: Output: default@partition_mv_1@key=229 +POSTHOOK: Output: default@partition_mv_1@key=230 +POSTHOOK: Output: default@partition_mv_1@key=233 +POSTHOOK: Output: default@partition_mv_1@key=235 +POSTHOOK: Output: default@partition_mv_1@key=237 +POSTHOOK: Output: default@partition_mv_1@key=238 +POSTHOOK: Output: default@partition_mv_1@key=239 +POSTHOOK: Output: default@partition_mv_1@key=241 +POSTHOOK: Output: default@partition_mv_1@key=242 +POSTHOOK: Output: default@partition_mv_1@key=244 +POSTHOOK: Output: default@partition_mv_1@key=247 +POSTHOOK: Output: default@partition_mv_1@key=248 +POSTHOOK: Output: default@partition_mv_1@key=249 +POSTHOOK: Output: default@partition_mv_1@key=252 +POSTHOOK: Output: default@partition_mv_1@key=255 +POSTHOOK: Output: default@partition_mv_1@key=256 +POSTHOOK: Output: default@partition_mv_1@key=257 +POSTHOOK: Output: default@partition_mv_1@key=258 +POSTHOOK: Output: default@partition_mv_1@key=260 +POSTHOOK: Output: default@partition_mv_1@key=262 +POSTHOOK: Output: default@partition_mv_1@key=263 +POSTHOOK: Output: default@partition_mv_1@key=265 +POSTHOOK: Output: default@partition_mv_1@key=266 +POSTHOOK: Output: default@partition_mv_1@key=272 +POSTHOOK: Output: default@partition_mv_1@key=273 +POSTHOOK: Output: default@partition_mv_1@key=274 +POSTHOOK: Output: default@partition_mv_1@key=275 +POSTHOOK: Output: default@partition_mv_1@key=277 +POSTHOOK: Output: default@partition_mv_1@key=278 +POSTHOOK: Output: default@partition_mv_1@key=280 +POSTHOOK: Output: default@partition_mv_1@key=281 +POSTHOOK: Output: default@partition_mv_1@key=282 +POSTHOOK: Output: default@partition_mv_1@key=283 +POSTHOOK: Output: default@partition_mv_1@key=284 +POSTHOOK: Output: default@partition_mv_1@key=285 +POSTHOOK: Output: default@partition_mv_1@key=286 +POSTHOOK: Output: default@partition_mv_1@key=287 +POSTHOOK: Output: default@partition_mv_1@key=288 +POSTHOOK: Output: default@partition_mv_1@key=289 +POSTHOOK: Output: default@partition_mv_1@key=291 +POSTHOOK: Output: default@partition_mv_1@key=292 +POSTHOOK: Output: default@partition_mv_1@key=296 +POSTHOOK: Output: default@partition_mv_1@key=298 +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=201).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=202).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=203).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=205).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=207).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=208).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=209).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=213).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=214).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=216).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=217).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=218).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=219).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=221).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=222).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=223).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=224).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=226).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=228).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=229).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=230).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=233).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=235).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=237).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=238).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=239).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=241).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=242).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=244).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=247).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=248).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=249).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=252).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=255).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=256).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=257).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=258).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=260).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=262).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=263).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=265).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=266).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=272).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=273).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=274).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=275).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=277).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=278).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=280).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=281).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=282).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=283).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=284).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=285).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=286).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=287).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=288).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=289).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=291).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=292).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=296).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_1 PARTITION(key=298).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +PREHOOK: query: CREATE MATERIALIZED VIEW partition_mv_2 PARTITIONED ON (value) AS +SELECT key, value FROM src_txn_2 +PREHOOK: type: CREATE_MATERIALIZED_VIEW +PREHOOK: Input: default@src_txn_2 +PREHOOK: Output: database:default +PREHOOK: Output: default@partition_mv_2 +PREHOOK: Output: default@partition_mv_2 +POSTHOOK: query: CREATE MATERIALIZED VIEW partition_mv_2 PARTITIONED ON (value) AS +SELECT key, value FROM src_txn_2 +POSTHOOK: type: CREATE_MATERIALIZED_VIEW +POSTHOOK: Input: default@src_txn_2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@partition_mv_2 +POSTHOOK: Output: default@partition_mv_2@value=val_201 +POSTHOOK: Output: default@partition_mv_2@value=val_202 +POSTHOOK: Output: default@partition_mv_2@value=val_203 +POSTHOOK: Output: default@partition_mv_2@value=val_205 +POSTHOOK: Output: default@partition_mv_2@value=val_207 +POSTHOOK: Output: default@partition_mv_2@value=val_208 +POSTHOOK: Output: default@partition_mv_2@value=val_209 +POSTHOOK: Output: default@partition_mv_2@value=val_213 +POSTHOOK: Output: default@partition_mv_2@value=val_214 +POSTHOOK: Output: default@partition_mv_2@value=val_216 +POSTHOOK: Output: default@partition_mv_2@value=val_217 +POSTHOOK: Output: default@partition_mv_2@value=val_218 +POSTHOOK: Output: default@partition_mv_2@value=val_219 +POSTHOOK: Output: default@partition_mv_2@value=val_221 +POSTHOOK: Output: default@partition_mv_2@value=val_222 +POSTHOOK: Output: default@partition_mv_2@value=val_223 +POSTHOOK: Output: default@partition_mv_2@value=val_224 +POSTHOOK: Output: default@partition_mv_2@value=val_226 +POSTHOOK: Output: default@partition_mv_2@value=val_228 +POSTHOOK: Output: default@partition_mv_2@value=val_229 +POSTHOOK: Output: default@partition_mv_2@value=val_230 +POSTHOOK: Output: default@partition_mv_2@value=val_233 +POSTHOOK: Output: default@partition_mv_2@value=val_235 +POSTHOOK: Output: default@partition_mv_2@value=val_237 +POSTHOOK: Output: default@partition_mv_2@value=val_238 +POSTHOOK: Output: default@partition_mv_2@value=val_239 +POSTHOOK: Output: default@partition_mv_2@value=val_241 +POSTHOOK: Output: default@partition_mv_2@value=val_242 +POSTHOOK: Output: default@partition_mv_2@value=val_244 +POSTHOOK: Output: default@partition_mv_2@value=val_247 +POSTHOOK: Output: default@partition_mv_2@value=val_248 +POSTHOOK: Output: default@partition_mv_2@value=val_249 +POSTHOOK: Output: default@partition_mv_2@value=val_252 +POSTHOOK: Output: default@partition_mv_2@value=val_255 +POSTHOOK: Output: default@partition_mv_2@value=val_256 +POSTHOOK: Output: default@partition_mv_2@value=val_257 +POSTHOOK: Output: default@partition_mv_2@value=val_258 +POSTHOOK: Output: default@partition_mv_2@value=val_260 +POSTHOOK: Output: default@partition_mv_2@value=val_262 +POSTHOOK: Output: default@partition_mv_2@value=val_263 +POSTHOOK: Output: default@partition_mv_2@value=val_265 +POSTHOOK: Output: default@partition_mv_2@value=val_266 +POSTHOOK: Output: default@partition_mv_2@value=val_272 +POSTHOOK: Output: default@partition_mv_2@value=val_273 +POSTHOOK: Output: default@partition_mv_2@value=val_274 +POSTHOOK: Output: default@partition_mv_2@value=val_275 +POSTHOOK: Output: default@partition_mv_2@value=val_277 +POSTHOOK: Output: default@partition_mv_2@value=val_278 +POSTHOOK: Output: default@partition_mv_2@value=val_280 +POSTHOOK: Output: default@partition_mv_2@value=val_281 +POSTHOOK: Output: default@partition_mv_2@value=val_282 +POSTHOOK: Output: default@partition_mv_2@value=val_283 +POSTHOOK: Output: default@partition_mv_2@value=val_284 +POSTHOOK: Output: default@partition_mv_2@value=val_285 +POSTHOOK: Output: default@partition_mv_2@value=val_286 +POSTHOOK: Output: default@partition_mv_2@value=val_287 +POSTHOOK: Output: default@partition_mv_2@value=val_288 +POSTHOOK: Output: default@partition_mv_2@value=val_289 +POSTHOOK: Output: default@partition_mv_2@value=val_291 +POSTHOOK: Output: default@partition_mv_2@value=val_292 +POSTHOOK: Output: default@partition_mv_2@value=val_296 +POSTHOOK: Output: default@partition_mv_2@value=val_298 +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_201).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_202).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_203).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_205).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_207).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_208).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_209).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_213).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_214).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_216).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_217).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_218).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_219).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_221).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_222).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_223).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_224).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_226).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_228).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_229).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_230).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_233).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_235).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_237).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_238).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_239).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_241).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_242).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_244).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_247).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_248).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_249).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_252).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_255).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_256).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_257).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_258).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_260).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_262).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_263).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_265).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_266).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_272).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_273).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_274).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_275).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_277).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_278).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_280).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_281).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_282).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_283).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_284).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_285).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_286).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_287).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_288).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_289).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_291).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_292).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_296).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_2 PARTITION(value=val_298).key SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:key, type:string, comment:null), ] +PREHOOK: query: CREATE MATERIALIZED VIEW partition_mv_3 PARTITIONED ON (key) AS +SELECT value, key FROM src_txn_2 where key > 220 and key < 230 +PREHOOK: type: CREATE_MATERIALIZED_VIEW +PREHOOK: Input: default@src_txn_2 +PREHOOK: Output: database:default +PREHOOK: Output: default@partition_mv_3 +PREHOOK: Output: default@partition_mv_3 +POSTHOOK: query: CREATE MATERIALIZED VIEW partition_mv_3 PARTITIONED ON (key) AS +SELECT value, key FROM src_txn_2 where key > 220 and key < 230 +POSTHOOK: type: CREATE_MATERIALIZED_VIEW +POSTHOOK: Input: default@src_txn_2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@partition_mv_3 +POSTHOOK: Output: default@partition_mv_3@key=221 +POSTHOOK: Output: default@partition_mv_3@key=222 +POSTHOOK: Output: default@partition_mv_3@key=223 +POSTHOOK: Output: default@partition_mv_3@key=224 +POSTHOOK: Output: default@partition_mv_3@key=226 +POSTHOOK: Output: default@partition_mv_3@key=228 +POSTHOOK: Output: default@partition_mv_3@key=229 +POSTHOOK: Lineage: partition_mv_3 PARTITION(key=221).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_3 PARTITION(key=222).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_3 PARTITION(key=223).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_3 PARTITION(key=224).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_3 PARTITION(key=226).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_3 PARTITION(key=228).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_3 PARTITION(key=229).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +PREHOOK: query: CREATE MATERIALIZED VIEW partition_mv_4 PARTITIONED ON (key) AS +SELECT value, key FROM src_txn_2 where key > 222 and key < 228 +PREHOOK: type: CREATE_MATERIALIZED_VIEW +PREHOOK: Input: default@src_txn_2 +PREHOOK: Output: database:default +PREHOOK: Output: default@partition_mv_4 +PREHOOK: Output: default@partition_mv_4 +POSTHOOK: query: CREATE MATERIALIZED VIEW partition_mv_4 PARTITIONED ON (key) AS +SELECT value, key FROM src_txn_2 where key > 222 and key < 228 +POSTHOOK: type: CREATE_MATERIALIZED_VIEW +POSTHOOK: Input: default@src_txn_2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@partition_mv_4 +POSTHOOK: Output: default@partition_mv_4@key=223 +POSTHOOK: Output: default@partition_mv_4@key=224 +POSTHOOK: Output: default@partition_mv_4@key=226 +POSTHOOK: Lineage: partition_mv_4 PARTITION(key=223).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_4 PARTITION(key=224).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: partition_mv_4 PARTITION(key=226).value SIMPLE [(src_txn_2)src_txn_2.FieldSchema(name:value, type:string, comment:null), ] +PREHOOK: query: EXPLAIN +SELECT * FROM src_txn_2 where key > 210 and key < 230 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT * FROM src_txn_2 where key > 210 and key < 230 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + TableScan + alias: default.partition_mv_1 + filterExpr: ((UDFToDouble(key) > 210.0D) and (UDFToDouble(key) < 230.0D)) (type: boolean) + Filter Operator + predicate: ((UDFToDouble(key) < 230.0D) and (UDFToDouble(key) > 210.0D)) (type: boolean) + Select Operator + expressions: key (type: string), value (type: string) + outputColumnNames: _col0, _col1 + ListSink + +PREHOOK: query: SELECT * FROM src_txn_2 where key > 210 and key < 230 +PREHOOK: type: QUERY +PREHOOK: Input: default@partition_mv_1 +PREHOOK: Input: default@partition_mv_1@key=213 +PREHOOK: Input: default@partition_mv_1@key=214 +PREHOOK: Input: default@partition_mv_1@key=216 +PREHOOK: Input: default@partition_mv_1@key=217 +PREHOOK: Input: default@partition_mv_1@key=218 +PREHOOK: Input: default@partition_mv_1@key=219 +PREHOOK: Input: default@partition_mv_1@key=221 +PREHOOK: Input: default@partition_mv_1@key=222 +PREHOOK: Input: default@partition_mv_1@key=223 +PREHOOK: Input: default@partition_mv_1@key=224 +PREHOOK: Input: default@partition_mv_1@key=226 +PREHOOK: Input: default@partition_mv_1@key=228 +PREHOOK: Input: default@partition_mv_1@key=229 +PREHOOK: Input: default@src_txn_2 +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM src_txn_2 where key > 210 and key < 230 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@partition_mv_1 +POSTHOOK: Input: default@partition_mv_1@key=213 +POSTHOOK: Input: default@partition_mv_1@key=214 +POSTHOOK: Input: default@partition_mv_1@key=216 +POSTHOOK: Input: default@partition_mv_1@key=217 +POSTHOOK: Input: default@partition_mv_1@key=218 +POSTHOOK: Input: default@partition_mv_1@key=219 +POSTHOOK: Input: default@partition_mv_1@key=221 +POSTHOOK: Input: default@partition_mv_1@key=222 +POSTHOOK: Input: default@partition_mv_1@key=223 +POSTHOOK: Input: default@partition_mv_1@key=224 +POSTHOOK: Input: default@partition_mv_1@key=226 +POSTHOOK: Input: default@partition_mv_1@key=228 +POSTHOOK: Input: default@partition_mv_1@key=229 +POSTHOOK: Input: default@src_txn_2 +#### A masked pattern was here #### +213 val_213 +213 val_213 +214 val_214 +216 val_216 +216 val_216 +217 val_217 +217 val_217 +218 val_218 +219 val_219 +219 val_219 +221 val_221 +221 val_221 +222 val_222 +223 val_223 +223 val_223 +224 val_224 +224 val_224 +226 val_226 +228 val_228 +229 val_229 +229 val_229 +PREHOOK: query: EXPLAIN +SELECT * FROM src_txn_2 where value > 'val_220' and value < 'val_230' +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT * FROM src_txn_2 where value > 'val_220' and value < 'val_230' +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + TableScan + alias: default.partition_mv_2 + filterExpr: ((value < 'val_230') and (value > 'val_220')) (type: boolean) + Select Operator + expressions: key (type: string), value (type: string) + outputColumnNames: _col0, _col1 + ListSink + +PREHOOK: query: SELECT * FROM src_txn_2 where value > 'val_220' and value < 'val_230' +PREHOOK: type: QUERY +PREHOOK: Input: default@partition_mv_2 +PREHOOK: Input: default@partition_mv_2@value=val_221 +PREHOOK: Input: default@partition_mv_2@value=val_222 +PREHOOK: Input: default@partition_mv_2@value=val_223 +PREHOOK: Input: default@partition_mv_2@value=val_224 +PREHOOK: Input: default@partition_mv_2@value=val_226 +PREHOOK: Input: default@partition_mv_2@value=val_228 +PREHOOK: Input: default@partition_mv_2@value=val_229 +PREHOOK: Input: default@src_txn_2 +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM src_txn_2 where value > 'val_220' and value < 'val_230' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@partition_mv_2 +POSTHOOK: Input: default@partition_mv_2@value=val_221 +POSTHOOK: Input: default@partition_mv_2@value=val_222 +POSTHOOK: Input: default@partition_mv_2@value=val_223 +POSTHOOK: Input: default@partition_mv_2@value=val_224 +POSTHOOK: Input: default@partition_mv_2@value=val_226 +POSTHOOK: Input: default@partition_mv_2@value=val_228 +POSTHOOK: Input: default@partition_mv_2@value=val_229 +POSTHOOK: Input: default@src_txn_2 +#### A masked pattern was here #### +221 val_221 +221 val_221 +222 val_222 +223 val_223 +223 val_223 +224 val_224 +224 val_224 +226 val_226 +228 val_228 +229 val_229 +229 val_229 +PREHOOK: query: EXPLAIN +SELECT * FROM src_txn_2 where key > 224 and key < 226 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT * FROM src_txn_2 where key > 224 and key < 226 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + TableScan + alias: default.partition_mv_4 + filterExpr: ((UDFToDouble(key) > 224.0D) and (UDFToDouble(key) < 226.0D)) (type: boolean) + Filter Operator + predicate: ((UDFToDouble(key) < 226.0D) and (UDFToDouble(key) > 224.0D)) (type: boolean) + Select Operator + expressions: key (type: string), value (type: string) + outputColumnNames: _col0, _col1 + ListSink + +PREHOOK: query: SELECT * FROM src_txn_2 where key > 223 and key < 225 +PREHOOK: type: QUERY +PREHOOK: Input: default@partition_mv_4 +PREHOOK: Input: default@partition_mv_4@key=224 +PREHOOK: Input: default@src_txn_2 +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM src_txn_2 where key > 223 and key < 225 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@partition_mv_4 +POSTHOOK: Input: default@partition_mv_4@key=224 +POSTHOOK: Input: default@src_txn_2 +#### A masked pattern was here #### +224 val_224 +224 val_224 +PREHOOK: query: DROP MATERIALIZED VIEW partition_mv_1 +PREHOOK: type: DROP_MATERIALIZED_VIEW +PREHOOK: Input: default@partition_mv_1 +PREHOOK: Output: default@partition_mv_1 +POSTHOOK: query: DROP MATERIALIZED VIEW partition_mv_1 +POSTHOOK: type: DROP_MATERIALIZED_VIEW +POSTHOOK: Input: default@partition_mv_1 +POSTHOOK: Output: default@partition_mv_1 +PREHOOK: query: DROP MATERIALIZED VIEW partition_mv_2 +PREHOOK: type: DROP_MATERIALIZED_VIEW +PREHOOK: Input: default@partition_mv_2 +PREHOOK: Output: default@partition_mv_2 +POSTHOOK: query: DROP MATERIALIZED VIEW partition_mv_2 +POSTHOOK: type: DROP_MATERIALIZED_VIEW +POSTHOOK: Input: default@partition_mv_2 +POSTHOOK: Output: default@partition_mv_2 +PREHOOK: query: DROP MATERIALIZED VIEW partition_mv_3 +PREHOOK: type: DROP_MATERIALIZED_VIEW +PREHOOK: Input: default@partition_mv_3 +PREHOOK: Output: default@partition_mv_3 +POSTHOOK: query: DROP MATERIALIZED VIEW partition_mv_3 +POSTHOOK: type: DROP_MATERIALIZED_VIEW +POSTHOOK: Input: default@partition_mv_3 +POSTHOOK: Output: default@partition_mv_3 +PREHOOK: query: DROP MATERIALIZED VIEW partition_mv_4 +PREHOOK: type: DROP_MATERIALIZED_VIEW +PREHOOK: Input: default@partition_mv_4 +PREHOOK: Output: default@partition_mv_4 +POSTHOOK: query: DROP MATERIALIZED VIEW partition_mv_4 +POSTHOOK: type: DROP_MATERIALIZED_VIEW +POSTHOOK: Input: default@partition_mv_4 +POSTHOOK: Output: default@partition_mv_4 +PREHOOK: query: DROP TABLE src_txn_2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@src_txn_2 +PREHOOK: Output: default@src_txn_2 +POSTHOOK: query: DROP TABLE src_txn_2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@src_txn_2 +POSTHOOK: Output: default@src_txn_2