Repository: hive
Updated Branches:
  refs/heads/master ff3b327d3 -> fde194e3c


Revert "HIVE-18008 : Add optimization rule to remove gby from right side of 
left semi-join (Vineet Garg, reviewed by Ashutosh Chauhan)"

This reverts commit ff3b327d322b04916e019fcec75d3fbd48e26bae.


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/fde194e3
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/fde194e3
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/fde194e3

Branch: refs/heads/master
Commit: fde194e3c65fcd0bdc8ac6fcfbf78186031f90c9
Parents: ff3b327
Author: Vineet Garg <vg...@apache.com>
Authored: Thu Nov 9 16:32:54 2017 -0800
Committer: Vineet Garg <vg...@apache.com>
Committed: Thu Nov 9 16:32:54 2017 -0800

----------------------------------------------------------------------
 .../hadoop/hive/ql/parse/CalcitePlanner.java    |  19 +-
 .../test/queries/clientpositive/subquery_in.q   |   4 -
 .../clientpositive/llap/subquery_in.q.out       | 693 +------------------
 .../clientpositive/spark/subquery_in.q.out      | 675 +-----------------
 .../subquery_unqualcolumnrefs.q.out             |  54 +-
 5 files changed, 101 insertions(+), 1344 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/fde194e3/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java 
b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
index 23b93cd..1363bbb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
@@ -205,7 +205,6 @@ import 
org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveReduceExpressionsWi
 import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveRelDecorrelator;
 import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveRelFieldTrimmer;
 import 
org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveRemoveSqCountCheck;
-import 
org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveRemoveGBYSemiJoinRule;
 import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveRulesRegistry;
 import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSemiJoinRule;
 import 
org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortJoinReduceRule;
@@ -1583,13 +1582,7 @@ public class CalcitePlanner extends SemanticAnalyzer {
         perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, 
"Calcite: Semijoin conversion");
       }
 
-      // 8. convert SemiJoin + GBy to SemiJoin
-        perfLogger.PerfLogBegin(this.getClass().getName(), 
PerfLogger.OPTIMIZER);
-        calciteOptimizedPlan = hepPlan(calciteOptimizedPlan, false, 
mdProvider.getMetadataProvider(), null,
-            HiveRemoveGBYSemiJoinRule.INSTANCE);
-        perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, 
"Calcite: Removal of gby from semijoin");
-
-      // 9. Get rid of sq_count_check if group by key is constant (HIVE-)
+      // 8. Get rid of sq_count_check if group by key is constant (HIVE-)
       if (conf.getBoolVar(ConfVars.HIVE_REMOVE_SQ_COUNT_CHECK)) {
         perfLogger.PerfLogBegin(this.getClass().getName(), 
PerfLogger.OPTIMIZER);
         calciteOptimizedPlan =
@@ -1599,7 +1592,7 @@ public class CalcitePlanner extends SemanticAnalyzer {
             "Calcite: Removing sq_count_check UDF ");
       }
 
-      // 10. Run rule to fix windowing issue when it is done over
+      // 9. Run rule to fix windowing issue when it is done over
       // aggregation columns (HIVE-10627)
       if (profilesCBO.contains(ExtendedCBOProfile.WINDOWING_POSTPROCESSING)) {
         perfLogger.PerfLogBegin(this.getClass().getName(), 
PerfLogger.OPTIMIZER);
@@ -1608,7 +1601,7 @@ public class CalcitePlanner extends SemanticAnalyzer {
         perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, 
"Calcite: Window fixing rule");
       }
 
-      // 11. Apply Druid transformation rules
+      // 10. Apply Druid transformation rules
       perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.OPTIMIZER);
       calciteOptimizedPlan = hepPlan(calciteOptimizedPlan, false, 
mdProvider.getMetadataProvider(), null,
               HepMatchOrder.BOTTOM_UP,
@@ -1626,10 +1619,10 @@ public class CalcitePlanner extends SemanticAnalyzer {
       );
       perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, 
"Calcite: Druid transformation rules");
 
-      // 12. Run rules to aid in translation from Calcite tree to Hive tree
+      // 11. Run rules to aid in translation from Calcite tree to Hive tree
       if (HiveConf.getBoolVar(conf, ConfVars.HIVE_CBO_RETPATH_HIVEOP)) {
         perfLogger.PerfLogBegin(this.getClass().getName(), 
PerfLogger.OPTIMIZER);
-        // 12.1. Merge join into multijoin operators (if possible)
+        // 11.1. Merge join into multijoin operators (if possible)
         calciteOptimizedPlan = hepPlan(calciteOptimizedPlan, true, 
mdProvider.getMetadataProvider(), null,
                 HepMatchOrder.BOTTOM_UP, 
HiveJoinProjectTransposeRule.BOTH_PROJECT_INCLUDE_OUTER,
                 HiveJoinProjectTransposeRule.LEFT_PROJECT_INCLUDE_OUTER,
@@ -1647,7 +1640,7 @@ public class CalcitePlanner extends SemanticAnalyzer {
                 HiveFilterProjectTSTransposeRule.INSTANCE, 
HiveFilterProjectTSTransposeRule.INSTANCE_DRUID,
                 HiveProjectFilterPullUpConstantsRule.INSTANCE);
 
-        // 12.2.  Introduce exchange operators below join/multijoin operators
+        // 11.2.  Introduce exchange operators below join/multijoin operators
         calciteOptimizedPlan = hepPlan(calciteOptimizedPlan, false, 
mdProvider.getMetadataProvider(), null,
                 HepMatchOrder.BOTTOM_UP, 
HiveInsertExchange4JoinRule.EXCHANGE_BELOW_JOIN,
                 HiveInsertExchange4JoinRule.EXCHANGE_BELOW_MULTIJOIN);

http://git-wip-us.apache.org/repos/asf/hive/blob/fde194e3/ql/src/test/queries/clientpositive/subquery_in.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/subquery_in.q 
b/ql/src/test/queries/clientpositive/subquery_in.q
index 7d4ece9..33cc2fe 100644
--- a/ql/src/test/queries/clientpositive/subquery_in.q
+++ b/ql/src/test/queries/clientpositive/subquery_in.q
@@ -114,10 +114,6 @@ where b.key in
         )
 ;
 
--- Right side shouldn't have aggregate
-explain select * from src b where b.key in (select distinct key from src a 
where a.value > b.value);
-select * from src b where b.key in (select distinct key from src a where 
a.value > b.value);
-
 
 -- non agg, non corr, windowing
 select p_mfgr, p_name, p_size 

http://git-wip-us.apache.org/repos/asf/hive/blob/fde194e3/ql/src/test/results/clientpositive/llap/subquery_in.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/subquery_in.q.out 
b/ql/src/test/results/clientpositive/llap/subquery_in.q.out
index f59ad7a..c7b98d3 100644
--- a/ql/src/test/results/clientpositive/llap/subquery_in.q.out
+++ b/ql/src/test/results/clientpositive/llap/subquery_in.q.out
@@ -628,7 +628,8 @@ STAGE PLANS:
     Tez
 #### A masked pattern was here ####
       Edges:
-        Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 3 (SIMPLE_EDGE)
+        Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
+        Reducer 3 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -648,30 +649,16 @@ STAGE PLANS:
                         sort order: ++
                         Map-reduce partition columns: _col0 (type: string), 
_col1 (type: string)
                         Statistics: Num rows: 166 Data size: 29548 Basic 
stats: COMPLETE Column stats: COMPLETE
-            Execution mode: llap
-            LLAP IO: no inputs
-        Map 3 
-            Map Operator Tree:
-                TableScan
-                  alias: a
-                  Statistics: Num rows: 500 Data size: 89000 Basic stats: 
COMPLETE Column stats: COMPLETE
-                  Filter Operator
-                    predicate: ((key > '9') and value is not null) (type: 
boolean)
-                    Statistics: Num rows: 166 Data size: 29548 Basic stats: 
COMPLETE Column stats: COMPLETE
-                    Select Operator
-                      expressions: key (type: string), value (type: string)
+                    Group By Operator
+                      keys: key (type: string), value (type: string)
+                      mode: hash
                       outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 166 Data size: 29548 Basic stats: 
COMPLETE Column stats: COMPLETE
-                      Group By Operator
-                        keys: _col0 (type: string), _col1 (type: string)
-                        mode: hash
-                        outputColumnNames: _col0, _col1
+                      Statistics: Num rows: 83 Data size: 14774 Basic stats: 
COMPLETE Column stats: COMPLETE
+                      Reduce Output Operator
+                        key expressions: _col0 (type: string), _col1 (type: 
string)
+                        sort order: ++
+                        Map-reduce partition columns: _col0 (type: string), 
_col1 (type: string)
                         Statistics: Num rows: 83 Data size: 14774 Basic stats: 
COMPLETE Column stats: COMPLETE
-                        Reduce Output Operator
-                          key expressions: _col0 (type: string), _col1 (type: 
string)
-                          sort order: ++
-                          Map-reduce partition columns: _col0 (type: string), 
_col1 (type: string)
-                          Statistics: Num rows: 83 Data size: 14774 Basic 
stats: COMPLETE Column stats: COMPLETE
             Execution mode: llap
             LLAP IO: no inputs
         Reducer 2 
@@ -684,14 +671,32 @@ STAGE PLANS:
                   0 _col0 (type: string), _col1 (type: string)
                   1 _col0 (type: string), _col1 (type: string)
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 133 Data size: 23674 Basic stats: 
COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 66 Data size: 11748 Basic stats: 
COMPLETE Column stats: COMPLETE
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 133 Data size: 23674 Basic stats: 
COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 66 Data size: 11748 Basic stats: 
COMPLETE Column stats: COMPLETE
                   table:
                       input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
                       output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+        Reducer 3 
+            Execution mode: llap
+            Reduce Operator Tree:
+              Group By Operator
+                keys: KEY._col0 (type: string), KEY._col1 (type: string)
+                mode: mergepartial
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 83 Data size: 14774 Basic stats: 
COMPLETE Column stats: COMPLETE
+                Group By Operator
+                  keys: _col0 (type: string), _col1 (type: string)
+                  mode: hash
+                  outputColumnNames: _col0, _col1
+                  Statistics: Num rows: 41 Data size: 7298 Basic stats: 
COMPLETE Column stats: COMPLETE
+                  Reduce Output Operator
+                    key expressions: _col0 (type: string), _col1 (type: string)
+                    sort order: ++
+                    Map-reduce partition columns: _col0 (type: string), _col1 
(type: string)
+                    Statistics: Num rows: 41 Data size: 7298 Basic stats: 
COMPLETE Column stats: COMPLETE
 
   Stage: Stage-0
     Fetch Operator
@@ -885,644 +890,6 @@ POSTHOOK: Input: default@src
 97     val_97
 98     val_98
 98     val_98
-Warning: Shuffle Join MERGEJOIN[30][tables = [$hdt$_1, $hdt$_2]] in Stage 
'Reducer 3' is a cross product
-PREHOOK: query: explain select * from src b where b.key in (select distinct 
key from src a where a.value > b.value)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from src b where b.key in (select distinct 
key from src a where a.value > b.value)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
-  Stage-1 is a root stage
-  Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
-  Stage: Stage-1
-    Tez
-#### A masked pattern was here ####
-      Edges:
-        Reducer 2 <- Map 1 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE)
-        Reducer 3 <- Map 1 (XPROD_EDGE), Reducer 5 (XPROD_EDGE)
-        Reducer 5 <- Map 4 (SIMPLE_EDGE)
-#### A masked pattern was here ####
-      Vertices:
-        Map 1 
-            Map Operator Tree:
-                TableScan
-                  alias: b
-                  Statistics: Num rows: 500 Data size: 89000 Basic stats: 
COMPLETE Column stats: COMPLETE
-                  Filter Operator
-                    predicate: (key is not null and value is not null) (type: 
boolean)
-                    Statistics: Num rows: 500 Data size: 89000 Basic stats: 
COMPLETE Column stats: COMPLETE
-                    Select Operator
-                      expressions: key (type: string), value (type: string)
-                      outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 500 Data size: 89000 Basic stats: 
COMPLETE Column stats: COMPLETE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: string), _col1 (type: 
string)
-                        sort order: ++
-                        Map-reduce partition columns: _col0 (type: string), 
_col1 (type: string)
-                        Statistics: Num rows: 500 Data size: 89000 Basic 
stats: COMPLETE Column stats: COMPLETE
-                  Filter Operator
-                    predicate: key is not null (type: boolean)
-                    Statistics: Num rows: 500 Data size: 89000 Basic stats: 
COMPLETE Column stats: COMPLETE
-                    Select Operator
-                      expressions: key (type: string), value (type: string)
-                      outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 500 Data size: 89000 Basic stats: 
COMPLETE Column stats: COMPLETE
-                      Reduce Output Operator
-                        sort order: 
-                        Statistics: Num rows: 500 Data size: 89000 Basic 
stats: COMPLETE Column stats: COMPLETE
-                        value expressions: _col0 (type: string), _col1 (type: 
string)
-            Execution mode: llap
-            LLAP IO: no inputs
-        Map 4 
-            Map Operator Tree:
-                TableScan
-                  alias: b
-                  Statistics: Num rows: 500 Data size: 45500 Basic stats: 
COMPLETE Column stats: COMPLETE
-                  Filter Operator
-                    predicate: value is not null (type: boolean)
-                    Statistics: Num rows: 500 Data size: 45500 Basic stats: 
COMPLETE Column stats: COMPLETE
-                    Group By Operator
-                      keys: value (type: string)
-                      mode: hash
-                      outputColumnNames: _col0
-                      Statistics: Num rows: 250 Data size: 22750 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: 250 Data size: 22750 Basic 
stats: COMPLETE Column stats: COMPLETE
-            Execution mode: llap
-            LLAP IO: no inputs
-        Reducer 2 
-            Execution mode: llap
-            Reduce Operator Tree:
-              Merge Join Operator
-                condition map:
-                     Left Semi Join 0 to 1
-                keys:
-                  0 _col0 (type: string), _col1 (type: string)
-                  1 _col0 (type: string), _col1 (type: string)
-                outputColumnNames: _col0, _col1
-                Statistics: Num rows: 500 Data size: 89000 Basic stats: 
COMPLETE Column stats: COMPLETE
-                File Output Operator
-                  compressed: false
-                  Statistics: Num rows: 500 Data size: 89000 Basic stats: 
COMPLETE Column stats: COMPLETE
-                  table:
-                      input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
-                      output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
-                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-        Reducer 3 
-            Execution mode: llap
-            Reduce Operator Tree:
-              Merge Join Operator
-                condition map:
-                     Inner Join 0 to 1
-                keys:
-                  0 
-                  1 
-                outputColumnNames: _col0, _col1, _col2
-                residual filter predicates: {(_col1 > _col2)}
-                Statistics: Num rows: 41666 Data size: 11208154 Basic stats: 
COMPLETE Column stats: COMPLETE
-                Select Operator
-                  expressions: _col0 (type: string), _col1 (type: string)
-                  outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 41666 Data size: 7416548 Basic stats: 
COMPLETE Column stats: COMPLETE
-                  Group By Operator
-                    keys: _col0 (type: string), _col1 (type: string)
-                    mode: hash
-                    outputColumnNames: _col0, _col1
-                    Statistics: Num rows: 10609 Data size: 1888402 Basic 
stats: COMPLETE Column stats: COMPLETE
-                    Reduce Output Operator
-                      key expressions: _col0 (type: string), _col1 (type: 
string)
-                      sort order: ++
-                      Map-reduce partition columns: _col0 (type: string), 
_col1 (type: string)
-                      Statistics: Num rows: 10609 Data size: 1888402 Basic 
stats: COMPLETE Column stats: COMPLETE
-        Reducer 5 
-            Execution mode: llap
-            Reduce Operator Tree:
-              Group By Operator
-                keys: KEY._col0 (type: string)
-                mode: mergepartial
-                outputColumnNames: _col0
-                Statistics: Num rows: 250 Data size: 22750 Basic stats: 
COMPLETE Column stats: COMPLETE
-                Reduce Output Operator
-                  sort order: 
-                  Statistics: Num rows: 250 Data size: 22750 Basic stats: 
COMPLETE Column stats: COMPLETE
-                  value expressions: _col0 (type: string)
-
-  Stage: Stage-0
-    Fetch Operator
-      limit: -1
-      Processor Tree:
-        ListSink
-
-Warning: Shuffle Join MERGEJOIN[30][tables = [$hdt$_1, $hdt$_2]] in Stage 
'Reducer 3' is a cross product
-PREHOOK: query: select * from src b where b.key in (select distinct key from 
src a where a.value > b.value)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@src
-#### A masked pattern was here ####
-POSTHOOK: query: select * from src b where b.key in (select distinct key from 
src a where a.value > b.value)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@src
-#### A masked pattern was here ####
-10     val_10
-100    val_100
-100    val_100
-103    val_103
-103    val_103
-104    val_104
-104    val_104
-105    val_105
-11     val_11
-111    val_111
-113    val_113
-113    val_113
-114    val_114
-116    val_116
-118    val_118
-118    val_118
-119    val_119
-119    val_119
-119    val_119
-12     val_12
-12     val_12
-120    val_120
-120    val_120
-125    val_125
-125    val_125
-126    val_126
-128    val_128
-128    val_128
-128    val_128
-129    val_129
-129    val_129
-131    val_131
-133    val_133
-134    val_134
-134    val_134
-136    val_136
-137    val_137
-137    val_137
-138    val_138
-138    val_138
-138    val_138
-138    val_138
-143    val_143
-145    val_145
-146    val_146
-146    val_146
-149    val_149
-149    val_149
-15     val_15
-15     val_15
-150    val_150
-152    val_152
-152    val_152
-153    val_153
-155    val_155
-156    val_156
-157    val_157
-158    val_158
-160    val_160
-162    val_162
-163    val_163
-164    val_164
-164    val_164
-165    val_165
-165    val_165
-166    val_166
-167    val_167
-167    val_167
-167    val_167
-168    val_168
-169    val_169
-169    val_169
-169    val_169
-169    val_169
-17     val_17
-170    val_170
-172    val_172
-172    val_172
-174    val_174
-174    val_174
-175    val_175
-175    val_175
-176    val_176
-176    val_176
-177    val_177
-178    val_178
-179    val_179
-179    val_179
-18     val_18
-18     val_18
-180    val_180
-181    val_181
-183    val_183
-186    val_186
-187    val_187
-187    val_187
-187    val_187
-189    val_189
-19     val_19
-190    val_190
-191    val_191
-191    val_191
-192    val_192
-193    val_193
-193    val_193
-193    val_193
-194    val_194
-195    val_195
-195    val_195
-196    val_196
-197    val_197
-197    val_197
-199    val_199
-199    val_199
-199    val_199
-2      val_2
-20     val_20
-200    val_200
-200    val_200
-201    val_201
-202    val_202
-203    val_203
-203    val_203
-205    val_205
-205    val_205
-207    val_207
-207    val_207
-208    val_208
-208    val_208
-208    val_208
-209    val_209
-209    val_209
-213    val_213
-213    val_213
-214    val_214
-216    val_216
-216    val_216
-217    val_217
-217    val_217
-218    val_218
-219    val_219
-219    val_219
-221    val_221
-221    val_221
-222    val_222
-223    val_223
-223    val_223
-224    val_224
-224    val_224
-226    val_226
-228    val_228
-229    val_229
-229    val_229
-230    val_230
-230    val_230
-230    val_230
-230    val_230
-230    val_230
-233    val_233
-233    val_233
-235    val_235
-237    val_237
-237    val_237
-238    val_238
-238    val_238
-239    val_239
-239    val_239
-24     val_24
-24     val_24
-241    val_241
-242    val_242
-242    val_242
-244    val_244
-247    val_247
-248    val_248
-249    val_249
-252    val_252
-255    val_255
-255    val_255
-256    val_256
-256    val_256
-257    val_257
-258    val_258
-26     val_26
-26     val_26
-260    val_260
-262    val_262
-263    val_263
-265    val_265
-265    val_265
-266    val_266
-27     val_27
-272    val_272
-272    val_272
-273    val_273
-273    val_273
-273    val_273
-274    val_274
-275    val_275
-277    val_277
-277    val_277
-277    val_277
-277    val_277
-278    val_278
-278    val_278
-28     val_28
-280    val_280
-280    val_280
-281    val_281
-281    val_281
-282    val_282
-282    val_282
-283    val_283
-284    val_284
-285    val_285
-286    val_286
-287    val_287
-288    val_288
-288    val_288
-289    val_289
-291    val_291
-292    val_292
-296    val_296
-298    val_298
-298    val_298
-298    val_298
-30     val_30
-302    val_302
-305    val_305
-306    val_306
-307    val_307
-307    val_307
-308    val_308
-309    val_309
-309    val_309
-310    val_310
-311    val_311
-311    val_311
-311    val_311
-315    val_315
-316    val_316
-316    val_316
-316    val_316
-317    val_317
-317    val_317
-318    val_318
-318    val_318
-318    val_318
-321    val_321
-321    val_321
-322    val_322
-322    val_322
-323    val_323
-325    val_325
-325    val_325
-327    val_327
-327    val_327
-327    val_327
-33     val_33
-331    val_331
-331    val_331
-332    val_332
-333    val_333
-333    val_333
-335    val_335
-336    val_336
-338    val_338
-339    val_339
-34     val_34
-341    val_341
-342    val_342
-342    val_342
-344    val_344
-344    val_344
-345    val_345
-348    val_348
-348    val_348
-348    val_348
-348    val_348
-348    val_348
-35     val_35
-35     val_35
-35     val_35
-351    val_351
-353    val_353
-353    val_353
-356    val_356
-360    val_360
-362    val_362
-364    val_364
-365    val_365
-366    val_366
-367    val_367
-367    val_367
-368    val_368
-369    val_369
-369    val_369
-369    val_369
-37     val_37
-37     val_37
-373    val_373
-374    val_374
-375    val_375
-377    val_377
-378    val_378
-379    val_379
-382    val_382
-382    val_382
-384    val_384
-384    val_384
-384    val_384
-386    val_386
-389    val_389
-392    val_392
-393    val_393
-394    val_394
-395    val_395
-395    val_395
-396    val_396
-396    val_396
-396    val_396
-397    val_397
-397    val_397
-399    val_399
-399    val_399
-4      val_4
-400    val_400
-401    val_401
-401    val_401
-401    val_401
-401    val_401
-401    val_401
-402    val_402
-403    val_403
-403    val_403
-403    val_403
-404    val_404
-404    val_404
-406    val_406
-406    val_406
-406    val_406
-406    val_406
-407    val_407
-409    val_409
-409    val_409
-409    val_409
-41     val_41
-411    val_411
-413    val_413
-413    val_413
-414    val_414
-414    val_414
-417    val_417
-417    val_417
-417    val_417
-418    val_418
-419    val_419
-42     val_42
-42     val_42
-421    val_421
-424    val_424
-424    val_424
-427    val_427
-429    val_429
-429    val_429
-43     val_43
-430    val_430
-430    val_430
-430    val_430
-431    val_431
-431    val_431
-431    val_431
-432    val_432
-435    val_435
-436    val_436
-437    val_437
-438    val_438
-438    val_438
-438    val_438
-439    val_439
-439    val_439
-44     val_44
-443    val_443
-444    val_444
-446    val_446
-448    val_448
-449    val_449
-452    val_452
-453    val_453
-454    val_454
-454    val_454
-454    val_454
-455    val_455
-457    val_457
-458    val_458
-458    val_458
-459    val_459
-459    val_459
-460    val_460
-462    val_462
-462    val_462
-463    val_463
-463    val_463
-466    val_466
-466    val_466
-466    val_466
-467    val_467
-468    val_468
-468    val_468
-468    val_468
-468    val_468
-469    val_469
-469    val_469
-469    val_469
-469    val_469
-469    val_469
-47     val_47
-470    val_470
-472    val_472
-475    val_475
-477    val_477
-478    val_478
-478    val_478
-479    val_479
-480    val_480
-480    val_480
-480    val_480
-481    val_481
-482    val_482
-483    val_483
-484    val_484
-485    val_485
-487    val_487
-489    val_489
-489    val_489
-489    val_489
-489    val_489
-490    val_490
-491    val_491
-492    val_492
-492    val_492
-493    val_493
-494    val_494
-495    val_495
-496    val_496
-497    val_497
-498    val_498
-498    val_498
-498    val_498
-5      val_5
-5      val_5
-5      val_5
-51     val_51
-51     val_51
-53     val_53
-54     val_54
-57     val_57
-58     val_58
-58     val_58
-64     val_64
-65     val_65
-66     val_66
-67     val_67
-67     val_67
-69     val_69
-70     val_70
-70     val_70
-70     val_70
-72     val_72
-72     val_72
-74     val_74
-76     val_76
-76     val_76
-77     val_77
-78     val_78
-8      val_8
-80     val_80
-82     val_82
-83     val_83
-83     val_83
-84     val_84
-84     val_84
-85     val_85
-86     val_86
-87     val_87
-9      val_9
-90     val_90
-90     val_90
-90     val_90
-92     val_92
-95     val_95
-95     val_95
-96     val_96
-97     val_97
-97     val_97
-98     val_98
-98     val_98
 PREHOOK: query: select p_mfgr, p_name, p_size 
 from part 
 where part.p_size in 

http://git-wip-us.apache.org/repos/asf/hive/blob/fde194e3/ql/src/test/results/clientpositive/spark/subquery_in.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/subquery_in.q.out 
b/ql/src/test/results/clientpositive/spark/subquery_in.q.out
index 3079648..fd25e36 100644
--- a/ql/src/test/results/clientpositive/spark/subquery_in.q.out
+++ b/ql/src/test/results/clientpositive/spark/subquery_in.q.out
@@ -599,7 +599,8 @@ STAGE PLANS:
   Stage: Stage-1
     Spark
       Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 2), Map 3 (PARTITION-LEVEL 
SORT, 2)
+        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 2), Reducer 4 
(PARTITION-LEVEL SORT, 2)
+        Reducer 4 <- Map 3 (GROUP, 2)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -627,20 +628,16 @@ STAGE PLANS:
                   Filter Operator
                     predicate: ((key > '9') and value is not null) (type: 
boolean)
                     Statistics: Num rows: 166 Data size: 1763 Basic stats: 
COMPLETE Column stats: NONE
-                    Select Operator
-                      expressions: key (type: string), value (type: string)
+                    Group By Operator
+                      keys: key (type: string), value (type: string)
+                      mode: hash
                       outputColumnNames: _col0, _col1
                       Statistics: Num rows: 166 Data size: 1763 Basic stats: 
COMPLETE Column stats: NONE
-                      Group By Operator
-                        keys: _col0 (type: string), _col1 (type: string)
-                        mode: hash
-                        outputColumnNames: _col0, _col1
+                      Reduce Output Operator
+                        key expressions: _col0 (type: string), _col1 (type: 
string)
+                        sort order: ++
+                        Map-reduce partition columns: _col0 (type: string), 
_col1 (type: string)
                         Statistics: Num rows: 166 Data size: 1763 Basic stats: 
COMPLETE Column stats: NONE
-                        Reduce Output Operator
-                          key expressions: _col0 (type: string), _col1 (type: 
string)
-                          sort order: ++
-                          Map-reduce partition columns: _col0 (type: string), 
_col1 (type: string)
-                          Statistics: Num rows: 166 Data size: 1763 Basic 
stats: COMPLETE Column stats: NONE
         Reducer 2 
             Reduce Operator Tree:
               Join Operator
@@ -658,6 +655,23 @@ STAGE PLANS:
                       input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
                       output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+        Reducer 4 
+            Reduce Operator Tree:
+              Group By Operator
+                keys: KEY._col0 (type: string), KEY._col1 (type: string)
+                mode: mergepartial
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE 
Column stats: NONE
+                Group By Operator
+                  keys: _col0 (type: string), _col1 (type: string)
+                  mode: hash
+                  outputColumnNames: _col0, _col1
+                  Statistics: Num rows: 83 Data size: 881 Basic stats: 
COMPLETE Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: _col0 (type: string), _col1 (type: string)
+                    sort order: ++
+                    Map-reduce partition columns: _col0 (type: string), _col1 
(type: string)
+                    Statistics: Num rows: 83 Data size: 881 Basic stats: 
COMPLETE Column stats: NONE
 
   Stage: Stage-0
     Fetch Operator
@@ -844,643 +858,6 @@ POSTHOOK: Input: default@src
 97     val_97
 98     val_98
 98     val_98
-Warning: Shuffle Join JOIN[15][tables = [$hdt$_1, $hdt$_2]] in Work 'Reducer 
4' is a cross product
-PREHOOK: query: explain select * from src b where b.key in (select distinct 
key from src a where a.value > b.value)
-PREHOOK: type: QUERY
-POSTHOOK: query: explain select * from src b where b.key in (select distinct 
key from src a where a.value > b.value)
-POSTHOOK: type: QUERY
-STAGE DEPENDENCIES:
-  Stage-1 is a root stage
-  Stage-0 depends on stages: Stage-1
-
-STAGE PLANS:
-  Stage: Stage-1
-    Spark
-      Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 2), Reducer 4 
(PARTITION-LEVEL SORT, 2)
-        Reducer 4 <- Map 3 (PARTITION-LEVEL SORT, 1), Reducer 6 
(PARTITION-LEVEL SORT, 1)
-        Reducer 6 <- Map 5 (GROUP, 2)
-#### A masked pattern was here ####
-      Vertices:
-        Map 1 
-            Map Operator Tree:
-                TableScan
-                  alias: b
-                  Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                  Filter Operator
-                    predicate: (key is not null and value is not null) (type: 
boolean)
-                    Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                    Select Operator
-                      expressions: key (type: string), value (type: string)
-                      outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: string), _col1 (type: 
string)
-                        sort order: ++
-                        Map-reduce partition columns: _col0 (type: string), 
_col1 (type: string)
-                        Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-        Map 3 
-            Map Operator Tree:
-                TableScan
-                  alias: a
-                  Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                  Filter Operator
-                    predicate: key is not null (type: boolean)
-                    Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                    Select Operator
-                      expressions: key (type: string), value (type: string)
-                      outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                      Reduce Output Operator
-                        sort order: 
-                        Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                        value expressions: _col0 (type: string), _col1 (type: 
string)
-        Map 5 
-            Map Operator Tree:
-                TableScan
-                  alias: b
-                  Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                  Filter Operator
-                    predicate: value is not null (type: boolean)
-                    Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                    Group By Operator
-                      keys: value (type: string)
-                      mode: hash
-                      outputColumnNames: _col0
-                      Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: string)
-                        sort order: +
-                        Map-reduce partition columns: _col0 (type: string)
-                        Statistics: Num rows: 500 Data size: 5312 Basic stats: 
COMPLETE Column stats: NONE
-        Reducer 2 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Left Semi Join 0 to 1
-                keys:
-                  0 _col0 (type: string), _col1 (type: string)
-                  1 _col0 (type: string), _col1 (type: string)
-                outputColumnNames: _col0, _col1
-                Statistics: Num rows: 45832 Data size: 1019683 Basic stats: 
COMPLETE Column stats: NONE
-                File Output Operator
-                  compressed: false
-                  Statistics: Num rows: 45832 Data size: 1019683 Basic stats: 
COMPLETE Column stats: NONE
-                  table:
-                      input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
-                      output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
-                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-        Reducer 4 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Inner Join 0 to 1
-                keys:
-                  0 
-                  1 
-                outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 125000 Data size: 2781000 Basic stats: 
COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: (_col1 > _col2) (type: boolean)
-                  Statistics: Num rows: 41666 Data size: 926985 Basic stats: 
COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: _col0 (type: string), _col1 (type: string)
-                    outputColumnNames: _col0, _col1
-                    Statistics: Num rows: 41666 Data size: 926985 Basic stats: 
COMPLETE Column stats: NONE
-                    Group By Operator
-                      keys: _col0 (type: string), _col1 (type: string)
-                      mode: hash
-                      outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 41666 Data size: 926985 Basic 
stats: COMPLETE Column stats: NONE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: string), _col1 (type: 
string)
-                        sort order: ++
-                        Map-reduce partition columns: _col0 (type: string), 
_col1 (type: string)
-                        Statistics: Num rows: 41666 Data size: 926985 Basic 
stats: COMPLETE Column stats: NONE
-        Reducer 6 
-            Reduce Operator Tree:
-              Group By Operator
-                keys: KEY._col0 (type: string)
-                mode: mergepartial
-                outputColumnNames: _col0
-                Statistics: Num rows: 250 Data size: 2656 Basic stats: 
COMPLETE Column stats: NONE
-                Reduce Output Operator
-                  sort order: 
-                  Statistics: Num rows: 250 Data size: 2656 Basic stats: 
COMPLETE Column stats: NONE
-                  value expressions: _col0 (type: string)
-
-  Stage: Stage-0
-    Fetch Operator
-      limit: -1
-      Processor Tree:
-        ListSink
-
-Warning: Shuffle Join JOIN[15][tables = [$hdt$_1, $hdt$_2]] in Work 'Reducer 
4' is a cross product
-PREHOOK: query: select * from src b where b.key in (select distinct key from 
src a where a.value > b.value)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@src
-#### A masked pattern was here ####
-POSTHOOK: query: select * from src b where b.key in (select distinct key from 
src a where a.value > b.value)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@src
-#### A masked pattern was here ####
-10     val_10
-100    val_100
-100    val_100
-103    val_103
-103    val_103
-104    val_104
-104    val_104
-105    val_105
-11     val_11
-111    val_111
-113    val_113
-113    val_113
-114    val_114
-116    val_116
-118    val_118
-118    val_118
-119    val_119
-119    val_119
-119    val_119
-12     val_12
-12     val_12
-120    val_120
-120    val_120
-125    val_125
-125    val_125
-126    val_126
-128    val_128
-128    val_128
-128    val_128
-129    val_129
-129    val_129
-131    val_131
-133    val_133
-134    val_134
-134    val_134
-136    val_136
-137    val_137
-137    val_137
-138    val_138
-138    val_138
-138    val_138
-138    val_138
-143    val_143
-145    val_145
-146    val_146
-146    val_146
-149    val_149
-149    val_149
-15     val_15
-15     val_15
-150    val_150
-152    val_152
-152    val_152
-153    val_153
-155    val_155
-156    val_156
-157    val_157
-158    val_158
-160    val_160
-162    val_162
-163    val_163
-164    val_164
-164    val_164
-165    val_165
-165    val_165
-166    val_166
-167    val_167
-167    val_167
-167    val_167
-168    val_168
-169    val_169
-169    val_169
-169    val_169
-169    val_169
-17     val_17
-170    val_170
-172    val_172
-172    val_172
-174    val_174
-174    val_174
-175    val_175
-175    val_175
-176    val_176
-176    val_176
-177    val_177
-178    val_178
-179    val_179
-179    val_179
-18     val_18
-18     val_18
-180    val_180
-181    val_181
-183    val_183
-186    val_186
-187    val_187
-187    val_187
-187    val_187
-189    val_189
-19     val_19
-190    val_190
-191    val_191
-191    val_191
-192    val_192
-193    val_193
-193    val_193
-193    val_193
-194    val_194
-195    val_195
-195    val_195
-196    val_196
-197    val_197
-197    val_197
-199    val_199
-199    val_199
-199    val_199
-2      val_2
-20     val_20
-200    val_200
-200    val_200
-201    val_201
-202    val_202
-203    val_203
-203    val_203
-205    val_205
-205    val_205
-207    val_207
-207    val_207
-208    val_208
-208    val_208
-208    val_208
-209    val_209
-209    val_209
-213    val_213
-213    val_213
-214    val_214
-216    val_216
-216    val_216
-217    val_217
-217    val_217
-218    val_218
-219    val_219
-219    val_219
-221    val_221
-221    val_221
-222    val_222
-223    val_223
-223    val_223
-224    val_224
-224    val_224
-226    val_226
-228    val_228
-229    val_229
-229    val_229
-230    val_230
-230    val_230
-230    val_230
-230    val_230
-230    val_230
-233    val_233
-233    val_233
-235    val_235
-237    val_237
-237    val_237
-238    val_238
-238    val_238
-239    val_239
-239    val_239
-24     val_24
-24     val_24
-241    val_241
-242    val_242
-242    val_242
-244    val_244
-247    val_247
-248    val_248
-249    val_249
-252    val_252
-255    val_255
-255    val_255
-256    val_256
-256    val_256
-257    val_257
-258    val_258
-26     val_26
-26     val_26
-260    val_260
-262    val_262
-263    val_263
-265    val_265
-265    val_265
-266    val_266
-27     val_27
-272    val_272
-272    val_272
-273    val_273
-273    val_273
-273    val_273
-274    val_274
-275    val_275
-277    val_277
-277    val_277
-277    val_277
-277    val_277
-278    val_278
-278    val_278
-28     val_28
-280    val_280
-280    val_280
-281    val_281
-281    val_281
-282    val_282
-282    val_282
-283    val_283
-284    val_284
-285    val_285
-286    val_286
-287    val_287
-288    val_288
-288    val_288
-289    val_289
-291    val_291
-292    val_292
-296    val_296
-298    val_298
-298    val_298
-298    val_298
-30     val_30
-302    val_302
-305    val_305
-306    val_306
-307    val_307
-307    val_307
-308    val_308
-309    val_309
-309    val_309
-310    val_310
-311    val_311
-311    val_311
-311    val_311
-315    val_315
-316    val_316
-316    val_316
-316    val_316
-317    val_317
-317    val_317
-318    val_318
-318    val_318
-318    val_318
-321    val_321
-321    val_321
-322    val_322
-322    val_322
-323    val_323
-325    val_325
-325    val_325
-327    val_327
-327    val_327
-327    val_327
-33     val_33
-331    val_331
-331    val_331
-332    val_332
-333    val_333
-333    val_333
-335    val_335
-336    val_336
-338    val_338
-339    val_339
-34     val_34
-341    val_341
-342    val_342
-342    val_342
-344    val_344
-344    val_344
-345    val_345
-348    val_348
-348    val_348
-348    val_348
-348    val_348
-348    val_348
-35     val_35
-35     val_35
-35     val_35
-351    val_351
-353    val_353
-353    val_353
-356    val_356
-360    val_360
-362    val_362
-364    val_364
-365    val_365
-366    val_366
-367    val_367
-367    val_367
-368    val_368
-369    val_369
-369    val_369
-369    val_369
-37     val_37
-37     val_37
-373    val_373
-374    val_374
-375    val_375
-377    val_377
-378    val_378
-379    val_379
-382    val_382
-382    val_382
-384    val_384
-384    val_384
-384    val_384
-386    val_386
-389    val_389
-392    val_392
-393    val_393
-394    val_394
-395    val_395
-395    val_395
-396    val_396
-396    val_396
-396    val_396
-397    val_397
-397    val_397
-399    val_399
-399    val_399
-4      val_4
-400    val_400
-401    val_401
-401    val_401
-401    val_401
-401    val_401
-401    val_401
-402    val_402
-403    val_403
-403    val_403
-403    val_403
-404    val_404
-404    val_404
-406    val_406
-406    val_406
-406    val_406
-406    val_406
-407    val_407
-409    val_409
-409    val_409
-409    val_409
-41     val_41
-411    val_411
-413    val_413
-413    val_413
-414    val_414
-414    val_414
-417    val_417
-417    val_417
-417    val_417
-418    val_418
-419    val_419
-42     val_42
-42     val_42
-421    val_421
-424    val_424
-424    val_424
-427    val_427
-429    val_429
-429    val_429
-43     val_43
-430    val_430
-430    val_430
-430    val_430
-431    val_431
-431    val_431
-431    val_431
-432    val_432
-435    val_435
-436    val_436
-437    val_437
-438    val_438
-438    val_438
-438    val_438
-439    val_439
-439    val_439
-44     val_44
-443    val_443
-444    val_444
-446    val_446
-448    val_448
-449    val_449
-452    val_452
-453    val_453
-454    val_454
-454    val_454
-454    val_454
-455    val_455
-457    val_457
-458    val_458
-458    val_458
-459    val_459
-459    val_459
-460    val_460
-462    val_462
-462    val_462
-463    val_463
-463    val_463
-466    val_466
-466    val_466
-466    val_466
-467    val_467
-468    val_468
-468    val_468
-468    val_468
-468    val_468
-469    val_469
-469    val_469
-469    val_469
-469    val_469
-469    val_469
-47     val_47
-470    val_470
-472    val_472
-475    val_475
-477    val_477
-478    val_478
-478    val_478
-479    val_479
-480    val_480
-480    val_480
-480    val_480
-481    val_481
-482    val_482
-483    val_483
-484    val_484
-485    val_485
-487    val_487
-489    val_489
-489    val_489
-489    val_489
-489    val_489
-490    val_490
-491    val_491
-492    val_492
-492    val_492
-493    val_493
-494    val_494
-495    val_495
-496    val_496
-497    val_497
-498    val_498
-498    val_498
-498    val_498
-5      val_5
-5      val_5
-5      val_5
-51     val_51
-51     val_51
-53     val_53
-54     val_54
-57     val_57
-58     val_58
-58     val_58
-64     val_64
-65     val_65
-66     val_66
-67     val_67
-67     val_67
-69     val_69
-70     val_70
-70     val_70
-70     val_70
-72     val_72
-72     val_72
-74     val_74
-76     val_76
-76     val_76
-77     val_77
-78     val_78
-8      val_8
-80     val_80
-82     val_82
-83     val_83
-83     val_83
-84     val_84
-84     val_84
-85     val_85
-86     val_86
-87     val_87
-9      val_9
-90     val_90
-90     val_90
-90     val_90
-92     val_92
-95     val_95
-95     val_95
-96     val_96
-97     val_97
-97     val_97
-98     val_98
-98     val_98
 PREHOOK: query: select p_mfgr, p_name, p_size 
 from part 
 where part.p_size in 

http://git-wip-us.apache.org/repos/asf/hive/blob/fde194e3/ql/src/test/results/clientpositive/subquery_unqualcolumnrefs.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/subquery_unqualcolumnrefs.q.out 
b/ql/src/test/results/clientpositive/subquery_unqualcolumnrefs.q.out
index bb9faa8..79b7d83 100644
--- a/ql/src/test/results/clientpositive/subquery_unqualcolumnrefs.q.out
+++ b/ql/src/test/results/clientpositive/subquery_unqualcolumnrefs.q.out
@@ -193,21 +193,23 @@ where b.key in
         )
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-1 is a root stage
+  Stage-2 is a root stage
+  Stage-1 depends on stages: Stage-2
   Stage-0 depends on stages: Stage-1
 
 STAGE PLANS:
-  Stage: Stage-1
+  Stage: Stage-2
     Map Reduce
       Map Operator Tree:
           TableScan
-            alias: b
+            alias: src
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE 
Column stats: NONE
             Filter Operator
               predicate: ((key > '9') and value is not null) (type: boolean)
               Statistics: Num rows: 166 Data size: 1763 Basic stats: COMPLETE 
Column stats: NONE
-              Select Operator
-                expressions: key (type: string), value (type: string)
+              Group By Operator
+                keys: key (type: string), value (type: string)
+                mode: hash
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 166 Data size: 1763 Basic stats: 
COMPLETE Column stats: NONE
                 Reduce Output Operator
@@ -215,8 +217,29 @@ STAGE PLANS:
                   sort order: ++
                   Map-reduce partition columns: _col0 (type: string), _col1 
(type: string)
                   Statistics: Num rows: 166 Data size: 1763 Basic stats: 
COMPLETE Column stats: NONE
+      Reduce Operator Tree:
+        Group By Operator
+          keys: KEY._col0 (type: string), KEY._col1 (type: string)
+          mode: mergepartial
+          outputColumnNames: _col0, _col1
+          Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE Column 
stats: NONE
+          Group By Operator
+            keys: _col0 (type: string), _col1 (type: string)
+            mode: hash
+            outputColumnNames: _col0, _col1
+            Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE 
Column stats: NONE
+            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-1
+    Map Reduce
+      Map Operator Tree:
           TableScan
-            alias: src
+            alias: b
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE 
Column stats: NONE
             Filter Operator
               predicate: ((key > '9') and value is not null) (type: boolean)
@@ -225,16 +248,17 @@ STAGE PLANS:
                 expressions: key (type: string), value (type: string)
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 166 Data size: 1763 Basic stats: 
COMPLETE Column stats: NONE
-                Group By Operator
-                  keys: _col0 (type: string), _col1 (type: string)
-                  mode: hash
-                  outputColumnNames: _col0, _col1
+                Reduce Output Operator
+                  key expressions: _col0 (type: string), _col1 (type: string)
+                  sort order: ++
+                  Map-reduce partition columns: _col0 (type: string), _col1 
(type: string)
                   Statistics: Num rows: 166 Data size: 1763 Basic stats: 
COMPLETE Column stats: NONE
-                  Reduce Output Operator
-                    key expressions: _col0 (type: string), _col1 (type: string)
-                    sort order: ++
-                    Map-reduce partition columns: _col0 (type: string), _col1 
(type: string)
-                    Statistics: Num rows: 166 Data size: 1763 Basic stats: 
COMPLETE Column stats: NONE
+          TableScan
+            Reduce Output Operator
+              key expressions: _col0 (type: string), _col1 (type: string)
+              sort order: ++
+              Map-reduce partition columns: _col0 (type: string), _col1 (type: 
string)
+              Statistics: Num rows: 83 Data size: 881 Basic stats: COMPLETE 
Column stats: NONE
       Reduce Operator Tree:
         Join Operator
           condition map:

Reply via email to