diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java index b229f5e..a7afa33 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java @@ -124,7 +124,7 @@ protected void initializeOp(Configuration hconf) throws HiveException { if (valueIndex == null) { return super.getValueObjectInspectors(alias, aliasToObjectInspectors); } - unwrapContainer[alias] = new UnwrapRowContainer(valueIndex); + unwrapContainer[alias] = new UnwrapRowContainer(alias, valueIndex); List inspectors = aliasToObjectInspectors[alias]; @@ -265,11 +265,11 @@ public void processOp(Object row, int tag) throws HiveException { } MapJoinRowContainer rowContainer = adaptor.getCurrentRows(); if (rowContainer != null && unwrapContainer[pos] != null) { - Object[] currentKey = adaptor.getCurrentKey(); + Object[] currentKey = firstSetKey.getCurrentKey(); rowContainer = unwrapContainer[pos].setInternal(rowContainer, currentKey); } // there is no join-value or join-key has all null elements - if (rowContainer == null || adaptor.hasAnyNulls(fieldCount, nullsafes)) { + if (rowContainer == null || firstSetKey.hasAnyNulls(fieldCount, nullsafes)) { if (!noOuterJoin) { joinNeeded = true; storage[pos] = dummyObjVectors[pos]; diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/UnwrapRowContainer.java ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/UnwrapRowContainer.java index d59f103..5e474c5 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/UnwrapRowContainer.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/UnwrapRowContainer.java @@ -24,12 +24,17 @@ import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +/** + * Unwraps values from current key with value valueIndex in mapjoin desc + */ public class UnwrapRowContainer implements MapJoinRowContainer, AbstractRowContainer.RowIterator> { - private final int[] index; + private final byte alias; + private final int[] valueIndex; private final List unwrapped; private transient Object[] currentKey; @@ -37,9 +42,10 @@ private transient RowIterator> iterator; - public UnwrapRowContainer(int[] valueIndex) { - index = valueIndex; - unwrapped = new ArrayList(); + public UnwrapRowContainer(byte alias, int[] valueIndex) { + this.alias = alias; + this.valueIndex = valueIndex; + this.unwrapped = new ArrayList(); } public MapJoinRowContainer setInternal(MapJoinRowContainer internal, Object[] currentKey) { @@ -64,11 +70,11 @@ public MapJoinRowContainer setInternal(MapJoinRowContainer internal, Object[] cu return null; } unwrapped.clear(); - for (int i = 0; i < index.length; i++) { - if (index[i] >= 0) { - unwrapped.add(currentKey[index[i]]); + for (int index : valueIndex) { + if (index >= 0) { + unwrapped.add(currentKey == null ? null : currentKey[index]); } else { - int vindex = -index[i] - 1; + int vindex = -index - 1; if (vindex < values.size()) { unwrapped.add(values.get(vindex)); } @@ -118,4 +124,9 @@ public void write(MapJoinObjectSerDeContext valueContext, ObjectOutputStream out throws IOException, SerDeException { internal.write(valueContext, out); } + + @Override + public String toString() { + return alias + Arrays.toString(valueIndex); + } } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java index ba65c13..d42e1f7 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java @@ -358,7 +358,7 @@ public MapJoinOperator convertJoinMapJoin(JoinOperator joinOp, OptimizeTezProcCo ParseContext parseContext = context.parseContext; MapJoinOperator mapJoinOp = MapJoinProcessor. convertJoinOpMapJoinOp(context.conf, parseContext.getOpParseCtx(), - joinOp, parseContext.getJoinContext().get(joinOp), bigTablePosition, true, true); + joinOp, parseContext.getJoinContext().get(joinOp), bigTablePosition, true); Operator parentBigTableOp = mapJoinOp.getParentOperators().get(bigTablePosition); diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java index ffd42f1..4dfb66e 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java @@ -223,7 +223,7 @@ private static void genMapJoinLocalWork(MapredWork newWork, MapJoinOperator mapJ * @param newWork MapredWork in which the conversion is to happen * @param op * The join operator that needs to be converted to map-join - * @param bigTablePos + * @param mapJoinPos * @throws SemanticException */ public static void genMapJoinOpAndLocalWork(HiveConf conf, MapredWork newWork, @@ -362,7 +362,7 @@ public static MapJoinOperator convertMapJoin(HiveConf conf, // create the map-join operator MapJoinOperator mapJoinOp = convertJoinOpMapJoinOp(conf, opParseCtxMap, - op, joinTree, mapJoinPos, noCheckOuterJoin, false); + op, joinTree, mapJoinPos, noCheckOuterJoin); // remove old parents @@ -384,10 +384,10 @@ public static MapJoinOperator convertMapJoin(HiveConf conf, return mapJoinOp; } - public static MapJoinOperator convertJoinOpMapJoinOp(HiveConf hconf, + static MapJoinOperator convertJoinOpMapJoinOp(HiveConf hconf, LinkedHashMap, OpParseContext> opParseCtxMap, - JoinOperator op, QBJoinTree joinTree, int mapJoinPos, boolean noCheckOuterJoin, - boolean tezJoin) throws SemanticException { + JoinOperator op, QBJoinTree joinTree, int mapJoinPos, boolean noCheckOuterJoin) + throws SemanticException { JoinDesc desc = op.getConf(); JoinCondDesc[] condns = desc.getConds(); @@ -463,9 +463,9 @@ public static MapJoinOperator convertJoinOpMapJoinOp(HiveConf hconf, ReduceSinkOperator inputRS = oldReduceSinkParentOps.get(pos); List keyCols = inputRS.getConf().getKeyCols(); List valueCols = newValueExprs.get(pos); - // remove values referencing key - // todo: currently, mr-mapjoin stores whole value exprs of join operator, which may contain key - if (tezJoin && pos != mapJoinPos) { + if (pos != mapJoinPos) { + // remove values in key exprs for value table schema + // value expression for hashsink will be modified in LocalMapJoinProcessor int[] valueIndex = new int[valueCols.size()]; List valueColsInValueExpr = new ArrayList(); for (int i = 0; i < valueIndex.length; i++) { @@ -792,7 +792,7 @@ private void genSelectPlan(ParseContext pctx, MapJoinOperator input) throws Sema * * @param op * join operator - * @param qbJoin + * @param joinTree * qb join tree * @return -1 if it cannot be converted to a map-side join, position of the map join node * otherwise diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LocalMapJoinProcFactory.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LocalMapJoinProcFactory.java index 4019320..9076d48 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LocalMapJoinProcFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LocalMapJoinProcFactory.java @@ -46,8 +46,10 @@ import org.apache.hadoop.hive.ql.lib.RuleRegExp; import org.apache.hadoop.hive.ql.optimizer.physical.MapJoinResolver.LocalMapJoinProcCtx; import org.apache.hadoop.hive.ql.parse.SemanticException; +import org.apache.hadoop.hive.ql.plan.ExprNodeDesc; import org.apache.hadoop.hive.ql.plan.HashTableDummyDesc; import org.apache.hadoop.hive.ql.plan.HashTableSinkDesc; +import org.apache.hadoop.hive.ql.plan.MapJoinDesc; import org.apache.hadoop.hive.ql.plan.OperatorDesc; import org.apache.hadoop.hive.ql.plan.PlanUtils; import org.apache.hadoop.hive.ql.plan.TableDesc; @@ -118,15 +120,12 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx ctx, Object.. e.printStackTrace(); } + MapJoinDesc mapJoinDesc = mapJoinOp.getConf(); + // mapjoin should not affected by join reordering - mapJoinOp.getConf().resetOrder(); + mapJoinDesc.resetOrder(); HiveConf conf = context.getParseCtx().getConf(); - - HashTableSinkDesc hashTableSinkDesc = new HashTableSinkDesc(mapJoinOp.getConf()); - HashTableSinkOperator hashTableSinkOp = (HashTableSinkOperator) OperatorFactory - .get(hashTableSinkDesc); - // set hashtable memory usage float hashtableMemoryUsage; if (context.isFollowedByGroupBy()) { @@ -136,14 +135,16 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx ctx, Object.. hashtableMemoryUsage = conf.getFloatVar( HiveConf.ConfVars.HIVEHASHTABLEMAXMEMORYUSAGE); } - mapJoinOp.getConf().setHashTableMemoryUsage(hashtableMemoryUsage); + mapJoinDesc.setHashTableMemoryUsage(hashtableMemoryUsage); LOG.info("Setting max memory usage to " + hashtableMemoryUsage + " for table sink " + (context.isFollowedByGroupBy() ? "" : "not") + " followed by group by"); - hashTableSinkOp.getConf().setHashtableMemoryUsage(hashtableMemoryUsage); + + HashTableSinkDesc hashTableSinkDesc = new HashTableSinkDesc(mapJoinDesc); + HashTableSinkOperator hashTableSinkOp = (HashTableSinkOperator) OperatorFactory + .get(hashTableSinkDesc); // get the last operator for processing big tables - int bigTable = mapJoinOp.getConf().getPosBigTable(); - Byte[] orders = mapJoinOp.getConf().getTagOrder(); + int bigTable = mapJoinDesc.getPosBigTable(); // todo: support tez/vectorization boolean useNontaged = conf.getBoolVar( @@ -160,7 +161,7 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx ctx, Object.. new ArrayList>(); // get all parents List> parentsOp = mapJoinOp.getParentOperators(); - for (int i = 0; i < parentsOp.size(); i++) { + for (byte i = 0; i < parentsOp.size(); i++) { if (i == bigTable) { smallTablesParentOp.add(null); directOperators.add(null); @@ -173,13 +174,26 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx ctx, Object.. // no filter, no projection. no need to stage smallTablesParentOp.add(null); directOperators.add(parent); - hashTableSinkDesc.getKeys().put(orders[i], null); - hashTableSinkDesc.getExprs().put(orders[i], null); - hashTableSinkDesc.getFilters().put(orders[i], null); + hashTableSinkDesc.getKeys().put(i, null); + hashTableSinkDesc.getExprs().put(i, null); + hashTableSinkDesc.getFilters().put(i, null); } else { // keep the parent id correct smallTablesParentOp.add(parent); directOperators.add(null); + int[] valueIndex = mapJoinDesc.getValueIndex(i); + if (valueIndex != null) { + // remove values in key exprs + // schema for value is already fixed in MapJoinProcessor#convertJoinOpMapJoinOp + List newValues = new ArrayList(); + List values = hashTableSinkDesc.getExprs().get(i); + for (int index = 0; index < values.size(); index++) { + if (valueIndex[index] < 0) { + newValues.add(values.get(index)); + } + } + hashTableSinkDesc.getExprs().put(i, newValues); + } } // let hashtable Op be the child of this parent parent.replaceChild(mapJoinOp, hashTableSinkOp); @@ -187,7 +201,7 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx ctx, Object.. parent.setChildOperators(null); } - // create an new operator: HashTable DummyOpeator, which share the table desc + // create new operator: HashTable DummyOperator, which share the table desc HashTableDummyDesc desc = new HashTableDummyDesc(); HashTableDummyOperator dummyOp = (HashTableDummyOperator) OperatorFactory.get(desc); TableDesc tbl; diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 1902bfd..6cdaedb 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -24,7 +24,6 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; diff --git ql/src/test/results/clientpositive/auto_join1.q.out ql/src/test/results/clientpositive/auto_join1.q.out index f121f48..0e1a610 100644 --- ql/src/test/results/clientpositive/auto_join1.q.out +++ ql/src/test/results/clientpositive/auto_join1.q.out @@ -33,7 +33,7 @@ STAGE PLANS: Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {value} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/auto_join11.q.out ql/src/test/results/clientpositive/auto_join11.q.out index fbfe3b2..9407838 100644 --- ql/src/test/results/clientpositive/auto_join11.q.out +++ ql/src/test/results/clientpositive/auto_join11.q.out @@ -40,7 +40,7 @@ STAGE PLANS: Statistics: Num rows: 19 Data size: 1903 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {_col0} + 0 1 {_col1} keys: 0 _col0 (type: string) diff --git ql/src/test/results/clientpositive/auto_join12.q.out ql/src/test/results/clientpositive/auto_join12.q.out index 8a1dd3c..3866659 100644 --- ql/src/test/results/clientpositive/auto_join12.q.out +++ ql/src/test/results/clientpositive/auto_join12.q.out @@ -49,7 +49,7 @@ STAGE PLANS: Statistics: Num rows: 6 Data size: 601 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {_col0} + 0 1 {_col1} 2 keys: @@ -69,7 +69,7 @@ STAGE PLANS: Statistics: Num rows: 3 Data size: 601 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {_col0} + 0 1 {_col1} 2 keys: diff --git ql/src/test/results/clientpositive/auto_join13.q.out ql/src/test/results/clientpositive/auto_join13.q.out index d8cea78..61cdda0 100644 --- ql/src/test/results/clientpositive/auto_join13.q.out +++ ql/src/test/results/clientpositive/auto_join13.q.out @@ -49,7 +49,7 @@ STAGE PLANS: Statistics: Num rows: 19 Data size: 1903 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {_col0} + 0 1 {_col0} {_col1} keys: 0 _col0 (type: string) diff --git ql/src/test/results/clientpositive/auto_join14.q.out ql/src/test/results/clientpositive/auto_join14.q.out index 55596d3..ad8760f 100644 --- ql/src/test/results/clientpositive/auto_join14.q.out +++ ql/src/test/results/clientpositive/auto_join14.q.out @@ -40,7 +40,7 @@ STAGE PLANS: Statistics: Num rows: 19 Data size: 1903 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {value} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/auto_join15.q.out ql/src/test/results/clientpositive/auto_join15.q.out index 3b1add6..60b0a1d 100644 --- ql/src/test/results/clientpositive/auto_join15.q.out +++ ql/src/test/results/clientpositive/auto_join15.q.out @@ -34,7 +34,7 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {key} {value} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/auto_join16.q.out ql/src/test/results/clientpositive/auto_join16.q.out index 1f49e40..2880a2a 100644 --- ql/src/test/results/clientpositive/auto_join16.q.out +++ ql/src/test/results/clientpositive/auto_join16.q.out @@ -40,7 +40,7 @@ STAGE PLANS: Statistics: Num rows: 1 Data size: 200 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {_col0} + 0 1 {value} keys: 0 _col0 (type: string), _col1 (type: string) diff --git ql/src/test/results/clientpositive/auto_join17.q.out ql/src/test/results/clientpositive/auto_join17.q.out index 8ccfbab..869c3b6 100644 --- ql/src/test/results/clientpositive/auto_join17.q.out +++ ql/src/test/results/clientpositive/auto_join17.q.out @@ -33,7 +33,7 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {key} {value} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/auto_join2.q.out ql/src/test/results/clientpositive/auto_join2.q.out index 0617f04..fda4daf 100644 --- ql/src/test/results/clientpositive/auto_join2.q.out +++ ql/src/test/results/clientpositive/auto_join2.q.out @@ -36,7 +36,7 @@ STAGE PLANS: Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {key} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/auto_join22.q.out ql/src/test/results/clientpositive/auto_join22.q.out index 170c526..d85806f 100644 --- ql/src/test/results/clientpositive/auto_join22.q.out +++ ql/src/test/results/clientpositive/auto_join22.q.out @@ -26,7 +26,7 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/auto_join26.q.out ql/src/test/results/clientpositive/auto_join26.q.out index 8d8a6b1..d55de11 100644 --- ql/src/test/results/clientpositive/auto_join26.q.out +++ ql/src/test/results/clientpositive/auto_join26.q.out @@ -37,7 +37,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/auto_join28.q.out ql/src/test/results/clientpositive/auto_join28.q.out index 1ffee18..4ad15ca 100644 --- ql/src/test/results/clientpositive/auto_join28.q.out +++ ql/src/test/results/clientpositive/auto_join28.q.out @@ -26,8 +26,8 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} - 1 {key} {value} + 0 {key} + 1 {key} 2 {key} {value} filter predicates: 0 {(key < 10)} @@ -46,8 +46,8 @@ STAGE PLANS: Statistics: Num rows: 9 Data size: 1803 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} - 1 {key} {value} + 0 {key} + 1 {key} 2 {key} {value} filter predicates: 0 {(key < 10)} @@ -143,8 +143,8 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} - 2 {key} {value} + 1 {key} + 2 {key} filter predicates: 0 {(key < 10)} 1 @@ -163,8 +163,8 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} - 2 {key} {value} + 1 {key} + 2 {key} filter predicates: 0 {(key < 10)} 1 @@ -258,9 +258,9 @@ STAGE PLANS: Statistics: Num rows: 9 Data size: 1803 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {key} 1 {key} {value} - 2 {key} {value} + 2 {key} filter predicates: 0 1 {(key > 10)} @@ -278,9 +278,9 @@ STAGE PLANS: Statistics: Num rows: 9 Data size: 1803 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {key} 1 {key} {value} - 2 {key} {value} + 2 {key} filter predicates: 0 1 {(key > 10)} @@ -374,8 +374,8 @@ STAGE PLANS: Statistics: Num rows: 9 Data size: 1803 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} - 1 {key} {value} + 0 {key} + 1 {key} 2 {key} {value} filter predicates: 0 @@ -391,8 +391,8 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} - 1 {key} {value} + 0 {key} + 1 {key} 2 {key} {value} filter predicates: 0 diff --git ql/src/test/results/clientpositive/auto_join3.q.out ql/src/test/results/clientpositive/auto_join3.q.out index 079878d..e6e1b78 100644 --- ql/src/test/results/clientpositive/auto_join3.q.out +++ ql/src/test/results/clientpositive/auto_join3.q.out @@ -36,7 +36,7 @@ STAGE PLANS: Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 2 {value} keys: @@ -49,7 +49,7 @@ STAGE PLANS: Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 2 {value} keys: diff --git ql/src/test/results/clientpositive/auto_join31.q.out ql/src/test/results/clientpositive/auto_join31.q.out index ed90eee..b4de25d 100644 --- ql/src/test/results/clientpositive/auto_join31.q.out +++ ql/src/test/results/clientpositive/auto_join31.q.out @@ -171,7 +171,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 - 1 {_col0} {_col1} + 1 {_col0} 2 keys: 0 _col0 (type: string) @@ -182,7 +182,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 - 1 {_col0} {_col1} + 1 {_col0} 2 keys: 0 _col0 (type: string) diff --git ql/src/test/results/clientpositive/auto_join32.q.out ql/src/test/results/clientpositive/auto_join32.q.out index 28093e6..0b21d1e 100644 --- ql/src/test/results/clientpositive/auto_join32.q.out +++ ql/src/test/results/clientpositive/auto_join32.q.out @@ -43,7 +43,7 @@ STAGE PLANS: Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {name} + 0 1 {registration} keys: 0 name (type: string) diff --git ql/src/test/results/clientpositive/auto_join4.q.out ql/src/test/results/clientpositive/auto_join4.q.out index a200632..714e3ee 100644 --- ql/src/test/results/clientpositive/auto_join4.q.out +++ ql/src/test/results/clientpositive/auto_join4.q.out @@ -63,7 +63,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {_col0} {_col1} + 1 {_col1} keys: 0 _col0 (type: string) 1 _col0 (type: string) diff --git ql/src/test/results/clientpositive/auto_join5.q.out ql/src/test/results/clientpositive/auto_join5.q.out index 0650f9a..17fbc9a 100644 --- ql/src/test/results/clientpositive/auto_join5.q.out +++ ql/src/test/results/clientpositive/auto_join5.q.out @@ -62,7 +62,7 @@ STAGE PLANS: Statistics: Num rows: 3 Data size: 601 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} + 0 {_col1} 1 {_col0} {_col1} keys: 0 _col0 (type: string) diff --git ql/src/test/results/clientpositive/auto_join8.q.out ql/src/test/results/clientpositive/auto_join8.q.out index 2f0565a..001ffa2 100644 --- ql/src/test/results/clientpositive/auto_join8.q.out +++ ql/src/test/results/clientpositive/auto_join8.q.out @@ -63,7 +63,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {_col0} {_col1} + 1 {_col0} keys: 0 _col0 (type: string) 1 _col0 (type: string) diff --git ql/src/test/results/clientpositive/auto_join9.q.out ql/src/test/results/clientpositive/auto_join9.q.out index faa5454..3edeaed 100644 --- ql/src/test/results/clientpositive/auto_join9.q.out +++ ql/src/test/results/clientpositive/auto_join9.q.out @@ -33,7 +33,7 @@ STAGE PLANS: Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {value} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/auto_join_without_localtask.q.out ql/src/test/results/clientpositive/auto_join_without_localtask.q.out index 49fe756..5ed9a98 100644 --- ql/src/test/results/clientpositive/auto_join_without_localtask.q.out +++ ql/src/test/results/clientpositive/auto_join_without_localtask.q.out @@ -685,7 +685,7 @@ STAGE PLANS: predicate: (key > 100) (type: boolean) HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {key} 1 keys: 0 key (type: string) @@ -778,46 +778,6 @@ RUN: Stage-14:MAPREDLOCAL RUN: Stage-9:MAPRED RUN: Stage-7:CONDITIONAL RUN: Stage-5:MAPRED -238 val_238 -238 val_238 -238 val_238 -238 val_238 -311 val_311 -311 val_311 -311 val_311 -311 val_311 -311 val_311 -311 val_311 -311 val_311 -311 val_311 -311 val_311 -165 val_165 -165 val_165 -165 val_165 -165 val_165 -409 val_409 -409 val_409 -409 val_409 -409 val_409 -409 val_409 -409 val_409 -409 val_409 -409 val_409 -409 val_409 -255 val_255 -255 val_255 -255 val_255 -255 val_255 -278 val_278 -278 val_278 -278 val_278 -278 val_278 -484 val_484 -265 val_265 -265 val_265 -265 val_265 -265 val_265 -193 val_193 PREHOOK: query: -- fallback to common join select a.* from src a join src b on a.key=b.key join src c on a.value=c.value where a.key>100 limit 40 PREHOOK: type: QUERY diff --git ql/src/test/results/clientpositive/auto_sortmerge_join_9.q.out ql/src/test/results/clientpositive/auto_sortmerge_join_9.q.out index c489a07..c8ecb8c 100644 --- ql/src/test/results/clientpositive/auto_sortmerge_join_9.q.out +++ ql/src/test/results/clientpositive/auto_sortmerge_join_9.q.out @@ -492,7 +492,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} + 0 {_col1} 1 {_col1} keys: 0 _col0 (type: int) @@ -2489,7 +2489,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} + 0 {_col1} 1 {_col1} keys: 0 _col0 (type: int) diff --git ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out index dbd8c90..9b1d0a9 100644 --- ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out +++ ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out @@ -211,7 +211,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} + 1 keys: 0 key (type: string), value (type: string) 1 key (type: string), value (type: string) @@ -402,7 +402,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} + 1 keys: 0 key (type: string), value (type: string) 1 key (type: string), value (type: string) @@ -773,7 +773,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} + 1 keys: 0 key (type: string), value (type: string) 1 key (type: string), value (type: string) @@ -956,7 +956,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} + 1 keys: 0 key (type: string), value (type: string) 1 key (type: string), value (type: string) @@ -1139,7 +1139,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} + 1 keys: 0 key (type: string), value (type: string) 1 key (type: string), value (type: string) @@ -1322,7 +1322,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} + 1 keys: 0 key (type: string), value (type: string) 1 key (type: string), value (type: string) @@ -1505,7 +1505,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} + 1 keys: 0 key (type: string), value (type: string) 1 key (type: string), value (type: string) @@ -1688,7 +1688,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {key} {value} + 1 keys: 0 key (type: string), value (type: string) 1 key (type: string), value (type: string) diff --git ql/src/test/results/clientpositive/correlationoptimizer1.q.out ql/src/test/results/clientpositive/correlationoptimizer1.q.out index 1102966..eba3745 100644 --- ql/src/test/results/clientpositive/correlationoptimizer1.q.out +++ ql/src/test/results/clientpositive/correlationoptimizer1.q.out @@ -319,7 +319,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/correlationoptimizer3.q.out ql/src/test/results/clientpositive/correlationoptimizer3.q.out index 7cab812..f28d661 100644 --- ql/src/test/results/clientpositive/correlationoptimizer3.q.out +++ ql/src/test/results/clientpositive/correlationoptimizer3.q.out @@ -477,7 +477,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) @@ -488,7 +488,7 @@ STAGE PLANS: Statistics: Num rows: 1 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 keys: 0 key (type: string) @@ -1133,7 +1133,7 @@ STAGE PLANS: Statistics: Num rows: 1 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 keys: 0 key (type: string) @@ -1144,7 +1144,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/correlationoptimizer5.q.out ql/src/test/results/clientpositive/correlationoptimizer5.q.out index 9011942..4c77a14 100644 --- ql/src/test/results/clientpositive/correlationoptimizer5.q.out +++ ql/src/test/results/clientpositive/correlationoptimizer5.q.out @@ -488,7 +488,7 @@ STAGE PLANS: Statistics: Num rows: 54 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {val} keys: 0 key (type: int) @@ -595,7 +595,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} + 0 1 {_col1} keys: 0 _col0 (type: int) diff --git ql/src/test/results/clientpositive/correlationoptimizer6.q.out ql/src/test/results/clientpositive/correlationoptimizer6.q.out index bcc6994..1e6e6ae 100644 --- ql/src/test/results/clientpositive/correlationoptimizer6.q.out +++ ql/src/test/results/clientpositive/correlationoptimizer6.q.out @@ -489,7 +489,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) @@ -500,7 +500,7 @@ STAGE PLANS: Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) @@ -3613,7 +3613,7 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 keys: 0 key (type: string) @@ -3685,7 +3685,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/correlationoptimizer7.q.out ql/src/test/results/clientpositive/correlationoptimizer7.q.out index 59d6de6..ea8abc8 100644 --- ql/src/test/results/clientpositive/correlationoptimizer7.q.out +++ ql/src/test/results/clientpositive/correlationoptimizer7.q.out @@ -112,7 +112,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {key} {value} + 1 {value} keys: 0 _col0 (type: string) 1 key (type: string) @@ -491,7 +491,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {key} {value} + 1 {value} keys: 0 _col0 (type: string) 1 key (type: string) diff --git ql/src/test/results/clientpositive/cross_product_check_2.q.out ql/src/test/results/clientpositive/cross_product_check_2.q.out index 45d9a48..8ee265d 100644 --- ql/src/test/results/clientpositive/cross_product_check_2.q.out +++ ql/src/test/results/clientpositive/cross_product_check_2.q.out @@ -123,7 +123,7 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {key} 1 {key} {value} keys: 0 key (type: string) @@ -209,7 +209,7 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) @@ -659,7 +659,7 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/explain_rearrange.q.out ql/src/test/results/clientpositive/explain_rearrange.q.out index 0e855b4..1ef76be 100644 --- ql/src/test/results/clientpositive/explain_rearrange.q.out +++ ql/src/test/results/clientpositive/explain_rearrange.q.out @@ -189,7 +189,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} + 0 {_col0} 1 {_col1} keys: 0 _col0 (type: int) @@ -478,7 +478,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} + 0 {_col0} 1 {_col1} keys: 0 _col0 (type: int) @@ -794,7 +794,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} + 0 {_col0} 1 {_col1} keys: 0 _col0 (type: int) @@ -1057,7 +1057,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} + 0 {_col0} 1 {_col1} keys: 0 _col0 (type: int) diff --git ql/src/test/results/clientpositive/join25.q.out ql/src/test/results/clientpositive/join25.q.out index a7e9e32..6094da7 100644 --- ql/src/test/results/clientpositive/join25.q.out +++ ql/src/test/results/clientpositive/join25.q.out @@ -44,7 +44,7 @@ STAGE PLANS: Statistics: Num rows: 1 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {value} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/join26.q.out ql/src/test/results/clientpositive/join26.q.out index 5235e31..eec9eaa 100644 --- ql/src/test/results/clientpositive/join26.q.out +++ ql/src/test/results/clientpositive/join26.q.out @@ -129,7 +129,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {value} 2 {value} keys: @@ -144,7 +144,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {value} 2 {value} keys: diff --git ql/src/test/results/clientpositive/join27.q.out ql/src/test/results/clientpositive/join27.q.out index d0fb146..a36a44c 100644 --- ql/src/test/results/clientpositive/join27.q.out +++ ql/src/test/results/clientpositive/join27.q.out @@ -44,7 +44,7 @@ STAGE PLANS: Statistics: Num rows: 1 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {key} 1 {value} keys: 0 value (type: string) diff --git ql/src/test/results/clientpositive/join28.q.out ql/src/test/results/clientpositive/join28.q.out index 6c33234..59922da 100644 --- ql/src/test/results/clientpositive/join28.q.out +++ ql/src/test/results/clientpositive/join28.q.out @@ -52,7 +52,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/join29.q.out ql/src/test/results/clientpositive/join29.q.out index 971574a..9a208cb 100644 --- ql/src/test/results/clientpositive/join29.q.out +++ ql/src/test/results/clientpositive/join29.q.out @@ -149,7 +149,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} + 0 {_col1} 1 {_col1} keys: 0 _col0 (type: string) diff --git ql/src/test/results/clientpositive/join30.q.out ql/src/test/results/clientpositive/join30.q.out index 053fcf2..92c258a 100644 --- ql/src/test/results/clientpositive/join30.q.out +++ ql/src/test/results/clientpositive/join30.q.out @@ -37,7 +37,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/join31.q.out ql/src/test/results/clientpositive/join31.q.out index 7a1b2bd..6ce6843 100644 --- ql/src/test/results/clientpositive/join31.q.out +++ ql/src/test/results/clientpositive/join31.q.out @@ -186,7 +186,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} + 0 1 keys: 0 _col0 (type: string) diff --git ql/src/test/results/clientpositive/join32.q.out ql/src/test/results/clientpositive/join32.q.out index 640201e..56024b6 100644 --- ql/src/test/results/clientpositive/join32.q.out +++ ql/src/test/results/clientpositive/join32.q.out @@ -168,7 +168,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {value} keys: 0 key (type: string) @@ -182,7 +182,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col5} - 1 {value} + 1 keys: 0 _col1 (type: string) 1 value (type: string) diff --git ql/src/test/results/clientpositive/join32_lessSize.q.out ql/src/test/results/clientpositive/join32_lessSize.q.out index 9c0aad4..7162738 100644 --- ql/src/test/results/clientpositive/join32_lessSize.q.out +++ ql/src/test/results/clientpositive/join32_lessSize.q.out @@ -128,7 +128,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {value} keys: 0 key (type: string) @@ -328,7 +328,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col5} - 1 {value} + 1 keys: 0 _col1 (type: string) 1 value (type: string) @@ -1108,7 +1108,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {_col4} + 0 1 {value} 2 {value} keys: @@ -1122,7 +1122,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {_col4} + 0 1 {value} 2 {value} keys: @@ -1315,7 +1315,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {_col4} + 0 1 {value} 2 {value} keys: @@ -1329,7 +1329,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {_col4} + 0 1 {value} 2 {value} keys: @@ -1944,7 +1944,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 keys: 0 key (type: string) @@ -2148,7 +2148,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {value} + 1 keys: 0 _col1 (type: string) 1 value (type: string) @@ -2748,7 +2748,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {value} + 1 keys: 0 _col1 (type: string) 1 value (type: string) @@ -3073,7 +3073,7 @@ STAGE PLANS: Statistics: Num rows: 1 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 keys: 0 key (type: string) @@ -3123,7 +3123,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {value} + 1 keys: 0 _col1 (type: string) 1 value (type: string) @@ -3321,7 +3321,7 @@ STAGE PLANS: Statistics: Num rows: 1 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 keys: 0 key (type: string) @@ -3371,7 +3371,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {value} + 1 keys: 0 _col1 (type: string) 1 value (type: string) diff --git ql/src/test/results/clientpositive/join33.q.out ql/src/test/results/clientpositive/join33.q.out index 640201e..56024b6 100644 --- ql/src/test/results/clientpositive/join33.q.out +++ ql/src/test/results/clientpositive/join33.q.out @@ -168,7 +168,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {value} keys: 0 key (type: string) @@ -182,7 +182,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col5} - 1 {value} + 1 keys: 0 _col1 (type: string) 1 value (type: string) diff --git ql/src/test/results/clientpositive/join34.q.out ql/src/test/results/clientpositive/join34.q.out index cb2d5dc..2c02bc5 100644 --- ql/src/test/results/clientpositive/join34.q.out +++ ql/src/test/results/clientpositive/join34.q.out @@ -159,7 +159,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col1} - 1 {key} {value} + 1 {value} keys: 0 _col0 (type: string) 1 key (type: string) diff --git ql/src/test/results/clientpositive/join35.q.out ql/src/test/results/clientpositive/join35.q.out index 3c43783..2d69e3f 100644 --- ql/src/test/results/clientpositive/join35.q.out +++ ql/src/test/results/clientpositive/join35.q.out @@ -276,7 +276,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col1} - 1 {key} {value} + 1 {value} keys: 0 _col0 (type: string) 1 key (type: string) diff --git ql/src/test/results/clientpositive/join36.q.out ql/src/test/results/clientpositive/join36.q.out index d9a0074..1f14642 100644 --- ql/src/test/results/clientpositive/join36.q.out +++ ql/src/test/results/clientpositive/join36.q.out @@ -82,7 +82,7 @@ STAGE PLANS: Statistics: Num rows: 309 Data size: 1482 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {cnt} + 0 {cnt} 1 {cnt} keys: 0 key (type: int) diff --git ql/src/test/results/clientpositive/join37.q.out ql/src/test/results/clientpositive/join37.q.out index b70076e..184cf53 100644 --- ql/src/test/results/clientpositive/join37.q.out +++ ql/src/test/results/clientpositive/join37.q.out @@ -44,7 +44,7 @@ STAGE PLANS: Statistics: Num rows: 1 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {value} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/join39.q.out ql/src/test/results/clientpositive/join39.q.out index d6680b8..ced4d9e 100644 --- ql/src/test/results/clientpositive/join39.q.out +++ ql/src/test/results/clientpositive/join39.q.out @@ -52,7 +52,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {_col0} {_col1} + 1 {_col1} keys: 0 key (type: string) 1 _col0 (type: string) diff --git ql/src/test/results/clientpositive/join40.q.out ql/src/test/results/clientpositive/join40.q.out index dee8bd0..0196f7a 100644 --- ql/src/test/results/clientpositive/join40.q.out +++ ql/src/test/results/clientpositive/join40.q.out @@ -3093,7 +3093,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {value} - 1 {_col0} {_col1} + 1 {_col1} keys: 0 key (type: string) 1 _col0 (type: string) diff --git ql/src/test/results/clientpositive/join_map_ppr.q.out ql/src/test/results/clientpositive/join_map_ppr.q.out index cd72ca4..1c5ea03 100644 --- ql/src/test/results/clientpositive/join_map_ppr.q.out +++ ql/src/test/results/clientpositive/join_map_ppr.q.out @@ -131,7 +131,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {value} 2 {value} keys: @@ -146,7 +146,7 @@ STAGE PLANS: GatherStats: false HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {value} 2 {value} keys: diff --git ql/src/test/results/clientpositive/mapjoin1.q.out ql/src/test/results/clientpositive/mapjoin1.q.out index d307077..c77141b 100644 --- ql/src/test/results/clientpositive/mapjoin1.q.out +++ ql/src/test/results/clientpositive/mapjoin1.q.out @@ -48,7 +48,7 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {key} {value} filter predicates: 0 @@ -145,7 +145,7 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {key} {value} filter predicates: 0 @@ -244,7 +244,7 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {_col0} {_col1} filter predicates: 0 @@ -348,7 +348,7 @@ STAGE PLANS: Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {key} {value} keys: 0 key (type: string) @@ -443,7 +443,7 @@ STAGE PLANS: Statistics: Num rows: 9 Data size: 1803 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {key} {value} keys: 0 key (type: string) @@ -537,7 +537,7 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {_col0} {_col1} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/mapjoin_memcheck.q.out ql/src/test/results/clientpositive/mapjoin_memcheck.q.out index 392d5f4..135e979 100644 --- ql/src/test/results/clientpositive/mapjoin_memcheck.q.out +++ ql/src/test/results/clientpositive/mapjoin_memcheck.q.out @@ -46,7 +46,7 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {key} {value} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/mapjoin_subquery.q.out ql/src/test/results/clientpositive/mapjoin_subquery.q.out index 624b6ed..c372037 100644 --- ql/src/test/results/clientpositive/mapjoin_subquery.q.out +++ ql/src/test/results/clientpositive/mapjoin_subquery.q.out @@ -40,7 +40,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) @@ -274,7 +274,7 @@ STAGE PLANS: Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/multiMapJoin1.q.out ql/src/test/results/clientpositive/multiMapJoin1.q.out index 48cae57..cce4ba4 100644 --- ql/src/test/results/clientpositive/multiMapJoin1.q.out +++ ql/src/test/results/clientpositive/multiMapJoin1.q.out @@ -829,7 +829,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key1} {key2} {value} - 1 {key} + 1 keys: 0 key1 (type: string) 1 key (type: string) @@ -924,7 +924,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} - 1 {key} + 1 keys: 0 _col1 (type: string) 1 key (type: string) @@ -971,7 +971,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} {_col6} - 1 {key} + 1 keys: 0 _col2 (type: string) 1 key (type: string) @@ -1043,7 +1043,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} {_col6} + 0 {_col0} {_col1} {_col3} {_col4} {_col5} {_col6} 1 {key} keys: 0 _col2 (type: string) @@ -1134,7 +1134,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} + 0 {_col0} {_col2} {_col3} {_col4} {_col5} 1 {key} keys: 0 _col1 (type: string) @@ -1216,7 +1216,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} {_col2} {_col3} {_col3} + 0 {_col0} {_col1} {_col2} 1 {key} keys: 0 _col3 (type: string) @@ -1300,7 +1300,7 @@ STAGE PLANS: alias: bigtbl HashTable Sink Operator condition expressions: - 0 {key1} {key2} {value} + 0 {key2} {value} 1 {key} keys: 0 key1 (type: string) @@ -1570,7 +1570,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key1} {key2} {value} - 1 {key} + 1 keys: 0 key1 (type: string) 1 key (type: string) @@ -1592,7 +1592,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} - 1 {key} + 1 keys: 0 _col1 (type: string) 1 key (type: string) @@ -1603,7 +1603,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} {_col6} - 1 {key} + 1 keys: 0 _col2 (type: string) 1 key (type: string) @@ -1887,7 +1887,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key1} {key2} {value} - 1 {key} + 1 keys: 0 key1 (type: string) 1 key (type: string) @@ -1965,7 +1965,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} - 1 {key} + 1 keys: 0 _col1 (type: string) 1 key (type: string) @@ -1976,7 +1976,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} {_col6} - 1 {key} + 1 keys: 0 _col2 (type: string) 1 key (type: string) @@ -2246,7 +2246,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key1} {key2} {value} - 1 {key} + 1 keys: 0 key1 (type: string) 1 key (type: string) @@ -2341,7 +2341,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} - 1 {key} + 1 keys: 0 _col1 (type: string) 1 key (type: string) @@ -2388,7 +2388,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} {_col6} - 1 {key} + 1 keys: 0 _col2 (type: string) 1 key (type: string) @@ -2460,7 +2460,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} {_col6} + 0 {_col0} {_col1} {_col3} {_col4} {_col5} {_col6} 1 {key} keys: 0 _col2 (type: string) @@ -2551,7 +2551,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} {_col2} {_col3} {_col4} {_col5} + 0 {_col0} {_col2} {_col3} {_col4} {_col5} 1 {key} keys: 0 _col1 (type: string) @@ -2633,7 +2633,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} {_col2} {_col3} {_col3} + 0 {_col0} {_col1} {_col2} 1 {key} keys: 0 _col3 (type: string) @@ -2717,7 +2717,7 @@ STAGE PLANS: alias: bigtbl HashTable Sink Operator condition expressions: - 0 {key1} {key2} {value} + 0 {key2} {value} 1 {key} keys: 0 key1 (type: string) diff --git ql/src/test/results/clientpositive/multiMapJoin2.q.out ql/src/test/results/clientpositive/multiMapJoin2.q.out index fc51f78..0481280 100644 --- ql/src/test/results/clientpositive/multiMapJoin2.q.out +++ ql/src/test/results/clientpositive/multiMapJoin2.q.out @@ -946,7 +946,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} + 0 1 keys: 0 _col0 (type: string) @@ -1644,7 +1644,7 @@ STAGE PLANS: TableScan HashTable Sink Operator condition expressions: - 0 {_col0} + 0 1 keys: 0 _col0 (type: string) @@ -2309,7 +2309,7 @@ STAGE PLANS: Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) @@ -2382,7 +2382,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 - 1 {key} + 1 keys: 0 _col0 (type: string) 1 key (type: string) @@ -2393,7 +2393,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 - 1 {key} + 1 keys: 0 _col0 (type: string) 1 key (type: string) @@ -2475,7 +2475,7 @@ STAGE PLANS: Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/multi_join_union.q.out ql/src/test/results/clientpositive/multi_join_union.q.out index 0029e6f..a6d0eef 100644 --- ql/src/test/results/clientpositive/multi_join_union.q.out +++ ql/src/test/results/clientpositive/multi_join_union.q.out @@ -61,7 +61,7 @@ STAGE PLANS: Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 {key} {value} keys: 0 key (type: string) @@ -83,7 +83,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col4} {_col5} - 1 {_col0} {_col1} + 1 {_col0} keys: 0 _col5 (type: string) 1 _col1 (type: string) @@ -104,7 +104,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} {_col4} {_col5} - 1 {_col0} {_col1} + 1 {_col0} keys: 0 _col5 (type: string) 1 _col1 (type: string) diff --git ql/src/test/results/clientpositive/reduce_deduplicate_exclude_join.q.out ql/src/test/results/clientpositive/reduce_deduplicate_exclude_join.q.out index 6ccd0a9..42c001f 100644 --- ql/src/test/results/clientpositive/reduce_deduplicate_exclude_join.q.out +++ ql/src/test/results/clientpositive/reduce_deduplicate_exclude_join.q.out @@ -51,7 +51,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {key} {value} + 1 {key} keys: 0 _col0 (type: string) 1 key (type: string) diff --git ql/src/test/results/clientpositive/select_transform_hint.q.out ql/src/test/results/clientpositive/select_transform_hint.q.out index a0eb93a..5a3a93a 100644 --- ql/src/test/results/clientpositive/select_transform_hint.q.out +++ ql/src/test/results/clientpositive/select_transform_hint.q.out @@ -29,7 +29,7 @@ STAGE PLANS: Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} {value} + 0 {value} 1 keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/smb_mapjoin_15.q.out ql/src/test/results/clientpositive/smb_mapjoin_15.q.out index 36f3e14..3368c7d 100644 --- ql/src/test/results/clientpositive/smb_mapjoin_15.q.out +++ ql/src/test/results/clientpositive/smb_mapjoin_15.q.out @@ -767,7 +767,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {key} {key2} {value} - 1 {key} {key2} {value} + 1 {key2} keys: 0 key (type: int), value (type: string) 1 key (type: int), value (type: string) diff --git ql/src/test/results/clientpositive/subquery_multiinsert.q.out ql/src/test/results/clientpositive/subquery_multiinsert.q.out index d4a7303..3c2fab6 100644 --- ql/src/test/results/clientpositive/subquery_multiinsert.q.out +++ ql/src/test/results/clientpositive/subquery_multiinsert.q.out @@ -646,7 +646,7 @@ STAGE PLANS: HashTable Sink Operator condition expressions: 0 {_col0} {_col1} - 1 {_col0} + 1 keys: 0 _col0 (type: string) 1 _col0 (type: string) diff --git ql/src/test/results/clientpositive/union34.q.out ql/src/test/results/clientpositive/union34.q.out index 2d14079..b21287c 100644 --- ql/src/test/results/clientpositive/union34.q.out +++ ql/src/test/results/clientpositive/union34.q.out @@ -97,7 +97,7 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {_col0} {_col1} + 0 {_col1} 1 keys: 0 _col0 (type: string) diff --git ql/src/test/results/clientpositive/union_remove_12.q.out ql/src/test/results/clientpositive/union_remove_12.q.out index dd6c42d..c897d61 100644 --- ql/src/test/results/clientpositive/union_remove_12.q.out +++ ql/src/test/results/clientpositive/union_remove_12.q.out @@ -141,7 +141,7 @@ STAGE PLANS: Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {val} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/union_remove_13.q.out ql/src/test/results/clientpositive/union_remove_13.q.out index c10e7eb..eaf74a6 100644 --- ql/src/test/results/clientpositive/union_remove_13.q.out +++ ql/src/test/results/clientpositive/union_remove_13.q.out @@ -164,7 +164,7 @@ STAGE PLANS: Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {val} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/union_remove_14.q.out ql/src/test/results/clientpositive/union_remove_14.q.out index 50d8f32..7f15947 100644 --- ql/src/test/results/clientpositive/union_remove_14.q.out +++ ql/src/test/results/clientpositive/union_remove_14.q.out @@ -143,7 +143,7 @@ STAGE PLANS: Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE HashTable Sink Operator condition expressions: - 0 {key} + 0 1 {val} keys: 0 key (type: string) diff --git ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out index 724e556..19e0b36 100644 --- ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out +++ ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out @@ -45,7 +45,7 @@ STAGE PLANS: Statistics: Num rows: 6144 Data size: 1082530 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {cdecimal1} {cint} + 0 {cdecimal1} 1 {cdecimal2} {cint} keys: 0 cint (type: int) diff --git ql/src/test/results/clientpositive/vectorized_mapjoin.q.out ql/src/test/results/clientpositive/vectorized_mapjoin.q.out index 392c114..df436d0 100644 --- ql/src/test/results/clientpositive/vectorized_mapjoin.q.out +++ ql/src/test/results/clientpositive/vectorized_mapjoin.q.out @@ -25,7 +25,7 @@ STAGE PLANS: Statistics: Num rows: 94309 Data size: 377237 Basic stats: COMPLETE Column stats: NONE HashTable Sink Operator condition expressions: - 0 {cint} + 0 1 {cint} keys: 0 cint (type: int)