Repository: hive Updated Branches: refs/heads/master 8662d9dae -> 4d984bded
HIVE-11223: CBO (Calcite Return Path): MapJoin and SMBJoin conversion not triggered (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4d984bde Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4d984bde Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4d984bde Branch: refs/heads/master Commit: 4d984bded32b23fd1a6306dfdd6d9b458bdf400d Parents: 8662d9d Author: Jesus Camacho Rodriguez <jcama...@apache.org> Authored: Fri Jul 10 02:01:17 2015 +0100 Committer: Jesus Camacho Rodriguez <jcama...@apache.org> Committed: Wed Jul 15 18:37:59 2015 +0100 ---------------------------------------------------------------------- .../calcite/translator/HiveOpConverter.java | 4 +- .../translator/HiveOpConverterPostProc.java | 34 +- .../queries/clientpositive/cbo_rp_auto_join0.q | 1 + .../queries/clientpositive/cbo_rp_auto_join1.q | 1 + .../test/queries/clientpositive/cbo_rp_join0.q | 1 + .../clientpositive/cbo_rp_auto_join0.q.out | 32 +- .../clientpositive/cbo_rp_auto_join1.q.out | 578 ++++++++++--------- .../results/clientpositive/cbo_rp_join0.q.out | 185 +++--- 8 files changed, 471 insertions(+), 365 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/4d984bde/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverter.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverter.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverter.java index c711406..c54a601 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverter.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverter.java @@ -211,7 +211,7 @@ public class HiveOpConverter { Map<Integer, ColumnInfo> posToNonPartColInfo = ht.getNonPartColInfoMap(); List<Integer> neededColIndxsFrmReloptHT = scanRel.getNeededColIndxsFrmReloptHT(); List<String> scanColNames = scanRel.getRowType().getFieldNames(); - String tableAlias = scanRel.getTableAlias(); + String tableAlias = scanRel.getConcatQbIDAlias(); String colName; ColumnInfo colInfo; @@ -251,7 +251,7 @@ public class HiveOpConverter { // 2. Setup TableScan TableScanOperator ts = (TableScanOperator) OperatorFactory.get(tsd, new RowSchema(colInfos)); - topOps.put(scanRel.getConcatQbIDAlias(), ts); + topOps.put(tableAlias, ts); if (LOG.isDebugEnabled()) { LOG.debug("Generated " + ts + " with row schema: [" + ts.getSchema() + "]"); http://git-wip-us.apache.org/repos/asf/hive/blob/4d984bde/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverterPostProc.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverterPostProc.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverterPostProc.java index d861682..5080992 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverterPostProc.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/HiveOpConverterPostProc.java @@ -51,7 +51,7 @@ public class HiveOpConverterPostProc implements Transform { private static final Log LOG = LogFactory.getLog(HiveOpConverterPostProc.class); private ParseContext pctx; - private Map<String, Operator<? extends OperatorDesc>> aliasToJoinOpInfo; + private Map<String, Operator<? extends OperatorDesc>> aliasToOpInfo; @Override public ParseContext transform(ParseContext pctx) throws SemanticException { @@ -66,11 +66,12 @@ public class HiveOpConverterPostProc implements Transform { // 1. Initialize aux data structures this.pctx = pctx; - this.aliasToJoinOpInfo = new HashMap<String, Operator<? extends OperatorDesc>>(); + this.aliasToOpInfo = new HashMap<String, Operator<? extends OperatorDesc>>(); // 2. Trigger transformation Map<Rule, NodeProcessor> opRules = new LinkedHashMap<Rule, NodeProcessor>(); opRules.put(new RuleRegExp("R1", JoinOperator.getOperatorName() + "%"), new JoinAnnotate()); + opRules.put(new RuleRegExp("R2", TableScanOperator.getOperatorName() + "%"), new TableScanAnnotate()); Dispatcher disp = new DefaultRuleDispatcher(null, opRules, null); GraphWalker ogw = new ForwardWalker(disp); @@ -109,7 +110,7 @@ public class HiveOpConverterPostProc implements Transform { } joinOp.getConf().setBaseSrc(baseSrc); joinOp.getConf().setRightAliases(rightAliases); - joinOp.getConf().setAliasToOpInfo(aliasToJoinOpInfo); + joinOp.getConf().setAliasToOpInfo(aliasToOpInfo); // 2. Use self alias Set<String> aliases = joinOp.getSchema().getTableNames(); @@ -119,7 +120,7 @@ public class HiveOpConverterPostProc implements Transform { .size() + " aliases for " + joinOp.toString()); } final String joinOpAlias = aliases.iterator().next();; - aliasToJoinOpInfo.put(joinOpAlias, joinOp); + aliasToOpInfo.put(joinOpAlias, joinOp); // 3. Populate other data structures pctx.getJoinOps().add(joinOp); @@ -128,4 +129,29 @@ public class HiveOpConverterPostProc implements Transform { } } + + private class TableScanAnnotate implements NodeProcessor { + + @Override + public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, + Object... nodeOutputs) throws SemanticException { + TableScanOperator tableScanOp = (TableScanOperator) nd; + + // 1. Get alias from topOps + String opAlias = null; + for (Map.Entry<String, Operator<? extends OperatorDesc>> topOpEntry : pctx.getTopOps().entrySet()) { + if (topOpEntry.getValue() == tableScanOp) { + opAlias = topOpEntry.getKey(); + } + } + + assert opAlias != null; + + // 2. Add alias to 1) aliasToOpInfo and 2) opToAlias + aliasToOpInfo.put(opAlias, tableScanOp); + + return null; + } + } + } http://git-wip-us.apache.org/repos/asf/hive/blob/4d984bde/ql/src/test/queries/clientpositive/cbo_rp_auto_join0.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientpositive/cbo_rp_auto_join0.q b/ql/src/test/queries/clientpositive/cbo_rp_auto_join0.q index ad9ebd1..f8511b1 100644 --- a/ql/src/test/queries/clientpositive/cbo_rp_auto_join0.q +++ b/ql/src/test/queries/clientpositive/cbo_rp_auto_join0.q @@ -1,3 +1,4 @@ +set hive.cbo.returnpath.hiveop=true; set hive.stats.fetch.column.stats=true; set hive.auto.convert.join = true; http://git-wip-us.apache.org/repos/asf/hive/blob/4d984bde/ql/src/test/queries/clientpositive/cbo_rp_auto_join1.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientpositive/cbo_rp_auto_join1.q b/ql/src/test/queries/clientpositive/cbo_rp_auto_join1.q index c1f4352..096ae10 100644 --- a/ql/src/test/queries/clientpositive/cbo_rp_auto_join1.q +++ b/ql/src/test/queries/clientpositive/cbo_rp_auto_join1.q @@ -1,3 +1,4 @@ +set hive.cbo.returnpath.hiveop=true; set hive.stats.fetch.column.stats=true; set hive.enforce.bucketing = true; set hive.enforce.sorting = true; http://git-wip-us.apache.org/repos/asf/hive/blob/4d984bde/ql/src/test/queries/clientpositive/cbo_rp_join0.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientpositive/cbo_rp_join0.q b/ql/src/test/queries/clientpositive/cbo_rp_join0.q index acfff75..3e3a013 100644 --- a/ql/src/test/queries/clientpositive/cbo_rp_join0.q +++ b/ql/src/test/queries/clientpositive/cbo_rp_join0.q @@ -1,4 +1,5 @@ set hive.cbo.enable=true; +set hive.cbo.returnpath.hiveop=true; set hive.exec.check.crossproducts=false; set hive.stats.fetch.column.stats=true; http://git-wip-us.apache.org/repos/asf/hive/blob/4d984bde/ql/src/test/results/clientpositive/cbo_rp_auto_join0.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/cbo_rp_auto_join0.q.out b/ql/src/test/results/clientpositive/cbo_rp_auto_join0.q.out index 6fdc935..d1bc6d4 100644 --- a/ql/src/test/results/clientpositive/cbo_rp_auto_join0.q.out +++ b/ql/src/test/results/clientpositive/cbo_rp_auto_join0.q.out @@ -113,13 +113,17 @@ STAGE PLANS: mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE - File Output Operator - compressed: false + Select Operator + expressions: _col0 (type: bigint) + outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -242,13 +246,17 @@ STAGE PLANS: mode: mergepartial outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE - File Output Operator - compressed: false + Select Operator + expressions: _col0 (type: bigint) + outputColumnNames: _col0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator http://git-wip-us.apache.org/repos/asf/hive/blob/4d984bde/ql/src/test/results/clientpositive/cbo_rp_auto_join1.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/cbo_rp_auto_join1.q.out b/ql/src/test/results/clientpositive/cbo_rp_auto_join1.q.out index 79b4650..d52586f 100644 --- a/ql/src/test/results/clientpositive/cbo_rp_auto_join1.q.out +++ b/ql/src/test/results/clientpositive/cbo_rp_auto_join1.q.out @@ -95,39 +95,43 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - Group By Operator - aggregations: count() - mode: hash - outputColumnNames: _col0 - Reduce Output Operator - sort order: - value expressions: _col0 (type: bigint) + 0 key (type: int) + 1 key (type: int) + Select Operator + Group By Operator + aggregations: count() + mode: hash + outputColumnNames: _col0 + Reduce Output Operator + sort order: + value expressions: _col0 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + outputColumnNames: $f0 + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -182,35 +186,38 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: subq2:subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - outputColumnNames: _col0 - Group By Operator - keys: _col0 (type: int) - mode: hash - outputColumnNames: _col0 - Reduce Output Operator - key expressions: _col0 (type: int) - sort order: + - Map-reduce partition columns: _col0 (type: int) + 0 key (type: int) + 1 key (type: int) + outputColumnNames: key + Select Operator + expressions: key (type: int) + outputColumnNames: key + Group By Operator + keys: key (type: int) + mode: hash + outputColumnNames: _col0 + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) Reduce Operator Tree: Group By Operator keys: KEY._col0 (type: int) mode: mergepartial - outputColumnNames: _col0 + outputColumnNames: key Select Operator Group By Operator aggregations: count() @@ -234,13 +241,16 @@ STAGE PLANS: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + outputColumnNames: $f0 + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -322,38 +332,41 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: src2:subq2:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - outputColumnNames: _col0 - Group By Operator - aggregations: count() - keys: _col0 (type: int) - mode: hash - outputColumnNames: _col0, _col1 - Reduce Output Operator - key expressions: _col0 (type: int) - sort order: + - Map-reduce partition columns: _col0 (type: int) - value expressions: _col1 (type: bigint) + 0 key (type: int) + 1 key (type: int) + outputColumnNames: key + Select Operator + expressions: key (type: int) + outputColumnNames: key + Group By Operator + aggregations: count() + keys: key (type: int) + mode: hash + outputColumnNames: _col0, _col1 + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + value expressions: _col1 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) keys: KEY._col0 (type: int) mode: mergepartial - outputColumnNames: _col0, _col1 + outputColumnNames: key, $f1 File Output Operator compressed: false table: @@ -366,27 +379,27 @@ STAGE PLANS: Map Operator Tree: TableScan Reduce Output Operator - key expressions: _col0 (type: int) + key expressions: key (type: int) sort order: + - Map-reduce partition columns: _col0 (type: int) - value expressions: _col1 (type: bigint) + Map-reduce partition columns: key (type: int) + value expressions: $f1 (type: bigint) TableScan Reduce Output Operator - key expressions: _col0 (type: int) + key expressions: key (type: int) sort order: + - Map-reduce partition columns: _col0 (type: int) - value expressions: _col1 (type: bigint) + Map-reduce partition columns: key (type: int) + value expressions: $f1 (type: bigint) Reduce Operator Tree: Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - outputColumnNames: _col0, _col1, _col3 + 0 key (type: int) + 1 key (type: int) + outputColumnNames: key, $f1, $f10 Select Operator - expressions: _col0 (type: int), _col3 (type: bigint), _col1 (type: bigint) - outputColumnNames: _col0, _col1, _col2 + expressions: key (type: int), $f10 (type: bigint), $f1 (type: bigint) + outputColumnNames: key, cnt1, cnt11 File Output Operator compressed: false table: @@ -398,38 +411,41 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: src1:subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - outputColumnNames: _col0 - Group By Operator - aggregations: count() - keys: _col0 (type: int) - mode: hash - outputColumnNames: _col0, _col1 - Reduce Output Operator - key expressions: _col0 (type: int) - sort order: + - Map-reduce partition columns: _col0 (type: int) - value expressions: _col1 (type: bigint) + 0 key (type: int) + 1 key (type: int) + outputColumnNames: key + Select Operator + expressions: key (type: int) + outputColumnNames: key + Group By Operator + aggregations: count() + keys: key (type: int) + mode: hash + outputColumnNames: _col0, _col1 + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Map-reduce partition columns: _col0 (type: int) + value expressions: _col1 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) keys: KEY._col0 (type: int) mode: mergepartial - outputColumnNames: _col0, _col1 + outputColumnNames: key, $f1 File Output Operator compressed: false table: @@ -514,39 +530,43 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: (key < 6) (type: boolean) Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - Group By Operator - aggregations: count() - mode: hash - outputColumnNames: _col0 - Reduce Output Operator - sort order: - value expressions: _col0 (type: bigint) + 0 key (type: int) + 1 key (type: int) + Select Operator + Group By Operator + aggregations: count() + mode: hash + outputColumnNames: _col0 + Reduce Output Operator + sort order: + value expressions: _col0 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + outputColumnNames: $f0 + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -610,39 +630,43 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: b + alias: subq2:subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: (((key < 8) and (key < 6)) and key is not null) (type: boolean) Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - Group By Operator - aggregations: count() - mode: hash - outputColumnNames: _col0 - Reduce Output Operator - sort order: - value expressions: _col0 (type: bigint) + 0 key (type: int) + 1 key (type: int) + Select Operator + Group By Operator + aggregations: count() + mode: hash + outputColumnNames: _col0 + Reduce Output Operator + sort order: + value expressions: _col0 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + outputColumnNames: $f0 + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -730,39 +754,43 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: subq2:subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: (((key < 8) and (key < 6)) and key is not null) (type: boolean) Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - Group By Operator - aggregations: count() - mode: hash - outputColumnNames: _col0 - Reduce Output Operator - sort order: - value expressions: _col0 (type: bigint) + 0 key (type: int) + 1 key (type: int) + Select Operator + Group By Operator + aggregations: count() + mode: hash + outputColumnNames: _col0 + Reduce Output Operator + sort order: + value expressions: _col0 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + outputColumnNames: $f0 + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -840,39 +868,43 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: (key < 8) (type: boolean) Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - Group By Operator - aggregations: count() - mode: hash - outputColumnNames: _col0 - Reduce Output Operator - sort order: - value expressions: _col0 (type: bigint) + 0 key (type: int) + 1 key (type: int) + Select Operator + Group By Operator + aggregations: count() + mode: hash + outputColumnNames: _col0 + Reduce Output Operator + sort order: + value expressions: _col0 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + outputColumnNames: $f0 + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -927,54 +959,56 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE - Select Operator - expressions: (key + 1) (type: int) - outputColumnNames: _col0 - Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE - Filter Operator - predicate: _col0 is not null (type: boolean) - Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: (key + 1) is not null (type: boolean) + Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: int) + outputColumnNames: key + Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator - key expressions: _col0 (type: int) + key expressions: (key + 1) (type: int) sort order: + - Map-reduce partition columns: _col0 (type: int) - Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE + Map-reduce partition columns: (key + 1) (type: int) + Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE TableScan - alias: a + alias: subq2:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE - Select Operator - expressions: (key + 1) (type: int) - outputColumnNames: _col0 - Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE - Filter Operator - predicate: _col0 is not null (type: boolean) - Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE + Filter Operator + predicate: (key + 1) is not null (type: boolean) + Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: int) + outputColumnNames: key + Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator - key expressions: _col0 (type: int) + key expressions: (key + 1) (type: int) sort order: + - Map-reduce partition columns: _col0 (type: int) - Statistics: Num rows: 10 Data size: 40 Basic stats: COMPLETE Column stats: COMPLETE + Map-reduce partition columns: (key + 1) (type: int) + Statistics: Num rows: 5 Data size: 20 Basic stats: COMPLETE Column stats: COMPLETE Reduce Operator Tree: Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - Statistics: Num rows: 10 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE - Group By Operator - aggregations: count() - mode: hash - outputColumnNames: _col0 - Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + 0 (key + 1) (type: int) + 1 (key + 1) (type: int) + Statistics: Num rows: 5 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + Select Operator + Statistics: Num rows: 5 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + Group By Operator + aggregations: count() + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Stage: Stage-2 Map Reduce @@ -988,15 +1022,19 @@ STAGE PLANS: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 + outputColumnNames: $f0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE - File Output Operator - compressed: false + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -1046,39 +1084,43 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: (key < 6) (type: boolean) Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - Group By Operator - aggregations: count() - mode: hash - outputColumnNames: _col0 - Reduce Output Operator - sort order: - value expressions: _col0 (type: bigint) + 0 key (type: int) + 1 key (type: int) + Select Operator + Group By Operator + aggregations: count() + mode: hash + outputColumnNames: _col0 + Reduce Output Operator + sort order: + value expressions: _col0 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + outputColumnNames: $f0 + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -1134,41 +1176,45 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a + alias: subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: (key < 6) (type: boolean) Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 Inner Join 0 to 2 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - 2 _col0 (type: int) - Group By Operator - aggregations: count() - mode: hash - outputColumnNames: _col0 - Reduce Output Operator - sort order: - value expressions: _col0 (type: bigint) + 0 key (type: int) + 1 key (type: int) + 2 key (type: int) + Select Operator + Group By Operator + aggregations: count() + mode: hash + outputColumnNames: _col0 + Reduce Output Operator + sort order: + value expressions: _col0 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + outputColumnNames: $f0 + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -1240,39 +1286,43 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: b + alias: a:subq2:subq1:a Statistics: Num rows: 10 Data size: 70 Basic stats: COMPLETE Column stats: COMPLETE Filter Operator predicate: (((key < 8) and (key < 6)) and key is not null) (type: boolean) Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - Group By Operator - aggregations: count() - mode: hash - outputColumnNames: _col0 - Reduce Output Operator - sort order: - value expressions: _col0 (type: bigint) + 0 key (type: int) + 1 key (type: int) + Select Operator + Group By Operator + aggregations: count() + mode: hash + outputColumnNames: _col0 + Reduce Output Operator + sort order: + value expressions: _col0 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) mode: mergepartial - outputColumnNames: _col0 - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + outputColumnNames: $f0 + Select Operator + expressions: $f0 (type: bigint) + outputColumnNames: $f0 + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -1335,18 +1385,18 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 930 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int), value (type: string) - outputColumnNames: _col0, _col1 + outputColumnNames: key, value Statistics: Num rows: 10 Data size: 930 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - outputColumnNames: _col0, _col1, _col3 + 0 key (type: int) + 1 key (type: int) + outputColumnNames: key, value, value0 Select Operator - expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string) - outputColumnNames: _col0, _col1, _col2 + expressions: key (type: int), value (type: string), value0 (type: string) + outputColumnNames: key, val1, val2 File Output Operator compressed: false table: @@ -1416,18 +1466,18 @@ STAGE PLANS: Statistics: Num rows: 10 Data size: 930 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: int), value (type: string) - outputColumnNames: _col0, _col1 + outputColumnNames: key, value Statistics: Num rows: 10 Data size: 930 Basic stats: COMPLETE Column stats: COMPLETE Sorted Merge Bucket Map Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: int) - 1 _col0 (type: int) - outputColumnNames: _col0, _col1, _col3 + 0 key (type: int) + 1 key (type: int) + outputColumnNames: key, value, value0 Select Operator - expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string) - outputColumnNames: _col0, _col1, _col2 + expressions: key (type: int), value (type: string), value0 (type: string) + outputColumnNames: key, val1, val2 File Output Operator compressed: false table: http://git-wip-us.apache.org/repos/asf/hive/blob/4d984bde/ql/src/test/results/clientpositive/cbo_rp_join0.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/cbo_rp_join0.q.out b/ql/src/test/results/clientpositive/cbo_rp_join0.q.out index 1894110..93fed08 100644 --- a/ql/src/test/results/clientpositive/cbo_rp_join0.q.out +++ b/ql/src/test/results/clientpositive/cbo_rp_join0.q.out @@ -21,40 +21,46 @@ STAGE PLANS: TableScan alias: cbo_t1 Statistics: Num rows: 20 Data size: 262 Basic stats: COMPLETE Column stats: COMPLETE - Select Operator - expressions: key (type: string), c_int (type: int) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: _col0 (type: string) - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - value expressions: _col1 (type: int) + Filter Operator + predicate: key is not null (type: boolean) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: string), c_int (type: int) + outputColumnNames: key, c_int + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: key (type: string) + sort order: + + Map-reduce partition columns: key (type: string) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + value expressions: c_int (type: int) TableScan - alias: cbo_t2 + alias: cbo_t2:cbo_t2 Statistics: Num rows: 20 Data size: 262 Basic stats: COMPLETE Column stats: COMPLETE - Select Operator - expressions: key (type: string), c_int (type: int) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: _col0 (type: string) - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - value expressions: _col1 (type: int) + Filter Operator + predicate: key is not null (type: boolean) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: string), c_int (type: int) + outputColumnNames: key, c_int + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: key (type: string) + sort order: + + Map-reduce partition columns: key (type: string) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + value expressions: c_int (type: int) TableScan - alias: cbo_t3 + alias: cbo_t3:cbo_t3 Statistics: Num rows: 20 Data size: 262 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: string) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 20 Data size: 1530 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator - key expressions: _col0 (type: string) + key expressions: key (type: string) sort order: + - Map-reduce partition columns: _col0 (type: string) + Map-reduce partition columns: key (type: string) Statistics: Num rows: 20 Data size: 1530 Basic stats: COMPLETE Column stats: COMPLETE Reduce Operator Tree: Join Operator @@ -62,18 +68,22 @@ STAGE PLANS: Inner Join 0 to 1 Right Outer Join0 to 2 keys: - 0 _col0 (type: string) - 1 _col0 (type: string) - 2 _col0 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3 - Statistics: Num rows: 400 Data size: 71200 Basic stats: COMPLETE Column stats: COMPLETE - File Output Operator - compressed: false - Statistics: Num rows: 400 Data size: 71200 Basic stats: COMPLETE Column stats: COMPLETE - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + 0 key (type: string) + 1 key (type: string) + 2 key (type: string) + outputColumnNames: key, c_int, key0, c_int0 + Statistics: Num rows: 324 Data size: 57672 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: string), c_int (type: int), key0 (type: string), c_int0 (type: int) + outputColumnNames: key, c_int, p, q + Statistics: Num rows: 324 Data size: 57672 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + Statistics: Num rows: 324 Data size: 57672 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator @@ -660,54 +670,63 @@ STAGE PLANS: TableScan alias: cbo_t1 Statistics: Num rows: 20 Data size: 262 Basic stats: COMPLETE Column stats: COMPLETE - Select Operator - expressions: key (type: string), c_int (type: int) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: _col0 (type: string) - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - value expressions: _col1 (type: int) + Filter Operator + predicate: key is not null (type: boolean) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: string), c_int (type: int) + outputColumnNames: key, c_int + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: key (type: string) + sort order: + + Map-reduce partition columns: key (type: string) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + value expressions: c_int (type: int) TableScan - alias: cbo_t2 + alias: cbo_t2:cbo_t2 Statistics: Num rows: 20 Data size: 262 Basic stats: COMPLETE Column stats: COMPLETE - Select Operator - expressions: key (type: string), c_int (type: int) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: _col0 (type: string) - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - value expressions: _col1 (type: int) + Filter Operator + predicate: key is not null (type: boolean) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: string), c_int (type: int) + outputColumnNames: key, c_int + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: key (type: string) + sort order: + + Map-reduce partition columns: key (type: string) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + value expressions: c_int (type: int) TableScan - alias: cbo_t3 + alias: cbo_t3:cbo_t3 Statistics: Num rows: 20 Data size: 262 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: key (type: string) - outputColumnNames: _col0 + outputColumnNames: key Statistics: Num rows: 20 Data size: 1530 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator - key expressions: _col0 (type: string) + key expressions: key (type: string) sort order: + - Map-reduce partition columns: _col0 (type: string) + Map-reduce partition columns: key (type: string) Statistics: Num rows: 20 Data size: 1530 Basic stats: COMPLETE Column stats: COMPLETE TableScan - alias: cbo_t1 + alias: cbo_t4:cbo_t1 Statistics: Num rows: 20 Data size: 262 Basic stats: COMPLETE Column stats: COMPLETE - Select Operator - expressions: key (type: string), c_int (type: int) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: _col0 (type: string) - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 20 Data size: 1602 Basic stats: COMPLETE Column stats: COMPLETE - value expressions: _col1 (type: int) + Filter Operator + predicate: key is not null (type: boolean) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: key (type: string), c_int (type: int) + outputColumnNames: key, c_int + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + key expressions: key (type: string) + sort order: + + Map-reduce partition columns: key (type: string) + Statistics: Num rows: 18 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE + value expressions: c_int (type: int) Reduce Operator Tree: Join Operator condition map: @@ -715,19 +734,19 @@ STAGE PLANS: Right Outer Join0 to 2 Left Outer Join0 to 3 keys: - 0 _col0 (type: string) - 1 _col0 (type: string) - 2 _col0 (type: string) - 3 _col0 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col6 - Statistics: Num rows: 2000 Data size: 534000 Basic stats: COMPLETE Column stats: COMPLETE + 0 key (type: string) + 1 key (type: string) + 2 key (type: string) + 3 key (type: string) + outputColumnNames: key, c_int, key0, c_int0, key1, c_int1 + Statistics: Num rows: 1458 Data size: 389286 Basic stats: COMPLETE Column stats: COMPLETE Select Operator - expressions: _col0 (type: string), _col1 (type: int), _col2 (type: string), _col3 (type: int), _col4 (type: string), _col6 (type: int) - outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 2000 Data size: 534000 Basic stats: COMPLETE Column stats: COMPLETE + expressions: key (type: string), c_int (type: int), key0 (type: string), c_int0 (type: int), key1 (type: string), c_int1 (type: int) + outputColumnNames: key, c_int, p, q, x, b + Statistics: Num rows: 1458 Data size: 389286 Basic stats: COMPLETE Column stats: COMPLETE File Output Operator compressed: false - Statistics: Num rows: 2000 Data size: 534000 Basic stats: COMPLETE Column stats: COMPLETE + Statistics: Num rows: 1458 Data size: 389286 Basic stats: COMPLETE Column stats: COMPLETE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat