This is an automated email from the ASF dual-hosted git repository. kgyrtkirk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push: new 67bb821 HIVE-24365: SWO should not create complex and redundant filter expressions (#1661) (Zoltan Haindrich reviewed by Jesus Camacho Rodriguez) 67bb821 is described below commit 67bb821d02273f8c9f8f45340c9445b5508dc731 Author: Zoltan Haindrich <k...@rxd.hu> AuthorDate: Fri Nov 13 08:56:57 2020 +0100 HIVE-24365: SWO should not create complex and redundant filter expressions (#1661) (Zoltan Haindrich reviewed by Jesus Camacho Rodriguez) --- .../apache/hadoop/hive/ql/exec/FilterOperator.java | 7 ++++ .../hadoop/hive/ql/exec/GroupByOperator.java | 7 ++++ .../org/apache/hadoop/hive/ql/exec/Operator.java | 8 +++++ .../hadoop/hive/ql/exec/ReduceSinkOperator.java | 8 +++++ .../apache/hadoop/hive/ql/exec/SelectOperator.java | 8 +++++ .../hive/ql/optimizer/SharedWorkOptimizer.java | 31 +++++++++++++--- .../hive/ql/optimizer/graph/DotExporter.java | 8 +++++ .../hadoop/hive/ql/plan/ExprNodeDescUtils.java | 41 ++++++++++++++++++++++ .../perf/tez/constraints/query23.q.out | 6 ++-- .../perf/tez/constraints/query31.q.out | 8 ++--- .../perf/tez/constraints/query88.q.out | 14 ++++---- .../results/clientpositive/perf/tez/query31.q.out | 8 ++--- .../results/clientpositive/perf/tez/query88.q.out | 14 ++++---- 13 files changed, 138 insertions(+), 30 deletions(-) diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/FilterOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/FilterOperator.java index bb08f24..a3af21a 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/FilterOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/FilterOperator.java @@ -26,6 +26,7 @@ import org.apache.hadoop.hive.ql.CompilationOpContext; import org.apache.hadoop.hive.ql.io.IOContext; import org.apache.hadoop.hive.ql.io.IOContextMap; import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.ql.plan.ExprNodeDescUtils; import org.apache.hadoop.hive.ql.plan.FilterDesc; import org.apache.hadoop.hive.ql.plan.api.OperatorType; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; @@ -163,4 +164,10 @@ public class FilterOperator extends Operator<FilterDesc> implements public boolean supportUnionRemoveOptimization() { return true; } + + @Override + public void replaceTabAlias(String oldAlias, String newAlias) { + super.replaceTabAlias(oldAlias, newAlias); + ExprNodeDescUtils.replaceTabAlias(getConf().getPredicate(), oldAlias, newAlias); + } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java index 01de9df..f118aa1 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java @@ -41,6 +41,7 @@ import org.apache.hadoop.hive.ql.parse.OpParseContext; import org.apache.hadoop.hive.ql.plan.AggregationDesc; import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc; import org.apache.hadoop.hive.ql.plan.ExprNodeDesc; +import org.apache.hadoop.hive.ql.plan.ExprNodeDescUtils; import org.apache.hadoop.hive.ql.plan.GroupByDesc; import org.apache.hadoop.hive.ql.plan.GroupByDesc.Mode; import org.apache.hadoop.hive.ql.plan.OperatorDesc; @@ -1146,4 +1147,10 @@ public class GroupByOperator extends Operator<GroupByDesc> implements IConfigure } } + @Override + public void replaceTabAlias(String oldAlias, String newAlias) { + super.replaceTabAlias(oldAlias, newAlias); + ExprNodeDescUtils.replaceTabAlias(getConf().getKeys(), oldAlias, newAlias); + } + } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java index 0c32d6d..173f903 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java @@ -47,6 +47,7 @@ import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.parse.SemanticException; import org.apache.hadoop.hive.ql.plan.Explain; import org.apache.hadoop.hive.ql.plan.ExprNodeDesc; +import org.apache.hadoop.hive.ql.plan.ExprNodeDescUtils; import org.apache.hadoop.hive.ql.plan.OpTraits; import org.apache.hadoop.hive.ql.plan.OperatorDesc; import org.apache.hadoop.hive.ql.plan.Statistics; @@ -1543,4 +1544,11 @@ public abstract class Operator<T extends OperatorDesc> implements Serializable,C } return true; } + + public void replaceTabAlias(String oldAlias, String newAlias) { + ExprNodeDescUtils.replaceTabAlias(getConf().getColumnExprMap(), oldAlias, newAlias); + for (Operator<? extends OperatorDesc> c : getChildOperators()) { + c.replaceTabAlias(oldAlias, newAlias); + } + } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java index efc129f..071c372 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java @@ -605,4 +605,12 @@ public class ReduceSinkOperator extends TerminalOperator<ReduceSinkDesc> this.out = _out; } + @Override + public void replaceTabAlias(String oldAlias, String newAlias) { + super.replaceTabAlias(oldAlias, newAlias); + ExprNodeDescUtils.replaceTabAlias(getConf().getColumnExprMap(), oldAlias, newAlias); + ExprNodeDescUtils.replaceTabAlias(getConf().getBucketCols(), oldAlias, newAlias); + ExprNodeDescUtils.replaceTabAlias(getConf().getPartitionCols(), oldAlias, newAlias); + ExprNodeDescUtils.replaceTabAlias(getConf().getKeyCols(), oldAlias, newAlias); + } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java index 7a9ddaf..1b3293e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java @@ -27,6 +27,7 @@ import org.apache.hadoop.hive.ql.CompilationOpContext; import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc; import org.apache.hadoop.hive.ql.plan.ExprNodeDesc; +import org.apache.hadoop.hive.ql.plan.ExprNodeDescUtils; import org.apache.hadoop.hive.ql.plan.SelectDesc; import org.apache.hadoop.hive.ql.plan.api.OperatorType; @@ -201,4 +202,11 @@ public class SelectOperator extends Operator<SelectDesc> implements Serializable return true; } + + @Override + public void replaceTabAlias(String oldAlias, String newAlias) { + super.replaceTabAlias(oldAlias, newAlias); + ExprNodeDescUtils.replaceTabAlias(getConf().getColumnExprMap(), oldAlias, newAlias); + } + } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java index 30171d9..09cd99c 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java @@ -18,7 +18,6 @@ package org.apache.hadoop.hive.ql.optimizer; import java.util.ArrayList; -import java.util.Arrays; import java.util.BitSet; import java.util.Collection; import java.util.Collections; @@ -34,7 +33,6 @@ import java.util.Map.Entry; import java.util.Objects; import java.util.Set; import java.util.TreeMap; -import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.hive.common.TableName; import org.apache.hadoop.hive.conf.HiveConf.ConfVars; @@ -73,7 +71,6 @@ import org.apache.hadoop.hive.ql.plan.TableScanDesc; import org.apache.hadoop.hive.ql.stats.StatsUtils; import org.apache.hadoop.hive.ql.udf.generic.GenericUDFBetween; import org.apache.hadoop.hive.ql.udf.generic.GenericUDFInBloomFilter; -import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPAnd; import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPOr; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory; import org.slf4j.Logger; @@ -356,6 +353,10 @@ public class SharedWorkOptimizer extends Transform { for (ExprNodeDesc expr : semijoinExprNodes) { ExprNodeDescUtils.replaceTabAlias(expr, oldAlias, newAlias); } + List<Operator<? extends OperatorDesc>> children = ts.getChildOperators(); + for (Operator<? extends OperatorDesc> c : children) { + c.replaceTabAlias(oldAlias, newAlias); + } } public ExprNodeDesc getFullFilterExpr() throws UDFArgumentException { @@ -498,11 +499,13 @@ public class SharedWorkOptimizer extends Transform { // For RemoveSemiJoin; this will clear the discardable's semijoin filters replaceSemijoinExpressions(discardableTsOp, modelR.getSemiJoinFilter()); } + modelD.replaceTabAlias(discardableTsOp.getConf().getAlias(), retainableTsOp.getConf().getAlias()); // Push filter on top of children for discardable pushFilterToTopOfTableScan(optimizerCache, modelD); + // Obtain filter for shared TS operator ExprNodeDesc exprNode = null; if (modelR.normalFilterExpr != null && modelD.normalFilterExpr != null) { @@ -1942,20 +1945,26 @@ public class SharedWorkOptimizer extends Transform { } List<Operator<? extends OperatorDesc>> allChildren = Lists.newArrayList(tsOp.getChildOperators()); + childOperators: for (Operator<? extends OperatorDesc> op : allChildren) { + if (optimizerCache.isKnownFilteringOperator(op)) { + continue; + } if (op instanceof FilterOperator) { FilterOperator filterOp = (FilterOperator) op; ExprNodeDesc filterExprNode = filterOp.getConf().getPredicate(); if (tableScanExprNode.isSame(filterExprNode)) { // We do not need to do anything - return; + optimizerCache.setKnownFilteringOperator(filterOp); + continue; } if (tableScanExprNode.getGenericUDF() instanceof GenericUDFOPOr) { for (ExprNodeDesc childExprNode : tableScanExprNode.getChildren()) { if (childExprNode.isSame(filterExprNode)) { // We do not need to do anything, it is in the OR expression // so probably we pushed previously - return; + optimizerCache.setKnownFilteringOperator(filterOp); + continue childOperators; } } } @@ -1963,6 +1972,7 @@ public class SharedWorkOptimizer extends Transform { if (!isSame(filterOp.getConf().getPredicate(), newFilterExpr)) { filterOp.getConf().setPredicate(newFilterExpr); } + optimizerCache.setKnownFilteringOperator(filterOp); } else { Operator<FilterDesc> newOp = OperatorFactory.get(tsOp.getCompilationOpContext(), new FilterDesc(tableScanExprNode.clone(), false), @@ -1973,8 +1983,10 @@ public class SharedWorkOptimizer extends Transform { newOp.getChildOperators().add(op); // Add to cache (same group as tsOp) optimizerCache.putIfWorkExists(newOp, tsOp); + optimizerCache.setKnownFilteringOperator(newOp); } } + } static boolean canDeduplicateReduceTraits(ReduceSinkDesc retainable, ReduceSinkDesc discardable) { @@ -2115,6 +2127,7 @@ public class SharedWorkOptimizer extends Transform { // Table scan operators to DPP sources final Multimap<TableScanOperator, Operator<?>> tableScanToDPPSource = HashMultimap.<TableScanOperator, Operator<?>>create(); + private Set<Operator<?>> knownFilterOperators = new HashSet<>(); // Add new operator to cache work group of existing operator (if group exists) void putIfWorkExists(Operator<?> opToAdd, Operator<?> existingOp) { @@ -2128,6 +2141,14 @@ public class SharedWorkOptimizer extends Transform { } } + public boolean isKnownFilteringOperator(Operator<? extends OperatorDesc> op) { + return knownFilterOperators.contains(op); + } + + public void setKnownFilteringOperator(Operator<?> filterOp) { + knownFilterOperators.add(filterOp); + } + // Remove operator void removeOp(Operator<?> opToRemove) { Set<Operator<?>> s = operatorToWorkOperators.get(opToRemove); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/graph/DotExporter.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/graph/DotExporter.java index f52e4d8..8f0a6eb 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/graph/DotExporter.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/graph/DotExporter.java @@ -27,10 +27,13 @@ import java.util.Map; import java.util.Set; import com.google.common.base.Joiner; + +import org.apache.hadoop.hive.ql.exec.FilterOperator; import org.apache.hadoop.hive.ql.exec.Operator; import org.apache.hadoop.hive.ql.exec.TableScanOperator; import org.apache.hadoop.hive.ql.optimizer.graph.OperatorGraph.Cluster; import org.apache.hadoop.hive.ql.optimizer.graph.OperatorGraph.OpEdge; +import org.apache.hadoop.hive.ql.plan.FilterDesc; import org.apache.hadoop.hive.ql.plan.JoinDesc; import org.apache.hadoop.hive.ql.plan.OperatorDesc; import org.apache.hadoop.hive.ql.plan.TableScanDesc; @@ -94,6 +97,11 @@ public class DotExporter { TableScanDesc conf = ts.getConf(); rows.add(vBox(conf.getTableName(), conf.getAlias())); } + if ((n instanceof FilterOperator)) { + FilterOperator fil = (FilterOperator) n; + FilterDesc conf = fil.getConf(); + rows.add(vBox("filter:", conf.getPredicateString())); + } return vBox(rows); } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java index f1a8368..232e248 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java @@ -1067,6 +1067,15 @@ public class ExprNodeDescUtils { for (ExprNodeDesc e : inputExpr) { conjunctiveDecomposition(e, operands); } + for (int i = 0; i < operands.size(); i++) { + ExprNodeDesc curr = operands.get(i); + if (isOr(curr)) { + if (deterministicIntersection(curr.getChildren(), operands)) { + operands.remove(i); + i--; + } + } + } if (operands.isEmpty()) { return null; @@ -1078,6 +1087,23 @@ public class ExprNodeDescUtils { } } + /** + * Checks wether the two expression sets have a common deterministic intersection. + */ + private static boolean deterministicIntersection(List<ExprNodeDesc> li1, List<ExprNodeDesc> li2) { + for (ExprNodeDesc e1 : li1) { + if (!isDeterministic(e1)) { + continue; + } + for (ExprNodeDesc e2 : li2) { + if (e1.isSame(e2)) { + return true; + } + } + } + return false; + } + private static void conjunctiveDecomposition(ExprNodeDesc expr, List<ExprNodeDesc> operands) { if (isAnd(expr)) { for (ExprNodeDesc c : expr.getChildren()) { @@ -1200,4 +1226,19 @@ public class ExprNodeDescUtils { return expr; } + public static void replaceTabAlias(Map<String, ExprNodeDesc> exprMap, String oldAlias, String newAlias) { + if (exprMap != null) { + ExprNodeDescUtils.replaceTabAlias(exprMap.values(), oldAlias, newAlias); + } + } + + public static void replaceTabAlias(Collection<ExprNodeDesc> exprs, String oldAlias, String newAlias) { + if (exprs != null) { + for (ExprNodeDesc expr : exprs) { + replaceTabAlias(expr, oldAlias, newAlias); + } + } + + } + } diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query23.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query23.q.out index fa5a1f0..090ec2f 100644 --- a/ql/src/test/results/clientpositive/perf/tez/constraints/query23.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query23.q.out @@ -255,7 +255,7 @@ Stage-0 Select Operator [SEL_421] (rows=525327388 width=119) Output:["_col0","_col1","_col2"] Filter Operator [FIL_417] (rows=525327388 width=118) - predicate:(ss_sold_date_sk is not null and ss_customer_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_26_date_dim_d_date_sk_min) AND DynamicValue(RS_26_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_26_date_dim_d_date_sk_bloom_filter)) and (ss_customer_sk is not null or (ss_sold_date_sk is not null and ss_customer_sk is not null)) and ((ss_customer_sk BETWEEN DynamicValue(RS_47_catal [...] + predicate:(ss_sold_date_sk is not null and ss_customer_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_26_date_dim_d_date_sk_min) AND DynamicValue(RS_26_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_26_date_dim_d_date_sk_bloom_filter))) TableScan [TS_10] (rows=575995635 width=114) default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_customer_sk","ss_quantity","ss_sales_price","ss_sold_date_sk","ss_item_sk"] <-Reducer 13 [BROADCAST_EDGE] vectorized @@ -393,7 +393,7 @@ Stage-0 Select Operator [SEL_422] (rows=550076554 width=7) Output:["_col0","_col1"] Filter Operator [FIL_418] (rows=550076554 width=7) - predicate:(ss_sold_date_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_58_date_dim_d_date_sk_min) AND DynamicValue(RS_58_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_58_date_dim_d_date_sk_bloom_filter)) and (((ss_customer_sk is not null or (ss_sold_date_sk is not null and ss_customer_sk is not null)) and ((ss_customer_sk BETWEEN DynamicValue(RS_47_catalog_sales_cs_bill_customer_sk_min) AND Dynam [...] + predicate:(ss_sold_date_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_58_date_dim_d_date_sk_min) AND DynamicValue(RS_58_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_58_date_dim_d_date_sk_bloom_filter))) Please refer to the previous TableScan [TS_10] <-Reducer 4 [CONTAINS] Reduce Output Operator [RS_370] @@ -463,6 +463,6 @@ Stage-0 Select Operator [SEL_420] (rows=550080312 width=114) Output:["_col0","_col1"] Filter Operator [FIL_416] (rows=550080312 width=114) - predicate:(ss_customer_sk is not null and ss_customer_sk BETWEEN DynamicValue(RS_47_catalog_sales_cs_bill_customer_sk_min) AND DynamicValue(RS_47_catalog_sales_cs_bill_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_47_catalog_sales_cs_bill_customer_sk_bloom_filter)) and (ss_customer_sk is not null or (ss_sold_date_sk is not null and ss_customer_sk is not null)) and ((ss_customer_sk BETWEEN DynamicValue(RS_47_catalog_ [...] + predicate:(ss_customer_sk is not null and ss_customer_sk BETWEEN DynamicValue(RS_47_catalog_sales_cs_bill_customer_sk_min) AND DynamicValue(RS_47_catalog_sales_cs_bill_customer_sk_max) and in_bloom_filter(ss_customer_sk, DynamicValue(RS_47_catalog_sales_cs_bill_customer_sk_bloom_filter))) Please refer to the previous TableScan [TS_10] diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query31.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query31.q.out index cd8fee1..251b511 100644 --- a/ql/src/test/results/clientpositive/perf/tez/constraints/query31.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query31.q.out @@ -208,7 +208,7 @@ Stage-0 Select Operator [SEL_527] (rows=525327191 width=114) Output:["_col0","_col1","_col2"] Filter Operator [FIL_524] (rows=525327191 width=114) - predicate:(ss_sold_date_sk is not null and ss_addr_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_70_date_dim_d_date_sk_bloom_filter)) and ((ss_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_70_ [...] + predicate:(ss_sold_date_sk is not null and ss_addr_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_70_date_dim_d_date_sk_bloom_filter))) TableScan [TS_60] (rows=575995635 width=114) default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_addr_sk","ss_ext_sales_price"] <-Reducer 23 [BROADCAST_EDGE] vectorized @@ -283,7 +283,7 @@ Stage-0 Select Operator [SEL_528] (rows=525327191 width=114) Output:["_col0","_col1","_col2"] Filter Operator [FIL_525] (rows=525327191 width=114) - predicate:(ss_sold_date_sk is not null and ss_addr_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_90_date_dim_d_date_sk_min) AND DynamicValue(RS_90_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_90_date_dim_d_date_sk_bloom_filter)) and ((ss_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_70_ [...] + predicate:(ss_sold_date_sk is not null and ss_addr_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_90_date_dim_d_date_sk_min) AND DynamicValue(RS_90_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_90_date_dim_d_date_sk_bloom_filter))) Please refer to the previous TableScan [TS_60] <-Reducer 30 [SIMPLE_EDGE] vectorized SHUFFLE [RS_538] @@ -440,7 +440,7 @@ Stage-0 Select Operator [SEL_497] (rows=143931246 width=119) Output:["_col0","_col1","_col2"] Filter Operator [FIL_494] (rows=143931246 width=119) - predicate:(ws_sold_date_sk is not null and ws_bill_addr_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter)) and ((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(R [...] + predicate:(ws_sold_date_sk is not null and ws_bill_addr_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Reducer 4 [SIMPLE_EDGE] vectorized SHUFFLE [RS_512] @@ -475,6 +475,6 @@ Stage-0 Select Operator [SEL_496] (rows=143931246 width=119) Output:["_col0","_col1","_col2"] Filter Operator [FIL_493] (rows=143931246 width=119) - predicate:(ws_sold_date_sk is not null and ws_bill_addr_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter)) and ((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue [...] + predicate:(ws_sold_date_sk is not null and ws_bill_addr_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] diff --git a/ql/src/test/results/clientpositive/perf/tez/constraints/query88.q.out b/ql/src/test/results/clientpositive/perf/tez/constraints/query88.q.out index bcb0630..1a7d349 100644 --- a/ql/src/test/results/clientpositive/perf/tez/constraints/query88.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/constraints/query88.q.out @@ -313,7 +313,7 @@ Stage-0 Select Operator [SEL_683] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_675] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_146_time_dim_t_time_sk_min) AND DynamicValue(RS_146_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_146_time_dim_t_time_sk_bloom_filter)) and ((((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue(RS_16_t [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_146_time_dim_t_time_sk_min) AND DynamicValue(RS_146_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_146_time_dim_t_time_sk_bloom_filter))) TableScan [TS_0] (rows=575995635 width=11) default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] <-Reducer 43 [BROADCAST_EDGE] vectorized @@ -479,7 +479,7 @@ Stage-0 Select Operator [SEL_682] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_674] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_120_time_dim_t_time_sk_min) AND DynamicValue(RS_120_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_120_time_dim_t_time_sk_bloom_filter)) and ((((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue(RS_ [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_120_time_dim_t_time_sk_min) AND DynamicValue(RS_120_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_120_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_700] @@ -523,7 +523,7 @@ Stage-0 Select Operator [SEL_681] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_673] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_94_time_dim_t_time_sk_min) AND DynamicValue(RS_94_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_94_time_dim_t_time_sk_bloom_filter)) and ((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue(RS_1 [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_94_time_dim_t_time_sk_min) AND DynamicValue(RS_94_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_94_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_699] @@ -567,7 +567,7 @@ Stage-0 Select Operator [SEL_680] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_672] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_68_time_dim_t_time_sk_min) AND DynamicValue(RS_68_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_68_time_dim_t_time_sk_bloom_filter)) and ((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue( [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_68_time_dim_t_time_sk_min) AND DynamicValue(RS_68_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_68_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_698] @@ -611,7 +611,7 @@ Stage-0 Select Operator [SEL_679] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_671] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_42_time_dim_t_time_sk_min) AND DynamicValue(RS_42_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_42_time_dim_t_time_sk_bloom_filter)) and ((ss_sold_time_sk BETWEEN DynamicValue(RS_16_time_dim_t_time_sk_min) AND DynamicValue(RS_16_time_dim_t_time_sk_max) and in_bl [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_42_time_dim_t_time_sk_min) AND DynamicValue(RS_42_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_42_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_697] @@ -651,7 +651,7 @@ Stage-0 Select Operator [SEL_678] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_670] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_16_time_dim_t_time_sk_min) AND DynamicValue(RS_16_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_16_time_dim_t_time_sk_bloom_filter)) and ((ss_sold_time_sk BETWEEN DynamicValue(RS_16_time_dim_t_time_sk_min) AND DynamicValue(RS_16_time_dim_t_time_sk_max) and in_bl [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_16_time_dim_t_time_sk_min) AND DynamicValue(RS_16_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_16_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_696] @@ -691,7 +691,7 @@ Stage-0 Select Operator [SEL_684] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_676] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_172_time_dim_t_time_sk_min) AND DynamicValue(RS_172_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_172_time_dim_t_time_sk_bloom_filter)) and ((((((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue(RS_16_tim [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_172_time_dim_t_time_sk_min) AND DynamicValue(RS_172_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_172_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_702] diff --git a/ql/src/test/results/clientpositive/perf/tez/query31.q.out b/ql/src/test/results/clientpositive/perf/tez/query31.q.out index 10e90c1..facacbb 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query31.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query31.q.out @@ -208,7 +208,7 @@ Stage-0 Select Operator [SEL_527] (rows=525327191 width=114) Output:["_col0","_col1","_col2"] Filter Operator [FIL_524] (rows=525327191 width=114) - predicate:(ss_sold_date_sk is not null and ss_addr_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_70_date_dim_d_date_sk_bloom_filter)) and ((ss_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_70_ [...] + predicate:(ss_sold_date_sk is not null and ss_addr_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_70_date_dim_d_date_sk_bloom_filter))) TableScan [TS_60] (rows=575995635 width=114) default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_date_sk","ss_addr_sk","ss_ext_sales_price"] <-Reducer 23 [BROADCAST_EDGE] vectorized @@ -283,7 +283,7 @@ Stage-0 Select Operator [SEL_528] (rows=525327191 width=114) Output:["_col0","_col1","_col2"] Filter Operator [FIL_525] (rows=525327191 width=114) - predicate:(ss_sold_date_sk is not null and ss_addr_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_90_date_dim_d_date_sk_min) AND DynamicValue(RS_90_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_90_date_dim_d_date_sk_bloom_filter)) and ((ss_sold_date_sk BETWEEN DynamicValue(RS_70_date_dim_d_date_sk_min) AND DynamicValue(RS_70_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_70_ [...] + predicate:(ss_sold_date_sk is not null and ss_addr_sk is not null and ss_sold_date_sk BETWEEN DynamicValue(RS_90_date_dim_d_date_sk_min) AND DynamicValue(RS_90_date_dim_d_date_sk_max) and in_bloom_filter(ss_sold_date_sk, DynamicValue(RS_90_date_dim_d_date_sk_bloom_filter))) Please refer to the previous TableScan [TS_60] <-Reducer 30 [SIMPLE_EDGE] vectorized SHUFFLE [RS_538] @@ -440,7 +440,7 @@ Stage-0 Select Operator [SEL_497] (rows=143931246 width=119) Output:["_col0","_col1","_col2"] Filter Operator [FIL_494] (rows=143931246 width=119) - predicate:(ws_sold_date_sk is not null and ws_bill_addr_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter)) and ((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(R [...] + predicate:(ws_sold_date_sk is not null and ws_bill_addr_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_30_date_dim_d_date_sk_min) AND DynamicValue(RS_30_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_30_date_dim_d_date_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Reducer 4 [SIMPLE_EDGE] vectorized SHUFFLE [RS_512] @@ -475,6 +475,6 @@ Stage-0 Select Operator [SEL_496] (rows=143931246 width=119) Output:["_col0","_col1","_col2"] Filter Operator [FIL_493] (rows=143931246 width=119) - predicate:(ws_sold_date_sk is not null and ws_bill_addr_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter)) and ((ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue [...] + predicate:(ws_sold_date_sk is not null and ws_bill_addr_sk is not null and ws_sold_date_sk BETWEEN DynamicValue(RS_10_date_dim_d_date_sk_min) AND DynamicValue(RS_10_date_dim_d_date_sk_max) and in_bloom_filter(ws_sold_date_sk, DynamicValue(RS_10_date_dim_d_date_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] diff --git a/ql/src/test/results/clientpositive/perf/tez/query88.q.out b/ql/src/test/results/clientpositive/perf/tez/query88.q.out index 8158f6d..c07e99a 100644 --- a/ql/src/test/results/clientpositive/perf/tez/query88.q.out +++ b/ql/src/test/results/clientpositive/perf/tez/query88.q.out @@ -313,7 +313,7 @@ Stage-0 Select Operator [SEL_683] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_675] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_146_time_dim_t_time_sk_min) AND DynamicValue(RS_146_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_146_time_dim_t_time_sk_bloom_filter)) and ((((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue(RS_16_t [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_146_time_dim_t_time_sk_min) AND DynamicValue(RS_146_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_146_time_dim_t_time_sk_bloom_filter))) TableScan [TS_0] (rows=575995635 width=11) default@store_sales,store_sales,Tbl:COMPLETE,Col:COMPLETE,Output:["ss_sold_time_sk","ss_hdemo_sk","ss_store_sk"] <-Reducer 43 [BROADCAST_EDGE] vectorized @@ -479,7 +479,7 @@ Stage-0 Select Operator [SEL_682] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_674] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_120_time_dim_t_time_sk_min) AND DynamicValue(RS_120_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_120_time_dim_t_time_sk_bloom_filter)) and ((((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue(RS_ [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_120_time_dim_t_time_sk_min) AND DynamicValue(RS_120_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_120_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_700] @@ -523,7 +523,7 @@ Stage-0 Select Operator [SEL_681] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_673] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_94_time_dim_t_time_sk_min) AND DynamicValue(RS_94_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_94_time_dim_t_time_sk_bloom_filter)) and ((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue(RS_1 [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_94_time_dim_t_time_sk_min) AND DynamicValue(RS_94_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_94_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_699] @@ -567,7 +567,7 @@ Stage-0 Select Operator [SEL_680] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_672] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_68_time_dim_t_time_sk_min) AND DynamicValue(RS_68_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_68_time_dim_t_time_sk_bloom_filter)) and ((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue( [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_68_time_dim_t_time_sk_min) AND DynamicValue(RS_68_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_68_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_698] @@ -611,7 +611,7 @@ Stage-0 Select Operator [SEL_679] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_671] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_42_time_dim_t_time_sk_min) AND DynamicValue(RS_42_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_42_time_dim_t_time_sk_bloom_filter)) and ((ss_sold_time_sk BETWEEN DynamicValue(RS_16_time_dim_t_time_sk_min) AND DynamicValue(RS_16_time_dim_t_time_sk_max) and in_bl [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_42_time_dim_t_time_sk_min) AND DynamicValue(RS_42_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_42_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_697] @@ -651,7 +651,7 @@ Stage-0 Select Operator [SEL_678] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_670] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_16_time_dim_t_time_sk_min) AND DynamicValue(RS_16_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_16_time_dim_t_time_sk_bloom_filter)) and ((ss_sold_time_sk BETWEEN DynamicValue(RS_16_time_dim_t_time_sk_min) AND DynamicValue(RS_16_time_dim_t_time_sk_max) and in_bl [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_16_time_dim_t_time_sk_min) AND DynamicValue(RS_16_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_16_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_696] @@ -691,7 +691,7 @@ Stage-0 Select Operator [SEL_684] (rows=501695814 width=11) Output:["_col0","_col1","_col2"] Filter Operator [FIL_676] (rows=501695814 width=11) - predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_172_time_dim_t_time_sk_min) AND DynamicValue(RS_172_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_172_time_dim_t_time_sk_bloom_filter)) and ((((((ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ((ss_sold_time_sk BETWEEN DynamicValue(RS_16_tim [...] + predicate:(ss_sold_time_sk is not null and ss_hdemo_sk is not null and ss_store_sk is not null and ss_sold_time_sk BETWEEN DynamicValue(RS_172_time_dim_t_time_sk_min) AND DynamicValue(RS_172_time_dim_t_time_sk_max) and in_bloom_filter(ss_sold_time_sk, DynamicValue(RS_172_time_dim_t_time_sk_bloom_filter))) Please refer to the previous TableScan [TS_0] <-Map 41 [SIMPLE_EDGE] vectorized SHUFFLE [RS_702]