You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2021/02/19 21:47:49 UTC
[hive] branch master updated: HIVE-23882: Compiler extensions for
MJ probe optimization
This is an automated email from the ASF dual-hosted git repository.
hashutosh 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 b63a7df HIVE-23882: Compiler extensions for MJ probe optimization
b63a7df is described below
commit b63a7df35efc020e04b21c456f9a1081a44845ab
Author: Panos Garefalakis <pg...@cloudera.com>
AuthorDate: Mon Jul 20 22:11:43 2020 +0300
HIVE-23882: Compiler extensions for MJ probe optimization
Change-Id: Ib76b4af6185d79029e5cd469d370cdca483b447c
Signed-off-by: Ashutosh Chauhan <ha...@apache.org>
---
.../apache/hadoop/hive/ql/exec/OperatorUtils.java | 41 +---
.../apache/hadoop/hive/ql/parse/TezCompiler.java | 61 ++---
.../hadoop/hive/ql/plan/ExprNodeDescUtils.java | 52 ++++-
.../clientpositive/probedecode_mapjoin_keyexpr.q | 61 +++++
.../results/clientpositive/llap/auto_join1.q.out | 1 +
.../results/clientpositive/llap/auto_join10.q.out | 1 +
.../results/clientpositive/llap/auto_join11.q.out | 1 +
.../results/clientpositive/llap/auto_join12.q.out | 1 +
.../results/clientpositive/llap/auto_join13.q.out | 1 +
.../results/clientpositive/llap/auto_join14.q.out | 1 +
.../results/clientpositive/llap/auto_join15.q.out | 1 +
.../results/clientpositive/llap/auto_join17.q.out | 1 +
.../results/clientpositive/llap/auto_join19.q.out | 1 +
.../clientpositive/llap/auto_join19_inclause.q.out | 1 +
.../results/clientpositive/llap/auto_join2.q.out | 1 +
.../results/clientpositive/llap/auto_join20.q.out | 2 +
.../results/clientpositive/llap/auto_join22.q.out | 1 +
.../results/clientpositive/llap/auto_join24.q.out | 1 +
.../results/clientpositive/llap/auto_join26.q.out | 1 +
.../results/clientpositive/llap/auto_join27.q.out | 1 +
.../results/clientpositive/llap/auto_join29.q.out | 2 +
.../results/clientpositive/llap/auto_join3.q.out | 1 +
.../results/clientpositive/llap/auto_join30.q.out | 3 +
.../results/clientpositive/llap/auto_join31.q.out | 1 +
.../results/clientpositive/llap/auto_join32.q.out | 4 +
.../results/clientpositive/llap/auto_join9.q.out | 1 +
.../clientpositive/llap/auto_join_stats2.q.out | 1 +
.../clientpositive/llap/bucket_map_join_tez2.q.out | 3 +-
.../clientpositive/llap/cbo_rp_auto_join17.q.out | 1 +
.../llap/cbo_rp_cross_product_check_2.q.out | 3 +
.../results/clientpositive/llap/comments.q.out | 1 +
.../llap/correlationoptimizer1.q.out | 1 +
.../llap/correlationoptimizer3.q.out | 1 +
.../llap/correlationoptimizer6.q.out | 2 +
.../llap/correlationoptimizer7.q.out | 4 +
.../results/clientpositive/llap/cross_join.q.out | 1 +
.../results/clientpositive/llap/cross_prod_3.q.out | 2 +
.../llap/cross_product_check_2.q.out | 3 +
.../llap/dynamic_semijoin_reduction.q.out | 11 +
.../llap/hybridgrace_hashjoin_1.q.out | 2 +
.../llap/hybridgrace_hashjoin_2.q.out | 14 ++
.../test/results/clientpositive/llap/join25.q.out | 1 +
.../test/results/clientpositive/llap/join26.q.out | 2 +
.../test/results/clientpositive/llap/join27.q.out | 1 +
.../test/results/clientpositive/llap/join28.q.out | 2 +
.../test/results/clientpositive/llap/join30.q.out | 1 +
.../test/results/clientpositive/llap/join32.q.out | 2 +
.../clientpositive/llap/join32_lessSize.q.out | 12 +
.../test/results/clientpositive/llap/join33.q.out | 2 +
.../test/results/clientpositive/llap/join34.q.out | 1 +
.../test/results/clientpositive/llap/join37.q.out | 1 +
.../test/results/clientpositive/llap/join38.q.out | 1 +
.../test/results/clientpositive/llap/join40.q.out | 1 +
.../clientpositive/llap/join_max_hashtable.q.out | 1 +
.../clientpositive/llap/join_on_varchar.q.out | 2 +-
.../results/clientpositive/llap/mapjoin_hint.q.out | 1 +
.../clientpositive/llap/mapjoin_mapjoin.q.out | 3 +
ql/src/test/results/clientpositive/llap/mrr.q.out | 1 +
.../clientpositive/llap/multiMapJoin1.q.out | 5 +
.../clientpositive/llap/multiMapJoin2.q.out | 6 +
.../clientpositive/llap/multi_join_union.q.out | 2 +
.../llap/probedecode_mapjoin_keyexpr.q.out | 260 +++++++++++++++++++++
.../clientpositive/llap/skewjoin_mapjoin1.q.out | 2 +
.../clientpositive/llap/skewjoin_mapjoin11.q.out | 1 +
.../clientpositive/llap/skewjoin_mapjoin2.q.out | 1 +
.../clientpositive/llap/skewjoin_mapjoin3.q.out | 1 +
.../clientpositive/llap/skewjoin_mapjoin4.q.out | 1 +
.../clientpositive/llap/skewjoin_mapjoin5.q.out | 1 +
.../clientpositive/llap/skewjoin_mapjoin6.q.out | 1 +
.../clientpositive/llap/skewjoin_mapjoin7.q.out | 2 +
.../clientpositive/llap/skewjoin_mapjoin8.q.out | 1 +
.../clientpositive/llap/skewjoin_mapjoin9.q.out | 1 +
.../llap/subq_where_serialization.q.out | 1 +
.../clientpositive/llap/subquery_in_having.q.out | 1 +
.../llap/tez_join_result_complex.q.out | 2 +
.../results/clientpositive/llap/tez_smb_main.q.out | 5 +
.../results/clientpositive/llap/tez_union.q.out | 7 +
.../test/results/clientpositive/llap/union34.q.out | 1 +
.../clientpositive/llap/union_remove_12.q.out | 1 +
.../clientpositive/llap/union_remove_13.q.out | 1 +
.../clientpositive/llap/union_remove_14.q.out | 1 +
.../clientpositive/llap/vector_inner_join.q.out | 6 +-
.../clientpositive/llap/vector_join30.q.out | 4 +
.../llap/vector_leftsemi_mapjoin.q.out | 5 +
.../perf/tpcds30tb/tez/query11.q.out | 2 +-
.../perf/tpcds30tb/tez/query24.q.out | 2 +-
.../clientpositive/perf/tpcds30tb/tez/query4.q.out | 2 +-
.../clientpositive/perf/tpcds30tb/tez/query5.q.out | 6 +-
.../perf/tpcds30tb/tez/query54.q.out | 2 +-
.../perf/tpcds30tb/tez/query59.q.out | 1 +
.../perf/tpcds30tb/tez/query71.q.out | 2 +-
.../tez/hybridgrace_hashjoin_1.q.out | 4 -
92 files changed, 585 insertions(+), 85 deletions(-)
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorUtils.java
index 553be93..aa9a44c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorUtils.java
@@ -663,38 +663,19 @@ public class OperatorUtils {
}
/**
- * Given an operator and an internalColName look for the original Table columnName
- * that this internal column maps to. This method finds the original columnName
- * by checking column Expr mappings and schemas of the start operator and its parents.
- *
- * @param start
- * @param internalColName
+ * Given start, end operators and a colName, look for the original TS colExpr
+ * that it originates from. This method checks column Expr mappings (aliases)
+ * from the start operator and its parents up to the end operator.
+ * It then returns the unwrapped Expr found within a ExprNodeGenericFuncDesc (if any).
+ * @param colName colName to backtrack
+ * @param start start backtracking from this Op
+ * @param end end backtracking at this Op
* @return the original column name or null if not found
*/
- public static String findTableColNameOf(Operator<?> start, String internalColName) {
- // Look for internalCoName alias in current OR Parent RowSchemas
- Stack<Operator<?>> parentOps = new Stack<>();
- ColumnInfo keyColInfo = null;
- parentOps.add(start);
- while (!parentOps.isEmpty()) {
- Operator<?> currentOp = parentOps.pop();
- if (currentOp instanceof ReduceSinkOperator) {
- // Dont want to follow that parent path
- continue;
- }
- // If columnName is the output of a ColumnExpr get the original columnName from the Expr Map
- if (currentOp.getColumnExprMap() != null && currentOp.getColumnExprMap().containsKey(internalColName)
- && currentOp.getColumnExprMap().get(internalColName) instanceof ExprNodeColumnDesc) {
- internalColName = ((ExprNodeColumnDesc) currentOp.getColumnExprMap().get(internalColName)).getColumn();
- }
- keyColInfo = currentOp.getSchema().getColumnInfo(internalColName);
- if (keyColInfo != null) {
- // Get original colName alias (or fallback to internal colName)
- return keyColInfo.getAlias() != null ? keyColInfo.getAlias() : keyColInfo.getInternalName();
- }
- parentOps.addAll(currentOp.getParentOperators());
- }
- return null;
+ public static ExprNodeColumnDesc findTableOriginColExpr(ExprNodeColumnDesc colName, Operator<?> start, Operator<?> end)
+ throws SemanticException {
+ ExprNodeDesc res = ExprNodeDescUtils.backtrack(colName, start, end, false, true);
+ return (res != null) ? ExprNodeDescUtils.getColumnExpr(res) : null;
}
public static Set<Operator<?>> getAllOperatorsForSimpleFetch(Set<Operator<?>> opSet) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
index f2390b1..3dcbffd 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
@@ -43,6 +43,7 @@ import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
+import org.apache.hadoop.hive.llap.LlapHiveUtils;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.AppMasterEventOperator;
@@ -143,8 +144,7 @@ import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
import org.apache.hadoop.hive.ql.stats.OperatorStats;
import org.apache.hadoop.hive.ql.stats.StatsUtils;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFBloomFilter.GenericUDAFBloomFilterEvaluator;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1525,15 +1525,14 @@ public class TezCompiler extends TaskCompiler {
}
}
}
- if (procCtx.conf.getBoolVar(ConfVars.HIVE_OPTIMIZE_SCAN_PROBEDECODE)) {
+ if (LlapHiveUtils.isLlapMode(procCtx.conf) && procCtx.conf.getBoolVar(ConfVars.HIVE_OPTIMIZE_SCAN_PROBEDECODE)) {
if (probeDecodeMJoins.size() > 0) {
// When multiple MJ, select one based on a policy
for (Map.Entry<TableScanOperator, List<MapJoinOperator>> probeTsMap : probeDecodeMJoins.entrySet()){
TableScanOperator.ProbeDecodeContext tsCntx = null;
// Currently supporting: LowestRatio policy
// TODO: Add more policies and make the selection a conf property
- tsCntx = selectLowestRatioProbeDecodeMapJoin(probeTsMap.getKey(), probeTsMap.getValue(),
- procCtx.conf.getBoolVar(ConfVars.HIVE_IN_TEST));
+ tsCntx = selectLowestRatioProbeDecodeMapJoin(probeTsMap.getKey(), probeTsMap.getValue());
if (tsCntx != null) {
LOG.debug("ProbeDecode MJ for TS {} with CacheKey {} MJ Pos {} ColName {} with Ratio {}",
probeTsMap.getKey().getName(), tsCntx.getMjSmallTableCacheKey(), tsCntx.getMjSmallTablePos(),
@@ -1547,7 +1546,7 @@ public class TezCompiler extends TaskCompiler {
}
private static TableScanOperator.ProbeDecodeContext selectLowestRatioProbeDecodeMapJoin(TableScanOperator tsOp,
- List<MapJoinOperator> mjOps, boolean inTestMode){
+ List<MapJoinOperator> mjOps) throws SemanticException {
MapJoinOperator selectedMJOp = null;
double selectedMJOpRatio = 0;
for (MapJoinOperator currMJOp : mjOps) {
@@ -1589,13 +1588,17 @@ public class TezCompiler extends TaskCompiler {
List<ExprNodeDesc> keyDesc = selectedMJOp.getConf().getKeys().get(posBigTable);
ExprNodeColumnDesc keyCol = (ExprNodeColumnDesc) keyDesc.get(0);
- String realTSColName = OperatorUtils.findTableColNameOf(selectedMJOp, keyCol.getColumn());
- if (realTSColName != null) {
+ ExprNodeColumnDesc originTSColExpr = OperatorUtils.findTableOriginColExpr(keyCol, selectedMJOp, tsOp);
+ if (originTSColExpr == null) {
+ LOG.warn("ProbeDecode could not find origTSCol for mjCol: {} with MJ Schema: {}",
+ keyCol, selectedMJOp.getSchema());
+ } else if (!TypeInfoUtils.doPrimitiveCategoriesMatch(keyCol.getTypeInfo(), originTSColExpr.getTypeInfo())) {
+ // src Col -> HT key Col needs explicit or implicit (Casting) conversion
+ // as a result we cannot perform direct lookups on the HT
+ LOG.warn("ProbeDecode origTSCol {} type missmatch mjCol {}", originTSColExpr, keyCol);
+ } else {
tsProbeDecodeCtx = new TableScanOperator.ProbeDecodeContext(mjCacheKey, mjSmallTablePos,
- realTSColName, selectedMJOpRatio);
- } else if (inTestMode){
- throw new RuntimeException("ProbeDecode could not find TSColName for ColKey: " + keyCol + " with MJ Schema: " +
- selectedMJOp.getSchema());
+ originTSColExpr.getColumn(), selectedMJOpRatio);
}
}
return tsProbeDecodeCtx;
@@ -1614,32 +1617,34 @@ public class TezCompiler extends TaskCompiler {
// Single Key MJ at this point
List<ExprNodeDesc> tsKeyDesc = mjOp.getConf().getKeys().get(mjBigTablePos);
- ExprNodeColumnDesc tsKeyCol = (ExprNodeColumnDesc) tsKeyDesc.get(0);
-
List<ExprNodeDesc> mjKeyDesc = mjOp.getConf().getKeys().get(mjSmallTablePos);
- ExprNodeColumnDesc mjKeyCol = (ExprNodeColumnDesc) mjKeyDesc.get(0);
+ if (mjKeyDesc.get(0) instanceof ExprNodeColumnDesc) {
+ ExprNodeColumnDesc tsKeyCol = (ExprNodeColumnDesc) tsKeyDesc.get(0);
+ ExprNodeColumnDesc mjKeyCol = (ExprNodeColumnDesc) mjKeyDesc.get(0);
- ColStatistics mjStats = mjOp.getStatistics().getColumnStatisticsFromColName(mjKeyCol.getColumn());
- ColStatistics tsStats = tsOp.getStatistics().getColumnStatisticsFromColName(tsKeyCol.getColumn());
+ ColStatistics mjStats = mjOp.getStatistics().getColumnStatisticsFromColName(mjKeyCol.getColumn());
+ ColStatistics tsStats = tsOp.getStatistics().getColumnStatisticsFromColName(tsKeyCol.getColumn());
- if (canUseNDV(mjStats)) {
- mjKeyCardinality = mjStats.getCountDistint();
- }
- if (canUseNDV(tsStats)) {
- tsKeyCardinality = tsStats.getCountDistint();
+ if (canUseNDV(mjStats)) {
+ mjKeyCardinality = mjStats.getCountDistint();
+ }
+ if (canUseNDV(tsStats)) {
+ tsKeyCardinality = tsStats.getCountDistint();
+ }
}
return mjKeyCardinality / (double) tsKeyCardinality;
}
- // Valid MapJoin with a single Key of Number type (Long/Int/Short)
+ /**
+ * Returns true for a MapJoin operator that can be used for ProbeDecode.
+ * MapJoin should be a single Key join, where the bigTable keyCol is only a ExprNodeColumnDesc
+ * @param mapJoinOp
+ * @return true for a valid MapJoin
+ */
private static boolean isValidProbeDecodeMapJoin(MapJoinOperator mapJoinOp) {
Map<Byte, List<ExprNodeDesc>> keyExprs = mapJoinOp.getConf().getKeys();
List<ExprNodeDesc> bigTableKeyExprs = keyExprs.get( (byte) mapJoinOp.getConf().getPosBigTable());
- return (bigTableKeyExprs.size() == 1)
- && !(((PrimitiveTypeInfo) bigTableKeyExprs.get(0).getTypeInfo()).getPrimitiveCategory().
- equals(PrimitiveObjectInspector.PrimitiveCategory.STRING) ||
- ((PrimitiveTypeInfo) bigTableKeyExprs.get(0).getTypeInfo()).getPrimitiveCategory().
- equals(PrimitiveObjectInspector.PrimitiveCategory.BYTE));
+ return (bigTableKeyExprs.size() == 1) && (bigTableKeyExprs.get(0) instanceof ExprNodeColumnDesc);
}
private static boolean canUseNDV(ColStatistics colStats) {
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 7a4ff2d..9ecccda 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
@@ -367,9 +367,14 @@ public class ExprNodeDescUtils {
public static ArrayList<ExprNodeDesc> backtrack(List<ExprNodeDesc> sources,
Operator<?> current, Operator<?> terminal, boolean foldExpr) throws SemanticException {
- ArrayList<ExprNodeDesc> result = new ArrayList<ExprNodeDesc>();
+ return backtrack(sources, current, terminal, foldExpr, false);
+ }
+
+ public static ArrayList<ExprNodeDesc> backtrack(List<ExprNodeDesc> sources,
+ Operator<?> current, Operator<?> terminal, boolean foldExpr, boolean stayInSameVertex) throws SemanticException {
+ ArrayList<ExprNodeDesc> result = new ArrayList<>();
for (ExprNodeDesc expr : sources) {
- result.add(backtrack(expr, current, terminal, foldExpr));
+ result.add(backtrack(expr, current, terminal, foldExpr, stayInSameVertex));
}
return result;
}
@@ -381,7 +386,12 @@ public class ExprNodeDescUtils {
public static ExprNodeDesc backtrack(ExprNodeDesc source, Operator<?> current,
Operator<?> terminal, boolean foldExpr) throws SemanticException {
- Operator<?> parent = getSingleParent(current, terminal);
+ return backtrack(source, current, terminal, foldExpr, false);
+ }
+
+ public static ExprNodeDesc backtrack(ExprNodeDesc source, Operator<?> current,
+ Operator<?> terminal, boolean foldExpr, boolean stayInSameVertex) throws SemanticException {
+ Operator<?> parent = stayInSameVertex ? getSameVertexParent(current, terminal) : getSingleParent(current, terminal);
if (parent == null) {
return source;
}
@@ -392,7 +402,7 @@ public class ExprNodeDescUtils {
if (source instanceof ExprNodeGenericFuncDesc) {
// all children expression should be resolved
ExprNodeGenericFuncDesc function = (ExprNodeGenericFuncDesc) source.clone();
- List<ExprNodeDesc> children = backtrack(function.getChildren(), current, terminal, foldExpr);
+ List<ExprNodeDesc> children = backtrack(function.getChildren(), current, terminal, foldExpr, stayInSameVertex);
for (ExprNodeDesc child : children) {
if (child == null) {
// Could not resolve all of the function children, fail
@@ -411,12 +421,12 @@ public class ExprNodeDescUtils {
}
if (source instanceof ExprNodeColumnDesc) {
ExprNodeColumnDesc column = (ExprNodeColumnDesc) source;
- return backtrack(column, parent, terminal);
+ return backtrack(column, parent, terminal, stayInSameVertex);
}
if (source instanceof ExprNodeFieldDesc) {
// field expression should be resolved
ExprNodeFieldDesc field = (ExprNodeFieldDesc) source.clone();
- ExprNodeDesc fieldDesc = backtrack(field.getDesc(), current, terminal, foldExpr);
+ ExprNodeDesc fieldDesc = backtrack(field.getDesc(), current, terminal, foldExpr, stayInSameVertex);
if (fieldDesc == null) {
return null;
}
@@ -429,13 +439,13 @@ public class ExprNodeDescUtils {
// Resolve column expression to input expression by using expression mapping in current operator
private static ExprNodeDesc backtrack(ExprNodeColumnDesc column, Operator<?> current,
- Operator<?> terminal) throws SemanticException {
+ Operator<?> terminal, boolean stayInSameVertex) throws SemanticException {
Map<String, ExprNodeDesc> mapping = current.getColumnExprMap();
if (mapping == null) {
- return backtrack((ExprNodeDesc)column, current, terminal);
+ return backtrack(column, current, terminal, false, stayInSameVertex);
}
ExprNodeDesc mapped = mapping.get(column.getColumn());
- return mapped == null ? null : backtrack(mapped, current, terminal);
+ return mapped == null ? null : backtrack(mapped, current, terminal, false, stayInSameVertex);
}
public static Operator<?> getSingleParent(Operator<?> current, Operator<?> terminal)
@@ -459,6 +469,30 @@ public class ExprNodeDescUtils {
throw new SemanticException("Met multiple parent operators");
}
+ /**
+ * When Multi-Parent backtrack to the same Vertex (non-RS) branch and return the found parent.
+ * @param current Parent OP
+ * @param terminal End Op
+ * @return parent Op or Null when not found
+ */
+ public static Operator<?> getSameVertexParent(Operator<?> current, Operator<?> terminal) {
+ if (current == terminal) {
+ return null;
+ }
+ List<Operator<?>> parents = current.getParentOperators();
+ if (parents == null || parents.isEmpty()) {
+ return null;
+ }
+ if (parents.size() == 1) {
+ return parents.get(0);
+ }
+ if (terminal != null && parents.contains(terminal)) {
+ return terminal;
+ }
+ // When multi-parent, backtrack to non-RS parent branches looking for the src Expr
+ return parents.stream().filter(op -> !(op instanceof ReduceSinkOperator)).findFirst().get();
+ }
+
public static List<ExprNodeDesc> resolveJoinKeysAsRSColumns(List<ExprNodeDesc> sourceList,
Operator<?> reduceSinkOp) {
ArrayList<ExprNodeDesc> result = new ArrayList<ExprNodeDesc>(sourceList.size());
diff --git a/ql/src/test/queries/clientpositive/probedecode_mapjoin_keyexpr.q b/ql/src/test/queries/clientpositive/probedecode_mapjoin_keyexpr.q
new file mode 100644
index 0000000..b805607
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/probedecode_mapjoin_keyexpr.q
@@ -0,0 +1,61 @@
+set hive.stats.column.autogather=true;
+set hive.mapred.mode=nonstrict;
+set hive.explain.user=false;
+SET hive.auto.convert.join=true;
+SET hive.auto.convert.join.noconditionaltask=true;
+SET hive.auto.convert.join.noconditionaltask.size=10000000000;
+SET hive.vectorized.execution.enabled=true;
+set hive.fetch.task.conversion=none;
+
+SET mapred.min.split.size=10000;
+SET mapred.max.split.size=50000;
+
+SET hive.optimize.scan.probedecode=true;
+
+CREATE TABLE lineitem_trs (
+ l_orderkey BIGINT,
+ l_partkey BIGINT,
+ l_suppkey BIGINT,
+ l_linenumber INT,
+ l_quantity DECIMAL(12,2),
+ l_extendedprice DECIMAL(12,2),
+ l_discount DECIMAL(12,2),
+ l_tax DECIMAL(12,2),
+ l_returnflag STRING,
+ l_linestatus STRING,
+ l_shipdate STRING,
+ l_commitdate STRING,
+ l_receiptdate STRING,
+ l_shipinstruct STRING,
+ l_shipmode STRING,
+ l_comment STRING
+) STORED AS ORC;
+
+
+CREATE TABLE unique_lineitem_stage (
+ l_orderkey STRING,
+ l_partkey BIGINT,
+ l_suppkey BIGINT,
+ l_linenumber INT,
+ l_quantity DECIMAL(12,2),
+ l_extendedprice DECIMAL(12,2),
+ l_discount DECIMAL(12,2),
+ l_tax DECIMAL(12,2),
+ l_returnflag STRING,
+ l_linestatus STRING,
+ l_shipdate STRING,
+ l_commitdate STRING,
+ l_receiptdate STRING,
+ l_shipinstruct STRING,
+ l_shipmode STRING,
+ l_comment STRING
+) STORED AS ORC;
+
+
+
+-- l_orderkey Key types missmatch thus will be converted (from String and Bigint to Double) using a UDF Expr
+-- Probe compiler optimization will SKIP such MJs with keys defined as Exprs (each expr will need to be evaluated before probe)
+EXPLAIN VECTORIZATION DETAIL
+SELECT * FROM
+unique_lineitem_stage, lineitem_trs
+where unique_lineitem_stage.L_ORDERKEY = lineitem_trs.L_ORDERKEY;
diff --git a/ql/src/test/results/clientpositive/llap/auto_join1.q.out b/ql/src/test/results/clientpositive/llap/auto_join1.q.out
index 6d9611d..a2012ce 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join1.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join1.q.out
@@ -59,6 +59,7 @@ STAGE PLANS:
TableScan
alias: src2
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join10.q.out b/ql/src/test/results/clientpositive/llap/auto_join10.q.out
index eefb66a..73e52de 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join10.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join10.q.out
@@ -57,6 +57,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_30_container, bigKeyColName:key, smallTablePos:0, keyRatio:1.582
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join11.q.out b/ql/src/test/results/clientpositive/llap/auto_join11.q.out
index 7264668..92cf863 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join11.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join11.q.out
@@ -57,6 +57,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: (UDFToDouble(key) < 100.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_30_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.332
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) < 100.0D) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join12.q.out b/ql/src/test/results/clientpositive/llap/auto_join12.q.out
index a20aa58..566491a 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join12.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join12.q.out
@@ -43,6 +43,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: (UDFToDouble(key) < 80.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.332
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) < 80.0D) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join13.q.out b/ql/src/test/results/clientpositive/llap/auto_join13.q.out
index 1f6cdce..8d7b323 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join13.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join13.q.out
@@ -43,6 +43,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: (UDFToDouble(key) < 100.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_42_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.332
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) < 100.0D) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join14.q.out b/ql/src/test/results/clientpositive/llap/auto_join14.q.out
index 2661303..f7e03bb 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join14.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join14.q.out
@@ -65,6 +65,7 @@ STAGE PLANS:
TableScan
alias: srcpart
filterExpr: (UDFToDouble(key) > 100.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.166
Statistics: Num rows: 1000 Data size: 178000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) > 100.0D) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join15.q.out b/ql/src/test/results/clientpositive/llap/auto_join15.q.out
index d150a42..5b25580 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join15.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join15.q.out
@@ -36,6 +36,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_30_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join17.q.out b/ql/src/test/results/clientpositive/llap/auto_join17.q.out
index 9c87725..29342e2 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join17.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join17.q.out
@@ -38,6 +38,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join19.q.out b/ql/src/test/results/clientpositive/llap/auto_join19.q.out
index ce46645..fe74e8e 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join19.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join19.q.out
@@ -50,6 +50,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.158
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join19_inclause.q.out b/ql/src/test/results/clientpositive/llap/auto_join19_inclause.q.out
index cf46435..03cef2d 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join19_inclause.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join19_inclause.q.out
@@ -50,6 +50,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.158
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join2.q.out b/ql/src/test/results/clientpositive/llap/auto_join2.q.out
index a24ccfb..3d2b175 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join2.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join2.q.out
@@ -39,6 +39,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: (key is not null and UDFToDouble(key) is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_45_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (key is not null and UDFToDouble(key) is not null) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join20.q.out b/ql/src/test/results/clientpositive/llap/auto_join20.q.out
index 3faddb0..87f1843 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join20.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join20.q.out
@@ -37,6 +37,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: (UDFToDouble(key) < 10.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_43_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.332
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) < 10.0D) (type: boolean)
@@ -205,6 +206,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: (UDFToDouble(key) < 10.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_43_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.332
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) < 10.0D) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join22.q.out b/ql/src/test/results/clientpositive/llap/auto_join22.q.out
index 4d896cb..dab98d0 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join22.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join22.q.out
@@ -27,6 +27,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join24.q.out b/ql/src/test/results/clientpositive/llap/auto_join24.q.out
index 920f6c1..80e8717 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join24.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join24.q.out
@@ -46,6 +46,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 309 Data size: 28119 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join26.q.out b/ql/src/test/results/clientpositive/llap/auto_join26.q.out
index 57f1ae2..e3bef25 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join26.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join26.q.out
@@ -62,6 +62,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_37_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.032
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join27.q.out b/ql/src/test/results/clientpositive/llap/auto_join27.q.out
index c338789..4bf2f9c 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join27.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join27.q.out
@@ -46,6 +46,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: (UDFToDouble(key) < 200.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_41_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.664
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) < 200.0D) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join29.q.out b/ql/src/test/results/clientpositive/llap/auto_join29.q.out
index e548de5..8ab016c 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join29.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join29.q.out
@@ -3435,6 +3435,7 @@ STAGE PLANS:
TableScan
alias: src3
filterExpr: (UDFToDouble(key) < 10.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_47_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.002
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) < 10.0D) (type: boolean)
@@ -3737,6 +3738,7 @@ STAGE PLANS:
TableScan
alias: src3
filterExpr: (UDFToDouble(key) < 10.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_47_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.002
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) < 10.0D) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join3.q.out b/ql/src/test/results/clientpositive/llap/auto_join3.q.out
index b1fd8be..5c5e5bb 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join3.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join3.q.out
@@ -39,6 +39,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_56_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join30.q.out b/ql/src/test/results/clientpositive/llap/auto_join30.q.out
index 76a745f..681148f 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join30.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join30.q.out
@@ -57,6 +57,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_30_container, bigKeyColName:key, smallTablePos:0, keyRatio:1.582
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -441,6 +442,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -1178,6 +1180,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_43_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join31.q.out b/ql/src/test/results/clientpositive/llap/auto_join31.q.out
index 3a2c421..37f0b23 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join31.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join31.q.out
@@ -43,6 +43,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join32.q.out b/ql/src/test/results/clientpositive/llap/auto_join32.q.out
index 70820df..843e9e2 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join32.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join32.q.out
@@ -69,6 +69,7 @@ STAGE PLANS:
TableScan
alias: v
filterExpr: name is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_34_container, bigKeyColName:name, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: name is not null (type: boolean)
@@ -216,6 +217,7 @@ STAGE PLANS:
TableScan
alias: v
filterExpr: name is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_34_container, bigKeyColName:name, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: name is not null (type: boolean)
@@ -379,6 +381,7 @@ STAGE PLANS:
TableScan
alias: v
filterExpr: name is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_34_container, bigKeyColName:name, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: name is not null (type: boolean)
@@ -543,6 +546,7 @@ STAGE PLANS:
TableScan
alias: s
filterExpr: ((p = 'bar') and name is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_34_container, bigKeyColName:name, smallTablePos:1, keyRatio:0.0
Statistics: Num rows: 1 Data size: 268 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: ((p = 'bar') and name is not null) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join9.q.out b/ql/src/test/results/clientpositive/llap/auto_join9.q.out
index 3856bd1..1c891d3 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join9.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join9.q.out
@@ -63,6 +63,7 @@ STAGE PLANS:
TableScan
alias: src2
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/auto_join_stats2.q.out b/ql/src/test/results/clientpositive/llap/auto_join_stats2.q.out
index a821ec2..f1a52ab 100644
--- a/ql/src/test/results/clientpositive/llap/auto_join_stats2.q.out
+++ b/ql/src/test/results/clientpositive/llap/auto_join_stats2.q.out
@@ -199,6 +199,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: (key is not null and UDFToDouble(key) is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_51_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (key is not null and UDFToDouble(key) is not null) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/bucket_map_join_tez2.q.out b/ql/src/test/results/clientpositive/llap/bucket_map_join_tez2.q.out
index b712b5a..8faa8a5 100644
--- a/ql/src/test/results/clientpositive/llap/bucket_map_join_tez2.q.out
+++ b/ql/src/test/results/clientpositive/llap/bucket_map_join_tez2.q.out
@@ -503,7 +503,6 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: UDFToDouble(key) is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.764
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: UDFToDouble(key) is not null (type: boolean)
@@ -595,7 +594,6 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: UDFToDouble(key) is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.764
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: UDFToDouble(key) is not null (type: boolean)
@@ -2400,6 +2398,7 @@ STAGE PLANS:
TableScan
alias: my_dim
filterExpr: ((filter_col) IN ('VAL1', 'VAL2') and join_col is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:join_col, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 4 Data size: 1472 Basic stats: COMPLETE Column stats: NONE
GatherStats: false
Filter Operator
diff --git a/ql/src/test/results/clientpositive/llap/cbo_rp_auto_join17.q.out b/ql/src/test/results/clientpositive/llap/cbo_rp_auto_join17.q.out
index 457e6cb..15ede8c 100644
--- a/ql/src/test/results/clientpositive/llap/cbo_rp_auto_join17.q.out
+++ b/ql/src/test/results/clientpositive/llap/cbo_rp_auto_join17.q.out
@@ -38,6 +38,7 @@ STAGE PLANS:
TableScan
alias: src1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/cbo_rp_cross_product_check_2.q.out b/ql/src/test/results/clientpositive/llap/cbo_rp_cross_product_check_2.q.out
index de387b7..206dad0 100644
--- a/ql/src/test/results/clientpositive/llap/cbo_rp_cross_product_check_2.q.out
+++ b/ql/src/test/results/clientpositive/llap/cbo_rp_cross_product_check_2.q.out
@@ -149,6 +149,7 @@ STAGE PLANS:
TableScan
alias: d1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 10 Data size: 1760 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -289,6 +290,7 @@ STAGE PLANS:
TableScan
alias: od1:d1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 10 Data size: 860 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -578,6 +580,7 @@ STAGE PLANS:
TableScan
alias: od1:d1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_36_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 10 Data size: 860 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/comments.q.out b/ql/src/test/results/clientpositive/llap/comments.q.out
index 0b7f39f..e5f52ae 100644
--- a/ql/src/test/results/clientpositive/llap/comments.q.out
+++ b/ql/src/test/results/clientpositive/llap/comments.q.out
@@ -104,6 +104,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: (UDFToDouble(key) > 0.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.332
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
diff --git a/ql/src/test/results/clientpositive/llap/correlationoptimizer1.q.out b/ql/src/test/results/clientpositive/llap/correlationoptimizer1.q.out
index f4fc814..5439f22 100644
--- a/ql/src/test/results/clientpositive/llap/correlationoptimizer1.q.out
+++ b/ql/src/test/results/clientpositive/llap/correlationoptimizer1.q.out
@@ -380,6 +380,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_34_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.032
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/correlationoptimizer3.q.out b/ql/src/test/results/clientpositive/llap/correlationoptimizer3.q.out
index 90820af..20dbc02 100644
--- a/ql/src/test/results/clientpositive/llap/correlationoptimizer3.q.out
+++ b/ql/src/test/results/clientpositive/llap/correlationoptimizer3.q.out
@@ -551,6 +551,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_87_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.032
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/correlationoptimizer6.q.out b/ql/src/test/results/clientpositive/llap/correlationoptimizer6.q.out
index 671ef2b..57f5c67 100644
--- a/ql/src/test/results/clientpositive/llap/correlationoptimizer6.q.out
+++ b/ql/src/test/results/clientpositive/llap/correlationoptimizer6.q.out
@@ -568,6 +568,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_85_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.64
Statistics: Num rows: 25 Data size: 2150 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -3974,6 +3975,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_85_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.64
Statistics: Num rows: 25 Data size: 2150 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/correlationoptimizer7.q.out b/ql/src/test/results/clientpositive/llap/correlationoptimizer7.q.out
index 332ebbd..083e6e6 100644
--- a/ql/src/test/results/clientpositive/llap/correlationoptimizer7.q.out
+++ b/ql/src/test/results/clientpositive/llap/correlationoptimizer7.q.out
@@ -38,6 +38,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.004
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -212,6 +213,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.004
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -386,6 +388,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.004
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -560,6 +563,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.004
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/cross_join.q.out b/ql/src/test/results/clientpositive/llap/cross_join.q.out
index dcd5511..f9fcf5a 100644
--- a/ql/src/test/results/clientpositive/llap/cross_join.q.out
+++ b/ql/src/test/results/clientpositive/llap/cross_join.q.out
@@ -410,6 +410,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/cross_prod_3.q.out b/ql/src/test/results/clientpositive/llap/cross_prod_3.q.out
index ec06099..6e6278f 100644
--- a/ql/src/test/results/clientpositive/llap/cross_prod_3.q.out
+++ b/ql/src/test/results/clientpositive/llap/cross_prod_3.q.out
@@ -58,6 +58,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_48_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.1
Statistics: Num rows: 10 Data size: 1780 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -112,6 +113,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.1
Statistics: Num rows: 10 Data size: 1780 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/cross_product_check_2.q.out b/ql/src/test/results/clientpositive/llap/cross_product_check_2.q.out
index dbcaf28..1e399c3 100644
--- a/ql/src/test/results/clientpositive/llap/cross_product_check_2.q.out
+++ b/ql/src/test/results/clientpositive/llap/cross_product_check_2.q.out
@@ -137,6 +137,7 @@ STAGE PLANS:
TableScan
alias: d1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_30_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.5
Statistics: Num rows: 10 Data size: 1760 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -277,6 +278,7 @@ STAGE PLANS:
TableScan
alias: d1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_35_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.5
Statistics: Num rows: 10 Data size: 860 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -558,6 +560,7 @@ STAGE PLANS:
TableScan
alias: d1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_39_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.5
Statistics: Num rows: 10 Data size: 860 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction.q.out b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction.q.out
index 0df4020..d301388 100644
--- a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction.q.out
+++ b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction.q.out
@@ -2213,6 +2213,7 @@ STAGE PLANS:
TableScan
alias: srcpart_date_n7
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -2342,6 +2343,7 @@ STAGE PLANS:
TableScan
alias: srcpart_date_n7
filterExpr: (key is not null and key BETWEEN DynamicValue(RS_7_srcpart_small_n3_key1_min) AND DynamicValue(RS_7_srcpart_small_n3_key1_max) and in_bloom_filter(key, DynamicValue(RS_7_srcpart_small_n3_key1_bloom_filter))) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (key is not null and key BETWEEN DynamicValue(RS_7_srcpart_small_n3_key1_min) AND DynamicValue(RS_7_srcpart_small_n3_key1_max) and in_bloom_filter(key, DynamicValue(RS_7_srcpart_small_n3_key1_bloom_filter))) (type: boolean)
@@ -2665,6 +2667,7 @@ STAGE PLANS:
TableScan
alias: srcpart_date_n7
filterExpr: (key is not null and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (key is not null and value is not null) (type: boolean)
@@ -2717,6 +2720,7 @@ STAGE PLANS:
TableScan
alias: alltypesorc_int_n1
filterExpr: cstring is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_50_container, bigKeyColName:cstring, smallTablePos:0, keyRatio:0.8212076822916666
Statistics: Num rows: 12288 Data size: 862450 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: cstring is not null (type: boolean)
@@ -2831,6 +2835,7 @@ STAGE PLANS:
TableScan
alias: srcpart_date_n7
filterExpr: (key is not null and value is not null and key BETWEEN DynamicValue(RS_10_srcpart_small_n3_key1_min) AND DynamicValue(RS_10_srcpart_small_n3_key1_max) and in_bloom_filter(key, DynamicValue(RS_10_srcpart_small_n3_key1_bloom_filter))) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (key is not null and value is not null and key BETWEEN DynamicValue(RS_10_srcpart_small_n3_key1_min) AND DynamicValue(RS_10_srcpart_small_n3_key1_max) and in_bloom_filter(key, DynamicValue(RS_10_srcpart_small_n3_key1_bloom_filter))) (type: boolean)
@@ -2913,6 +2918,7 @@ STAGE PLANS:
TableScan
alias: alltypesorc_int_n1
filterExpr: (cstring is not null and cstring BETWEEN DynamicValue(RS_12_srcpart_date_n7_value_min) AND DynamicValue(RS_12_srcpart_date_n7_value_max) and in_bloom_filter(cstring, DynamicValue(RS_12_srcpart_date_n7_value_bloom_filter))) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_50_container, bigKeyColName:cstring, smallTablePos:0, keyRatio:0.8212076822916666
Statistics: Num rows: 12288 Data size: 862450 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (cstring is not null and cstring BETWEEN DynamicValue(RS_12_srcpart_date_n7_value_min) AND DynamicValue(RS_12_srcpart_date_n7_value_max) and in_bloom_filter(cstring, DynamicValue(RS_12_srcpart_date_n7_value_bloom_filter))) (type: boolean)
@@ -3238,6 +3244,7 @@ STAGE PLANS:
TableScan
alias: srcpart_date_n7
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_45_container, bigKeyColName:value, smallTablePos:1, keyRatio:0.13
Statistics: Num rows: 2000 Data size: 550000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: value is not null (type: boolean)
@@ -3620,6 +3627,7 @@ STAGE PLANS:
TableScan
alias: srcpart_small_n3
filterExpr: (key1 is not null and key1 BETWEEN DynamicValue(RS_10_srcpart_small10_key1_min) AND DynamicValue(RS_10_srcpart_small10_key1_max) and in_bloom_filter(key1, DynamicValue(RS_10_srcpart_small10_key1_bloom_filter))) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_45_container, bigKeyColName:key1, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 20 Data size: 5420 Basic stats: PARTIAL Column stats: PARTIAL
Filter Operator
predicate: (key1 is not null and key1 BETWEEN DynamicValue(RS_10_srcpart_small10_key1_min) AND DynamicValue(RS_10_srcpart_small10_key1_max) and in_bloom_filter(key1, DynamicValue(RS_10_srcpart_small10_key1_bloom_filter))) (type: boolean)
@@ -3826,6 +3834,7 @@ STAGE PLANS:
TableScan
alias: srcpart_small_n3
filterExpr: (key1 is not null and key1 BETWEEN DynamicValue(RS_10_srcpart_small10_key1_min) AND DynamicValue(RS_10_srcpart_small10_key1_max) and in_bloom_filter(key1, DynamicValue(RS_10_srcpart_small10_key1_bloom_filter))) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_45_container, bigKeyColName:key1, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 20 Data size: 5420 Basic stats: PARTIAL Column stats: PARTIAL
Filter Operator
predicate: (key1 is not null and key1 BETWEEN DynamicValue(RS_10_srcpart_small10_key1_min) AND DynamicValue(RS_10_srcpart_small10_key1_max) and in_bloom_filter(key1, DynamicValue(RS_10_srcpart_small10_key1_bloom_filter))) (type: boolean)
@@ -4010,6 +4019,7 @@ STAGE PLANS:
TableScan
alias: srcpart_small_n3
filterExpr: key1 is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_45_container, bigKeyColName:key1, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 20 Data size: 5420 Basic stats: PARTIAL Column stats: PARTIAL
Filter Operator
predicate: key1 is not null (type: boolean)
@@ -4286,6 +4296,7 @@ STAGE PLANS:
TableScan
alias: srcpart_date_n7
filterExpr: (key is not null and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.3665
Statistics: Num rows: 2000 Data size: 356000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (key is not null and value is not null) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_1.q.out b/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_1.q.out
index 7cb9d10..74495bf 100644
--- a/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_1.q.out
+++ b/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_1.q.out
@@ -839,6 +839,7 @@ STAGE PLANS:
TableScan
alias: p1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0438095238095237
Statistics: Num rows: 525 Data size: 92000 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
@@ -973,6 +974,7 @@ STAGE PLANS:
TableScan
alias: p1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0438095238095237
Statistics: Num rows: 525 Data size: 92000 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_2.q.out b/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_2.q.out
index 627c32c..288648a 100644
--- a/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_2.q.out
+++ b/ql/src/test/results/clientpositive/llap/hybridgrace_hashjoin_2.q.out
@@ -77,6 +77,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_50_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.5
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -238,6 +239,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_50_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.5
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -401,6 +403,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_77_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.5
Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -428,6 +431,7 @@ STAGE PLANS:
TableScan
alias: w
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_78_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.05063291139240506
Statistics: Num rows: 2000/2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -601,6 +605,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_77_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.5
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -628,6 +633,7 @@ STAGE PLANS:
TableScan
alias: w
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_78_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.05063291139240506
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -794,6 +800,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_77_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.5
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -821,6 +828,7 @@ STAGE PLANS:
TableScan
alias: w
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_78_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.05063291139240506
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -1013,6 +1021,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_106_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.5
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -1054,6 +1063,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_108_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.5276872964169381
Statistics: Num rows: 2000 Data size: 182000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: value is not null (type: boolean)
@@ -1295,6 +1305,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_106_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.5
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -1336,6 +1347,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_108_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.5276872964169381
Statistics: Num rows: 2000 Data size: 182000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: value is not null (type: boolean)
@@ -1578,6 +1590,7 @@ STAGE PLANS:
TableScan
alias: z1
filterExpr: (key < 'zzzzzzzz') (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_97_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.0379746835443038
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (key < 'zzzzzzzz') (type: boolean)
@@ -1819,6 +1832,7 @@ STAGE PLANS:
TableScan
alias: z1
filterExpr: (key < 'zzzzzzzz') (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_97_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.0379746835443038
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (key < 'zzzzzzzz') (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join25.q.out b/ql/src/test/results/clientpositive/llap/join25.q.out
index 9dc2f4c..ab38755 100644
--- a/ql/src/test/results/clientpositive/llap/join25.q.out
+++ b/ql/src/test/results/clientpositive/llap/join25.q.out
@@ -64,6 +64,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.032
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join26.q.out b/ql/src/test/results/clientpositive/llap/join26.q.out
index 3f1f1bd..09eec4a 100644
--- a/ql/src/test/results/clientpositive/llap/join26.q.out
+++ b/ql/src/test/results/clientpositive/llap/join26.q.out
@@ -59,6 +59,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_55_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.078
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -200,6 +201,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_56_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.032
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
diff --git a/ql/src/test/results/clientpositive/llap/join27.q.out b/ql/src/test/results/clientpositive/llap/join27.q.out
index 37776f4..220e330 100644
--- a/ql/src/test/results/clientpositive/llap/join27.q.out
+++ b/ql/src/test/results/clientpositive/llap/join27.q.out
@@ -64,6 +64,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.038
Statistics: Num rows: 500 Data size: 45500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: value is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join28.q.out b/ql/src/test/results/clientpositive/llap/join28.q.out
index 950d972..fab1512 100644
--- a/ql/src/test/results/clientpositive/llap/join28.q.out
+++ b/ql/src/test/results/clientpositive/llap/join28.q.out
@@ -53,6 +53,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_55_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.078
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -105,6 +106,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_56_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.032
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join30.q.out b/ql/src/test/results/clientpositive/llap/join30.q.out
index e319ec8..d5933bf 100644
--- a/ql/src/test/results/clientpositive/llap/join30.q.out
+++ b/ql/src/test/results/clientpositive/llap/join30.q.out
@@ -62,6 +62,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_37_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.032
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join32.q.out b/ql/src/test/results/clientpositive/llap/join32.q.out
index f4c7860..17f66ec 100644
--- a/ql/src/test/results/clientpositive/llap/join32.q.out
+++ b/ql/src/test/results/clientpositive/llap/join32.q.out
@@ -59,6 +59,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_52_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.078
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -201,6 +202,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.126
Statistics: Num rows: 500 Data size: 45500 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
diff --git a/ql/src/test/results/clientpositive/llap/join32_lessSize.q.out b/ql/src/test/results/clientpositive/llap/join32_lessSize.q.out
index 749c078..bfa614d 100644
--- a/ql/src/test/results/clientpositive/llap/join32_lessSize.q.out
+++ b/ql/src/test/results/clientpositive/llap/join32_lessSize.q.out
@@ -67,6 +67,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_52_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.078
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -209,6 +210,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.126
Statistics: Num rows: 500 Data size: 45500 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -567,6 +569,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: (value is not null and key is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_76_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.64
Statistics: Num rows: 25 Data size: 4375 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -709,6 +712,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_77_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.032
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -786,6 +790,7 @@ STAGE PLANS:
TableScan
alias: w
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_78_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.198
Statistics: Num rows: 500 Data size: 45500 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -1135,6 +1140,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_52_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.078
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -1277,6 +1283,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.038
Statistics: Num rows: 500 Data size: 45500 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -1762,6 +1769,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_47_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.038
Statistics: Num rows: 500 Data size: 45500 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -2144,6 +2152,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_52_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.078
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -2198,6 +2207,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.038
Statistics: Num rows: 500 Data size: 45500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: value is not null (type: boolean)
@@ -2445,6 +2455,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_52_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.078
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -2499,6 +2510,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.038
Statistics: Num rows: 500 Data size: 45500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: value is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join33.q.out b/ql/src/test/results/clientpositive/llap/join33.q.out
index 1959571..a555207 100644
--- a/ql/src/test/results/clientpositive/llap/join33.q.out
+++ b/ql/src/test/results/clientpositive/llap/join33.q.out
@@ -59,6 +59,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_52_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.078
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
@@ -201,6 +202,7 @@ STAGE PLANS:
TableScan
alias: z
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.126
Statistics: Num rows: 500 Data size: 45500 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
diff --git a/ql/src/test/results/clientpositive/llap/join34.q.out b/ql/src/test/results/clientpositive/llap/join34.q.out
index 4ea23bd..1e021e0 100644
--- a/ql/src/test/results/clientpositive/llap/join34.q.out
+++ b/ql/src/test/results/clientpositive/llap/join34.q.out
@@ -64,6 +64,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: (UDFToDouble(key) NOT BETWEEN 20.0D AND 100.0D and (UDFToDouble(key) < 20.0D)) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_40_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.092
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
GatherStats: false
Filter Operator
diff --git a/ql/src/test/results/clientpositive/llap/join37.q.out b/ql/src/test/results/clientpositive/llap/join37.q.out
index 4ca27c9..6ad8662 100644
--- a/ql/src/test/results/clientpositive/llap/join37.q.out
+++ b/ql/src/test/results/clientpositive/llap/join37.q.out
@@ -64,6 +64,7 @@ STAGE PLANS:
TableScan
alias: y
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.032
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join38.q.out b/ql/src/test/results/clientpositive/llap/join38.q.out
index 68803e5..0aa141e 100644
--- a/ql/src/test/results/clientpositive/llap/join38.q.out
+++ b/ql/src/test/results/clientpositive/llap/join38.q.out
@@ -72,6 +72,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: (UDFToDouble(key) = 111.0D) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.002
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (UDFToDouble(key) = 111.0D) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join40.q.out b/ql/src/test/results/clientpositive/llap/join40.q.out
index 757c50a..3644385 100644
--- a/ql/src/test/results/clientpositive/llap/join40.q.out
+++ b/ql/src/test/results/clientpositive/llap/join40.q.out
@@ -3870,6 +3870,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.582
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join_max_hashtable.q.out b/ql/src/test/results/clientpositive/llap/join_max_hashtable.q.out
index 812c239..df1cae0 100644
--- a/ql/src/test/results/clientpositive/llap/join_max_hashtable.q.out
+++ b/ql/src/test/results/clientpositive/llap/join_max_hashtable.q.out
@@ -27,6 +27,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/join_on_varchar.q.out b/ql/src/test/results/clientpositive/llap/join_on_varchar.q.out
index e440693..6be183e 100644
--- a/ql/src/test/results/clientpositive/llap/join_on_varchar.q.out
+++ b/ql/src/test/results/clientpositive/llap/join_on_varchar.q.out
@@ -103,7 +103,7 @@ STAGE PLANS:
TableScan
alias: tbl2_n2
filterExpr: c2 is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:c1, smallTablePos:0, keyRatio:1.0
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:c2, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 2 Data size: 194 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: c2 is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/mapjoin_hint.q.out b/ql/src/test/results/clientpositive/llap/mapjoin_hint.q.out
index 586deb2..1a420cb 100644
--- a/ql/src/test/results/clientpositive/llap/mapjoin_hint.q.out
+++ b/ql/src/test/results/clientpositive/llap/mapjoin_hint.q.out
@@ -302,6 +302,7 @@ STAGE PLANS:
TableScan
alias: srcpart_date_n5
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 2000 Data size: 174000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/mapjoin_mapjoin.q.out b/ql/src/test/results/clientpositive/llap/mapjoin_mapjoin.q.out
index 723edae..ab58c2f 100644
--- a/ql/src/test/results/clientpositive/llap/mapjoin_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/llap/mapjoin_mapjoin.q.out
@@ -45,6 +45,7 @@ STAGE PLANS:
TableScan
alias: srcpart
filterExpr: (value is not null and key is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_45_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
GatherStats: false
Filter Operator
@@ -435,6 +436,7 @@ STAGE PLANS:
TableScan
alias: srcpart
filterExpr: ((value > 'val_450') and key is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_45_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.366
Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: ((value > 'val_450') and key is not null) (type: boolean)
@@ -560,6 +562,7 @@ STAGE PLANS:
TableScan
alias: srcpart
filterExpr: (value is not null and key is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:value, smallTablePos:1, keyRatio:1.1
Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (value is not null and key is not null) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/mrr.q.out b/ql/src/test/results/clientpositive/llap/mrr.q.out
index 2770aba..c72fb06 100644
--- a/ql/src/test/results/clientpositive/llap/mrr.q.out
+++ b/ql/src/test/results/clientpositive/llap/mrr.q.out
@@ -890,6 +890,7 @@ STAGE PLANS:
TableScan
alias: s2
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_36_container, bigKeyColName:key, smallTablePos:0, keyRatio:1.582
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/multiMapJoin1.q.out b/ql/src/test/results/clientpositive/llap/multiMapJoin1.q.out
index a449755..e78099e 100644
--- a/ql/src/test/results/clientpositive/llap/multiMapJoin1.q.out
+++ b/ql/src/test/results/clientpositive/llap/multiMapJoin1.q.out
@@ -201,6 +201,7 @@ STAGE PLANS:
TableScan
alias: bigtbl
filterExpr: (key is not null and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.99
Statistics: Num rows: 5000 Data size: 1748368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key is not null and value is not null) (type: boolean)
@@ -375,6 +376,7 @@ STAGE PLANS:
TableScan
alias: bigtbl
filterExpr: (key is not null and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.99
Statistics: Num rows: 5000 Data size: 1748368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key is not null and value is not null) (type: boolean)
@@ -551,6 +553,7 @@ STAGE PLANS:
TableScan
alias: bigtbl
filterExpr: (key is not null and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.99
Statistics: Num rows: 5000 Data size: 1748368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key is not null and value is not null) (type: boolean)
@@ -871,6 +874,7 @@ STAGE PLANS:
TableScan
alias: bigtbl
filterExpr: (key1 is not null and value is not null and key2 is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_96_container, bigKeyColName:key1, smallTablePos:1, keyRatio:0.935
Statistics: Num rows: 5000 Data size: 2622552 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key1 is not null and value is not null and key2 is not null) (type: boolean)
@@ -1218,6 +1222,7 @@ STAGE PLANS:
TableScan
alias: bigtbl
filterExpr: (key1 is not null and value is not null and key2 is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_96_container, bigKeyColName:key1, smallTablePos:1, keyRatio:0.935
Statistics: Num rows: 5000 Data size: 2622552 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key1 is not null and value is not null and key2 is not null) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/multiMapJoin2.q.out b/ql/src/test/results/clientpositive/llap/multiMapJoin2.q.out
index bb084fb..70e4f08 100644
--- a/ql/src/test/results/clientpositive/llap/multiMapJoin2.q.out
+++ b/ql/src/test/results/clientpositive/llap/multiMapJoin2.q.out
@@ -38,6 +38,7 @@ STAGE PLANS:
TableScan
alias: x1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.004
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -68,6 +69,7 @@ STAGE PLANS:
TableScan
alias: x2
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_54_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.004
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -590,6 +592,7 @@ STAGE PLANS:
TableScan
alias: x2
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_35_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.004
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -1730,6 +1733,7 @@ STAGE PLANS:
TableScan
alias: x
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.336
Statistics: Num rows: 125 Data size: 10875 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -1868,6 +1872,7 @@ STAGE PLANS:
TableScan
alias: c
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_106_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -1919,6 +1924,7 @@ STAGE PLANS:
TableScan
alias: c
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_108_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/multi_join_union.q.out b/ql/src/test/results/clientpositive/llap/multi_join_union.q.out
index d67b4f7..b0bb0ef 100644
--- a/ql/src/test/results/clientpositive/llap/multi_join_union.q.out
+++ b/ql/src/test/results/clientpositive/llap/multi_join_union.q.out
@@ -85,6 +85,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -146,6 +147,7 @@ STAGE PLANS:
TableScan
alias: src13
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_54_container, bigKeyColName:value, smallTablePos:0, keyRatio:0.614
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: value is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/probedecode_mapjoin_keyexpr.q.out b/ql/src/test/results/clientpositive/llap/probedecode_mapjoin_keyexpr.q.out
new file mode 100644
index 0000000..c037dc8
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/probedecode_mapjoin_keyexpr.q.out
@@ -0,0 +1,260 @@
+PREHOOK: query: CREATE TABLE lineitem_trs (
+ l_orderkey BIGINT,
+ l_partkey BIGINT,
+ l_suppkey BIGINT,
+ l_linenumber INT,
+ l_quantity DECIMAL(12,2),
+ l_extendedprice DECIMAL(12,2),
+ l_discount DECIMAL(12,2),
+ l_tax DECIMAL(12,2),
+ l_returnflag STRING,
+ l_linestatus STRING,
+ l_shipdate STRING,
+ l_commitdate STRING,
+ l_receiptdate STRING,
+ l_shipinstruct STRING,
+ l_shipmode STRING,
+ l_comment STRING
+) STORED AS ORC
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@lineitem_trs
+POSTHOOK: query: CREATE TABLE lineitem_trs (
+ l_orderkey BIGINT,
+ l_partkey BIGINT,
+ l_suppkey BIGINT,
+ l_linenumber INT,
+ l_quantity DECIMAL(12,2),
+ l_extendedprice DECIMAL(12,2),
+ l_discount DECIMAL(12,2),
+ l_tax DECIMAL(12,2),
+ l_returnflag STRING,
+ l_linestatus STRING,
+ l_shipdate STRING,
+ l_commitdate STRING,
+ l_receiptdate STRING,
+ l_shipinstruct STRING,
+ l_shipmode STRING,
+ l_comment STRING
+) STORED AS ORC
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@lineitem_trs
+PREHOOK: query: CREATE TABLE unique_lineitem_stage (
+ l_orderkey STRING,
+ l_partkey BIGINT,
+ l_suppkey BIGINT,
+ l_linenumber INT,
+ l_quantity DECIMAL(12,2),
+ l_extendedprice DECIMAL(12,2),
+ l_discount DECIMAL(12,2),
+ l_tax DECIMAL(12,2),
+ l_returnflag STRING,
+ l_linestatus STRING,
+ l_shipdate STRING,
+ l_commitdate STRING,
+ l_receiptdate STRING,
+ l_shipinstruct STRING,
+ l_shipmode STRING,
+ l_comment STRING
+) STORED AS ORC
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@unique_lineitem_stage
+POSTHOOK: query: CREATE TABLE unique_lineitem_stage (
+ l_orderkey STRING,
+ l_partkey BIGINT,
+ l_suppkey BIGINT,
+ l_linenumber INT,
+ l_quantity DECIMAL(12,2),
+ l_extendedprice DECIMAL(12,2),
+ l_discount DECIMAL(12,2),
+ l_tax DECIMAL(12,2),
+ l_returnflag STRING,
+ l_linestatus STRING,
+ l_shipdate STRING,
+ l_commitdate STRING,
+ l_receiptdate STRING,
+ l_shipinstruct STRING,
+ l_shipmode STRING,
+ l_comment STRING
+) STORED AS ORC
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@unique_lineitem_stage
+WARNING: Comparing string and bigint may result in loss of information.
+PREHOOK: query: EXPLAIN VECTORIZATION DETAIL
+SELECT * FROM
+unique_lineitem_stage, lineitem_trs
+where unique_lineitem_stage.L_ORDERKEY = lineitem_trs.L_ORDERKEY
+PREHOOK: type: QUERY
+PREHOOK: Input: default@lineitem_trs
+PREHOOK: Input: default@unique_lineitem_stage
+#### A masked pattern was here ####
+POSTHOOK: query: EXPLAIN VECTORIZATION DETAIL
+SELECT * FROM
+unique_lineitem_stage, lineitem_trs
+where unique_lineitem_stage.L_ORDERKEY = lineitem_trs.L_ORDERKEY
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@lineitem_trs
+POSTHOOK: Input: default@unique_lineitem_stage
+#### A masked pattern was here ####
+PLAN VECTORIZATION:
+ enabled: true
+ enabledConditionsMet: [hive.vectorized.execution.enabled IS true]
+
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Map 1 <- Map 2 (BROADCAST_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: unique_lineitem_stage
+ filterExpr: UDFToDouble(l_orderkey) is not null (type: boolean)
+ Statistics: Num rows: 1 Data size: 2124 Basic stats: COMPLETE Column stats: NONE
+ TableScan Vectorization:
+ native: true
+ vectorizationSchemaColumns: [0:l_orderkey:string, 1:l_partkey:bigint, 2:l_suppkey:bigint, 3:l_linenumber:int, 4:l_quantity:decimal(12,2)/DECIMAL_64, 5:l_extendedprice:decimal(12,2)/DECIMAL_64, 6:l_discount:decimal(12,2)/DECIMAL_64, 7:l_tax:decimal(12,2)/DECIMAL_64, 8:l_returnflag:string, 9:l_linestatus:string, 10:l_shipdate:string, 11:l_commitdate:string, 12:l_receiptdate:string, 13:l_shipinstruct:string, 14:l_shipmode:string, 15:l_comment:string, 16:ROW__ID:struct< [...]
+ Filter Operator
+ Filter Vectorization:
+ className: VectorFilterOperator
+ native: true
+ predicateExpression: SelectColumnIsNotNull(col 17:double)(children: CastStringToDouble(col 0:string) -> 17:double)
+ predicate: UDFToDouble(l_orderkey) is not null (type: boolean)
+ Statistics: Num rows: 1 Data size: 2124 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: l_orderkey (type: string), l_partkey (type: bigint), l_suppkey (type: bigint), l_linenumber (type: int), l_quantity (type: decimal(12,2)), l_extendedprice (type: decimal(12,2)), l_discount (type: decimal(12,2)), l_tax (type: decimal(12,2)), l_returnflag (type: string), l_linestatus (type: string), l_shipdate (type: string), l_commitdate (type: string), l_receiptdate (type: string), l_shipinstruct (type: string), l_shipmode (type: string), l_comment (typ [...]
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18]
+ selectExpressions: CastStringToDouble(col 0:string) -> 18:double
+ Statistics: Num rows: 1 Data size: 2124 Basic stats: COMPLETE Column stats: NONE
+ Map Join Operator
+ condition map:
+ Inner Join 0 to 1
+ keys:
+ 0 _col16 (type: double)
+ 1 _col16 (type: double)
+ Map Join Vectorization:
+ bigTableKeyColumns: 18:double
+ bigTableRetainColumnNums: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
+ bigTableValueColumns: 0:string, 1:bigint, 2:bigint, 3:int, 4:decimal(12,2), 5:decimal(12,2), 6:decimal(12,2), 7:decimal(12,2), 8:string, 9:string, 10:string, 11:string, 12:string, 13:string, 14:string, 15:string
+ className: VectorMapJoinInnerMultiKeyOperator
+ native: true
+ nativeConditionsMet: hive.mapjoin.optimized.hashtable IS true, hive.vectorized.execution.mapjoin.native.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, One MapJoin Condition IS true, No nullsafe IS true, Small table vectorizes IS true, Optimized Table and Supports Key Types IS true
+ nonOuterSmallTableKeyMapping: []
+ projectedOutput: 0:string, 1:bigint, 2:bigint, 3:int, 4:decimal(12,2), 5:decimal(12,2), 6:decimal(12,2), 7:decimal(12,2), 8:string, 9:string, 10:string, 11:string, 12:string, 13:string, 14:string, 15:string, 19:bigint, 20:bigint, 21:bigint, 22:int, 23:decimal(12,2), 24:decimal(12,2), 25:decimal(12,2), 26:decimal(12,2), 27:string, 28:string, 29:string, 30:string, 31:string, 32:string, 33:string, 34:string
+ smallTableValueMapping: 19:bigint, 20:bigint, 21:bigint, 22:int, 23:decimal(12,2), 24:decimal(12,2), 25:decimal(12,2), 26:decimal(12,2), 27:string, 28:string, 29:string, 30:string, 31:string, 32:string, 33:string, 34:string
+ hashTableImplementationType: OPTIMIZED
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31, _col32
+ input vertices:
+ 1 Map 2
+ Statistics: Num rows: 1 Data size: 2336 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: string), _col1 (type: bigint), _col2 (type: bigint), _col3 (type: int), _col4 (type: decimal(12,2)), _col5 (type: decimal(12,2)), _col6 (type: decimal(12,2)), _col7 (type: decimal(12,2)), _col8 (type: string), _col9 (type: string), _col10 (type: string), _col11 (type: string), _col12 (type: string), _col13 (type: string), _col14 (type: string), _col15 (type: string), _col17 (type: bigint), _col18 (type: bigint), _col19 (type: bigint), _ [...]
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34]
+ Statistics: Num rows: 1 Data size: 2336 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ File Sink Vectorization:
+ className: VectorFileSinkOperator
+ native: false
+ Statistics: Num rows: 1 Data size: 2336 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Execution mode: vectorized, llap
+ LLAP IO: all inputs
+ Map Vectorization:
+ enabled: true
+ enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
+ inputFormatFeatureSupport: [DECIMAL_64]
+ featureSupportInUse: [DECIMAL_64]
+ inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ allNative: false
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 16
+ includeColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
+ dataColumns: l_orderkey:string, l_partkey:bigint, l_suppkey:bigint, l_linenumber:int, l_quantity:decimal(12,2)/DECIMAL_64, l_extendedprice:decimal(12,2)/DECIMAL_64, l_discount:decimal(12,2)/DECIMAL_64, l_tax:decimal(12,2)/DECIMAL_64, l_returnflag:string, l_linestatus:string, l_shipdate:string, l_commitdate:string, l_receiptdate:string, l_shipinstruct:string, l_shipmode:string, l_comment:string
+ partitionColumnCount: 0
+ scratchColumnTypeNames: [double, double, bigint, bigint, bigint, bigint, decimal(12,2), decimal(12,2), decimal(12,2), decimal(12,2), string, string, string, string, string, string, string, string]
+ Map 2
+ Map Operator Tree:
+ TableScan
+ alias: lineitem_trs
+ filterExpr: UDFToDouble(l_orderkey) is not null (type: boolean)
+ Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE Column stats: NONE
+ TableScan Vectorization:
+ native: true
+ vectorizationSchemaColumns: [0:l_orderkey:bigint, 1:l_partkey:bigint, 2:l_suppkey:bigint, 3:l_linenumber:int, 4:l_quantity:decimal(12,2)/DECIMAL_64, 5:l_extendedprice:decimal(12,2)/DECIMAL_64, 6:l_discount:decimal(12,2)/DECIMAL_64, 7:l_tax:decimal(12,2)/DECIMAL_64, 8:l_returnflag:string, 9:l_linestatus:string, 10:l_shipdate:string, 11:l_commitdate:string, 12:l_receiptdate:string, 13:l_shipinstruct:string, 14:l_shipmode:string, 15:l_comment:string, 16:ROW__ID:struct< [...]
+ Filter Operator
+ Filter Vectorization:
+ className: VectorFilterOperator
+ native: true
+ predicateExpression: SelectColumnIsNotNull(col 17:double)(children: CastLongToDouble(col 0:bigint) -> 17:double)
+ predicate: UDFToDouble(l_orderkey) is not null (type: boolean)
+ Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: l_orderkey (type: bigint), l_partkey (type: bigint), l_suppkey (type: bigint), l_linenumber (type: int), l_quantity (type: decimal(12,2)), l_extendedprice (type: decimal(12,2)), l_discount (type: decimal(12,2)), l_tax (type: decimal(12,2)), l_returnflag (type: string), l_linestatus (type: string), l_shipdate (type: string), l_commitdate (type: string), l_receiptdate (type: string), l_shipinstruct (type: string), l_shipmode (type: string), l_comment (typ [...]
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16
+ Select Vectorization:
+ className: VectorSelectOperator
+ native: true
+ projectedOutputColumnNums: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18]
+ selectExpressions: CastLongToDouble(col 0:bigint) -> 18:double
+ Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col16 (type: double)
+ null sort order: z
+ sort order: +
+ Map-reduce partition columns: _col16 (type: double)
+ Reduce Sink Vectorization:
+ className: VectorReduceSinkMultiKeyOperator
+ keyColumns: 18:double
+ native: true
+ nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
+ valueColumns: 0:bigint, 1:bigint, 2:bigint, 3:int, 4:decimal(12,2), 5:decimal(12,2), 6:decimal(12,2), 7:decimal(12,2), 8:string, 9:string, 10:string, 11:string, 12:string, 13:string, 14:string, 15:string
+ Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: bigint), _col3 (type: int), _col4 (type: decimal(12,2)), _col5 (type: decimal(12,2)), _col6 (type: decimal(12,2)), _col7 (type: decimal(12,2)), _col8 (type: string), _col9 (type: string), _col10 (type: string), _col11 (type: string), _col12 (type: string), _col13 (type: string), _col14 (type: string), _col15 (type: string)
+ Execution mode: vectorized, llap
+ LLAP IO: all inputs
+ Map Vectorization:
+ enabled: true
+ enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true
+ inputFormatFeatureSupport: [DECIMAL_64]
+ featureSupportInUse: [DECIMAL_64]
+ inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ allNative: true
+ usesVectorUDFAdaptor: false
+ vectorized: true
+ rowBatchContext:
+ dataColumnCount: 16
+ includeColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
+ dataColumns: l_orderkey:bigint, l_partkey:bigint, l_suppkey:bigint, l_linenumber:int, l_quantity:decimal(12,2)/DECIMAL_64, l_extendedprice:decimal(12,2)/DECIMAL_64, l_discount:decimal(12,2)/DECIMAL_64, l_tax:decimal(12,2)/DECIMAL_64, l_returnflag:string, l_linestatus:string, l_shipdate:string, l_commitdate:string, l_receiptdate:string, l_shipinstruct:string, l_shipmode:string, l_comment:string
+ partitionColumnCount: 0
+ scratchColumnTypeNames: [double, double]
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin1.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin1.q.out
index bcb581c..5766874 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin1.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin1.q.out
@@ -63,6 +63,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
@@ -268,6 +269,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 184 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin11.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin11.q.out
index cda4284..79df03b 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin11.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin11.q.out
@@ -63,6 +63,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin2.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin2.q.out
index 23c0b3c..8a3b37d 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin2.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin2.q.out
@@ -63,6 +63,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin3.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin3.q.out
index 64c5131..1b2d686 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin3.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin3.q.out
@@ -63,6 +63,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin4.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin4.q.out
index e229fd7..6ac4238 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin4.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin4.q.out
@@ -81,6 +81,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_48_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin5.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin5.q.out
index 58be742..50068e2 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin5.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin5.q.out
@@ -74,6 +74,7 @@ STAGE PLANS:
TableScan
alias: t1_n87
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:1, keyRatio:2.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin6.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin6.q.out
index 0ecb5f5..6e5ac17 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin6.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin6.q.out
@@ -82,6 +82,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:0, keyRatio:6.0
Statistics: Num rows: 6 Data size: 12624 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin7.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin7.q.out
index 315bf4c..08ffb57 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin7.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin7.q.out
@@ -73,6 +73,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_51_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
@@ -109,6 +110,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_52_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin8.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin8.q.out
index 1fe251b..16a7d0a 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin8.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin8.q.out
@@ -85,6 +85,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: (key is not null and val is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_45_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key is not null and val is not null) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin9.q.out b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin9.q.out
index 5b3b4d1..18cf483 100644
--- a/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin9.q.out
+++ b/ql/src/test/results/clientpositive/llap/skewjoin_mapjoin9.q.out
@@ -87,6 +87,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: (key is not null and val is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_45_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key is not null and val is not null) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/subq_where_serialization.q.out b/ql/src/test/results/clientpositive/llap/subq_where_serialization.q.out
index c1b777f..f1ed530 100644
--- a/ql/src/test/results/clientpositive/llap/subq_where_serialization.q.out
+++ b/ql/src/test/results/clientpositive/llap/subq_where_serialization.q.out
@@ -23,6 +23,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/subquery_in_having.q.out b/ql/src/test/results/clientpositive/llap/subquery_in_having.q.out
index e72269c..cd819bb 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_in_having.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_in_having.q.out
@@ -814,6 +814,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: (key > '8') (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.21
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (key > '8') (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out b/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out
index e842001..2161b86 100644
--- a/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out
+++ b/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out
@@ -256,6 +256,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: cnctevn_id is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:cnctevn_id, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 1 Data size: 4944 Basic stats: COMPLETE Column stats: NONE
GatherStats: false
Filter Operator
@@ -1237,6 +1238,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: cnctevn_id is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:cnctevn_id, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 1 Data size: 4944 Basic stats: COMPLETE Column stats: NONE
GatherStats: false
Filter Operator
diff --git a/ql/src/test/results/clientpositive/llap/tez_smb_main.q.out b/ql/src/test/results/clientpositive/llap/tez_smb_main.q.out
index 1905b1d..701ae63 100644
--- a/ql/src/test/results/clientpositive/llap/tez_smb_main.q.out
+++ b/ql/src/test/results/clientpositive/llap/tez_smb_main.q.out
@@ -818,6 +818,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: (key is not null and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:value, smallTablePos:1, keyRatio:1.0991735537190082
Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key is not null and value is not null) (type: boolean)
@@ -1403,6 +1404,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:value, smallTablePos:0, keyRatio:1.1
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: value is not null (type: boolean)
@@ -1508,6 +1510,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: value is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:value, smallTablePos:0, keyRatio:1.1
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: value is not null (type: boolean)
@@ -1610,6 +1613,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: (key is not null and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:value, smallTablePos:1, keyRatio:1.0991735537190082
Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key is not null and value is not null) (type: boolean)
@@ -1750,6 +1754,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: (key is not null and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:value, smallTablePos:1, keyRatio:1.0991735537190082
Statistics: Num rows: 242 Data size: 2566 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: (key is not null and value is not null) (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/tez_union.q.out b/ql/src/test/results/clientpositive/llap/tez_union.q.out
index 09c3e3d..422e878 100644
--- a/ql/src/test/results/clientpositive/llap/tez_union.q.out
+++ b/ql/src/test/results/clientpositive/llap/tez_union.q.out
@@ -30,6 +30,7 @@ STAGE PLANS:
TableScan
alias: s1
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -412,6 +413,7 @@ STAGE PLANS:
TableScan
alias: src
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -578,6 +580,7 @@ STAGE PLANS:
TableScan
alias: s2
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_140_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -633,6 +636,7 @@ STAGE PLANS:
TableScan
alias: s6
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_142_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -688,6 +692,7 @@ STAGE PLANS:
TableScan
alias: s4
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_141_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -1052,6 +1057,7 @@ STAGE PLANS:
TableScan
alias: s2
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_51_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
@@ -1084,6 +1090,7 @@ STAGE PLANS:
TableScan
alias: s4
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_52_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/union34.q.out b/ql/src/test/results/clientpositive/llap/union34.q.out
index 46a224b..0ab9e97 100644
--- a/ql/src/test/results/clientpositive/llap/union34.q.out
+++ b/ql/src/test/results/clientpositive/llap/union34.q.out
@@ -103,6 +103,7 @@ STAGE PLANS:
TableScan
alias: src10_1_n0
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_31_container, bigKeyColName:key, smallTablePos:1, keyRatio:1.0
Statistics: Num rows: 10 Data size: 1780 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/union_remove_12.q.out b/ql/src/test/results/clientpositive/llap/union_remove_12.q.out
index 3930bd6..5dd9d29 100644
--- a/ql/src/test/results/clientpositive/llap/union_remove_12.q.out
+++ b/ql/src/test/results/clientpositive/llap/union_remove_12.q.out
@@ -96,6 +96,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/union_remove_13.q.out b/ql/src/test/results/clientpositive/llap/union_remove_13.q.out
index e28bc51..2c8adf0 100644
--- a/ql/src/test/results/clientpositive/llap/union_remove_13.q.out
+++ b/ql/src/test/results/clientpositive/llap/union_remove_13.q.out
@@ -103,6 +103,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_37_container, bigKeyColName:key, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/union_remove_14.q.out b/ql/src/test/results/clientpositive/llap/union_remove_14.q.out
index b11c9eb..861cf11 100644
--- a/ql/src/test/results/clientpositive/llap/union_remove_14.q.out
+++ b/ql/src/test/results/clientpositive/llap/union_remove_14.q.out
@@ -96,6 +96,7 @@ STAGE PLANS:
TableScan
alias: b
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_33_container, bigKeyColName:key, smallTablePos:0, keyRatio:1.0
Statistics: Num rows: 1 Data size: 368 Basic stats: COMPLETE Column stats: NONE
Filter Operator
predicate: key is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/vector_inner_join.q.out b/ql/src/test/results/clientpositive/llap/vector_inner_join.q.out
index 6afde97..6097a6c 100644
--- a/ql/src/test/results/clientpositive/llap/vector_inner_join.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_inner_join.q.out
@@ -695,7 +695,7 @@ STAGE PLANS:
TableScan
alias: t2
filterExpr: (c > 2) (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:v1, smallTablePos:0, keyRatio:0.4
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:c, smallTablePos:0, keyRatio:0.4
Statistics: Num rows: 5 Data size: 460 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
@@ -1413,7 +1413,7 @@ STAGE PLANS:
TableScan
alias: t2
filterExpr: (c > 2) (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:v1, smallTablePos:0, keyRatio:0.4
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:c, smallTablePos:0, keyRatio:0.4
Statistics: Num rows: 5 Data size: 460 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
@@ -1594,7 +1594,7 @@ STAGE PLANS:
TableScan
alias: t2
filterExpr: (c > 2) (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:v1, smallTablePos:0, keyRatio:0.4
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_25_container, bigKeyColName:c, smallTablePos:0, keyRatio:0.4
Statistics: Num rows: 5 Data size: 460 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
diff --git a/ql/src/test/results/clientpositive/llap/vector_join30.q.out b/ql/src/test/results/clientpositive/llap/vector_join30.q.out
index 33e7680..c91af4a 100644
--- a/ql/src/test/results/clientpositive/llap/vector_join30.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_join30.q.out
@@ -104,6 +104,7 @@ STAGE PLANS:
TableScan
alias: orcsrc_n0
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_30_container, bigKeyColName:key, smallTablePos:0, keyRatio:1.582
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
@@ -926,6 +927,7 @@ STAGE PLANS:
TableScan
alias: orcsrc_n0
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_53_container, bigKeyColName:key, smallTablePos:1, keyRatio:0.632
Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
@@ -2198,6 +2200,7 @@ STAGE PLANS:
TableScan
alias: orcsrc_n0
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_43_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
@@ -2445,6 +2448,7 @@ STAGE PLANS:
TableScan
alias: orcsrc_n0
filterExpr: key is not null (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_35_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.632
Statistics: Num rows: 500 Data size: 89000 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
diff --git a/ql/src/test/results/clientpositive/llap/vector_leftsemi_mapjoin.q.out b/ql/src/test/results/clientpositive/llap/vector_leftsemi_mapjoin.q.out
index d58a1d9..d683186 100644
--- a/ql/src/test/results/clientpositive/llap/vector_leftsemi_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_leftsemi_mapjoin.q.out
@@ -3365,6 +3365,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: ((key > 100) and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:value, smallTablePos:1, keyRatio:0.045454545454545456
Statistics: Num rows: 22 Data size: 2046 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: ((key > 100) and value is not null) (type: boolean)
@@ -6472,6 +6473,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: ((key > 100) and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:value, smallTablePos:1, keyRatio:0.045454545454545456
Statistics: Num rows: 22 Data size: 2046 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: ((key > 100) and value is not null) (type: boolean)
@@ -14370,6 +14372,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: ((key > 100) and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:value, smallTablePos:1, keyRatio:0.045454545454545456
Statistics: Num rows: 22 Data size: 2046 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
@@ -19055,6 +19058,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: ((key > 100) and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:value, smallTablePos:1, keyRatio:0.045454545454545456
Statistics: Num rows: 22 Data size: 2046 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
@@ -23764,6 +23768,7 @@ STAGE PLANS:
TableScan
alias: a
filterExpr: ((key > 100) and value is not null) (type: boolean)
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:value, smallTablePos:1, keyRatio:0.045454545454545456
Statistics: Num rows: 22 Data size: 2046 Basic stats: COMPLETE Column stats: COMPLETE
TableScan Vectorization:
native: true
diff --git a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query11.q.out b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query11.q.out
index bec43ec..76132b3 100644
--- a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query11.q.out
+++ b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query11.q.out
@@ -252,7 +252,7 @@ STAGE PLANS:
Map Operator Tree:
TableScan
alias: customer
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_302_container, bigKeyColName:$f00, smallTablePos:0, keyRatio:0.1111111125
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_302_container, bigKeyColName:c_customer_id, smallTablePos:0, keyRatio:0.1111111125
Statistics: Num rows: 80000000 Data size: 29760000000 Basic stats: COMPLETE Column stats: COMPLETE
Select Operator
expressions: c_customer_id (type: char(16)), c_first_name (type: char(20)), c_last_name (type: char(30)), c_birth_country (type: varchar(20))
diff --git a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query24.q.out b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query24.q.out
index ce4999b..532ae3f 100644
--- a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query24.q.out
+++ b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query24.q.out
@@ -47,7 +47,7 @@ STAGE PLANS:
TableScan
alias: customer
filterExpr: c_current_addr_sk is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_323_container, bigKeyColName:ca_state, smallTablePos:0, keyRatio:0.0997652625
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_323_container, bigKeyColName:c_current_addr_sk, smallTablePos:0, keyRatio:0.0997652625
Statistics: Num rows: 80000000 Data size: 23040000000 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: c_current_addr_sk is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query4.q.out b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query4.q.out
index 4711beb..3ec8ddd 100644
--- a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query4.q.out
+++ b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query4.q.out
@@ -429,7 +429,7 @@ STAGE PLANS:
Map Operator Tree:
TableScan
alias: customer
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_486_container, bigKeyColName:$f00, smallTablePos:0, keyRatio:0.083333325
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_486_container, bigKeyColName:c_customer_id, smallTablePos:0, keyRatio:0.083333325
Statistics: Num rows: 80000000 Data size: 29760000000 Basic stats: COMPLETE Column stats: COMPLETE
Select Operator
expressions: c_customer_id (type: char(16)), c_first_name (type: char(20)), c_last_name (type: char(30)), c_birth_country (type: varchar(20))
diff --git a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query5.q.out b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query5.q.out
index 5affbf5..c29a723 100644
--- a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query5.q.out
+++ b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query5.q.out
@@ -25,7 +25,7 @@ STAGE PLANS:
TableScan
alias: store_sales
filterExpr: ss_store_sk is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_231_container, bigKeyColName:store_sk, smallTablePos:1, keyRatio:1.0756178660512734
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_231_container, bigKeyColName:ss_store_sk, smallTablePos:1, keyRatio:1.0756178660512734
Statistics: Num rows: 82510879939 Data size: 19351122693824 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: ss_store_sk is not null (type: boolean)
@@ -149,7 +149,7 @@ STAGE PLANS:
TableScan
alias: web_sales
filterExpr: ws_web_site_sk is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_235_container, bigKeyColName:wsr_web_site_sk, smallTablePos:1, keyRatio:2.1438795429601423
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_235_container, bigKeyColName:ws_web_site_sk, smallTablePos:1, keyRatio:2.1438795429601423
Statistics: Num rows: 21594638446 Data size: 5182388988880 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: ws_web_site_sk is not null (type: boolean)
@@ -485,7 +485,7 @@ STAGE PLANS:
TableScan
alias: catalog_sales
filterExpr: cs_catalog_page_sk is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_233_container, bigKeyColName:page_sk, smallTablePos:1, keyRatio:1.0959547352990346
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_233_container, bigKeyColName:cs_catalog_page_sk, smallTablePos:1, keyRatio:1.0959547352990346
Statistics: Num rows: 43005109025 Data size: 10308315074584 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: cs_catalog_page_sk is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query54.q.out b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query54.q.out
index c9bf8bd..d9ab6ce 100644
--- a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query54.q.out
+++ b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query54.q.out
@@ -188,7 +188,7 @@ STAGE PLANS:
TableScan
alias: catalog_sales
filterExpr: cs_bill_customer_sk is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_289_container, bigKeyColName:item_sk, smallTablePos:1, keyRatio:2.3199545882327872E-5
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_289_container, bigKeyColName:cs_item_sk, smallTablePos:1, keyRatio:2.3199545882327872E-5
Statistics: Num rows: 43005109025 Data size: 1031276889552 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: cs_bill_customer_sk is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query59.q.out b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query59.q.out
index e70150c..558120c 100644
--- a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query59.q.out
+++ b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query59.q.out
@@ -21,6 +21,7 @@ STAGE PLANS:
Map Operator Tree:
TableScan
alias: store
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_162_container, bigKeyColName:s_store_id, smallTablePos:1, keyRatio:0.5158450704225352
Statistics: Num rows: 1704 Data size: 333984 Basic stats: COMPLETE Column stats: COMPLETE
Select Operator
expressions: s_store_sk (type: bigint), s_store_id (type: string), s_store_name (type: varchar(50))
diff --git a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query71.q.out b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query71.q.out
index 038c9fe..5320320 100644
--- a/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query71.q.out
+++ b/ql/src/test/results/clientpositive/perf/tpcds30tb/tez/query71.q.out
@@ -22,7 +22,7 @@ STAGE PLANS:
TableScan
alias: web_sales
filterExpr: ws_sold_time_sk is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_119_container, bigKeyColName:time_sk, smallTablePos:1, keyRatio:4.3992401279400425E-9
+ probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_119_container, bigKeyColName:ws_sold_time_sk, smallTablePos:1, keyRatio:4.3992401279400425E-9
Statistics: Num rows: 21594638446 Data size: 2936546600912 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: ws_sold_time_sk is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/tez/hybridgrace_hashjoin_1.q.out b/ql/src/test/results/clientpositive/tez/hybridgrace_hashjoin_1.q.out
index 586a0b6..34f63b3 100644
--- a/ql/src/test/results/clientpositive/tez/hybridgrace_hashjoin_1.q.out
+++ b/ql/src/test/results/clientpositive/tez/hybridgrace_hashjoin_1.q.out
@@ -45,7 +45,6 @@ STAGE PLANS:
TableScan
alias: c
filterExpr: (cint < 2000000000) (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:cint, smallTablePos:1, keyRatio:2.0131022135416665
Statistics: Num rows: 12288 Data size: 36696 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (cint < 2000000000) (type: boolean)
@@ -174,7 +173,6 @@ STAGE PLANS:
TableScan
alias: c
filterExpr: (cint < 2000000000) (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:cint, smallTablePos:1, keyRatio:2.0131022135416665
Statistics: Num rows: 12288 Data size: 36696 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: (cint < 2000000000) (type: boolean)
@@ -302,7 +300,6 @@ STAGE PLANS:
TableScan
alias: c
filterExpr: cint is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:cint, smallTablePos:1, keyRatio:1.121826171875
Statistics: Num rows: 12288 Data size: 36696 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: cint is not null (type: boolean)
@@ -427,7 +424,6 @@ STAGE PLANS:
TableScan
alias: c
filterExpr: cint is not null (type: boolean)
- probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:cint, smallTablePos:1, keyRatio:1.121826171875
Statistics: Num rows: 12288 Data size: 36696 Basic stats: COMPLETE Column stats: COMPLETE
Filter Operator
predicate: cint is not null (type: boolean)