You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2014/10/27 20:57:03 UTC

svn commit: r1634671 [25/46] - in /hive/branches/spark: itests/src/test/resources/ ql/src/test/results/clientpositive/spark/

Added: hive/branches/spark/ql/src/test/results/clientpositive/spark/mapjoin_test_outer.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/ql/src/test/results/clientpositive/spark/mapjoin_test_outer.q.out?rev=1634671&view=auto
==============================================================================
--- hive/branches/spark/ql/src/test/results/clientpositive/spark/mapjoin_test_outer.q.out (added)
+++ hive/branches/spark/ql/src/test/results/clientpositive/spark/mapjoin_test_outer.q.out Mon Oct 27 19:56:58 2014
@@ -0,0 +1,1342 @@
+PREHOOK: query: --HIVE-2101 mapjoin sometimes gives wrong results if there is a filter in the on condition
+
+create table dest_1 (key STRING, value STRING) stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dest_1
+POSTHOOK: query: --HIVE-2101 mapjoin sometimes gives wrong results if there is a filter in the on condition
+
+create table dest_1 (key STRING, value STRING) stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dest_1
+PREHOOK: query: insert overwrite table dest_1 select * from src1 order by src1.value limit 8
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src1
+PREHOOK: Output: default@dest_1
+[Error 30017]: Skipping stats aggregation by error org.apache.hadoop.hive.ql.metadata.HiveException: [Error 30015]: Stats aggregator of type counter cannot be connected to
+POSTHOOK: query: insert overwrite table dest_1 select * from src1 order by src1.value limit 8
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src1
+POSTHOOK: Output: default@dest_1
+POSTHOOK: Lineage: dest_1.key SIMPLE [(src1)src1.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: dest_1.value SIMPLE [(src1)src1.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: insert into table dest_1 select "333444","555666" from src1 limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src1
+PREHOOK: Output: default@dest_1
+[Error 30017]: Skipping stats aggregation by error org.apache.hadoop.hive.ql.metadata.HiveException: [Error 30015]: Stats aggregator of type counter cannot be connected to
+POSTHOOK: query: insert into table dest_1 select "333444","555666" from src1 limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src1
+POSTHOOK: Output: default@dest_1
+POSTHOOK: Lineage: dest_1.key SIMPLE []
+POSTHOOK: Lineage: dest_1.value SIMPLE []
+PREHOOK: query: create table dest_2 (key STRING, value STRING) stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dest_2
+POSTHOOK: query: create table dest_2 (key STRING, value STRING) stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dest_2
+PREHOOK: query: insert into table dest_2 select * from dest_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dest_1
+PREHOOK: Output: default@dest_2
+[Error 30017]: Skipping stats aggregation by error org.apache.hadoop.hive.ql.metadata.HiveException: [Error 30015]: Stats aggregator of type counter cannot be connected to
+POSTHOOK: query: insert into table dest_2 select * from dest_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dest_1
+POSTHOOK: Output: default@dest_2
+POSTHOOK: Lineage: dest_2.key SIMPLE [(dest_1)dest_1.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: dest_2.value SIMPLE [(dest_1)dest_1.FieldSchema(name:value, type:string, comment:null), ]
+PREHOOK: query: SELECT * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dest_1
+PREHOOK: Input: default@dest_2
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dest_1
+POSTHOOK: Input: default@dest_2
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+NULL	NULL	333444	555666	333444	555666
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+128		128		128	
+146	val_146	146	val_146	146	val_146
+224		224		224	
+369		369		369	
+PREHOOK: query: explain
+SELECT /*+ mapjoin(src1, src2) */ * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+SELECT /*+ mapjoin(src1, src2) */ * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.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 (GROUP PARTITION-LEVEL SORT, 1), Map 4 (GROUP PARTITION-LEVEL SORT, 1), Map 5 (GROUP PARTITION-LEVEL SORT, 1)
+        Reducer 3 <- Reducer 2 (GROUP SORT, 1)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: src2
+                  Statistics: Num rows: 0 Data size: 49 Basic stats: PARTIAL Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: key (type: string)
+                    sort order: +
+                    Map-reduce partition columns: key (type: string)
+                    Statistics: Num rows: 0 Data size: 49 Basic stats: PARTIAL Column stats: NONE
+                    value expressions: value (type: string)
+        Map 4 
+            Map Operator Tree:
+                TableScan
+                  alias: src3
+                  Statistics: Num rows: 0 Data size: 49 Basic stats: PARTIAL Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: key (type: string)
+                    sort order: +
+                    Map-reduce partition columns: key (type: string)
+                    Statistics: Num rows: 0 Data size: 49 Basic stats: PARTIAL Column stats: NONE
+                    value expressions: value (type: string)
+        Map 5 
+            Map Operator Tree:
+                TableScan
+                  alias: src1
+                  Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: key (type: string)
+                    sort order: +
+                    Map-reduce partition columns: key (type: string)
+                    Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE
+                    value expressions: value (type: string)
+        Reducer 2 
+            Reduce Operator Tree:
+              Join Operator
+                condition map:
+                     Right Outer Join0 to 1
+                     Inner Join 1 to 2
+                condition expressions:
+                  0 {KEY.reducesinkkey0} {VALUE._col0}
+                  1 {KEY.reducesinkkey0} {VALUE._col0}
+                  2 {KEY.reducesinkkey0} {VALUE._col0}
+                outputColumnNames: _col0, _col1, _col5, _col6, _col10, _col11
+                Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+                Select Operator
+                  expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string), _col10 (type: string), _col11 (type: string)
+                  outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+                  Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string)
+                    sort order: ++++++
+                    Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+        Reducer 3 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: string), KEY.reducesinkkey1 (type: string), KEY.reducesinkkey2 (type: string), KEY.reducesinkkey3 (type: string), KEY.reducesinkkey4 (type: string), KEY.reducesinkkey5 (type: string)
+                outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+                Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+                  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
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: SELECT /*+ mapjoin(src1, src2) */ * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dest_1
+PREHOOK: Input: default@dest_2
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT /*+ mapjoin(src1, src2) */ * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dest_1
+POSTHOOK: Input: default@dest_2
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+NULL	NULL	333444	555666	333444	555666
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+128		128		128	
+146	val_146	146	val_146	146	val_146
+224		224		224	
+369		369		369	
+PREHOOK: query: SELECT /*+ mapjoin(src1, src2) */ * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src1.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dest_1
+PREHOOK: Input: default@dest_2
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT /*+ mapjoin(src1, src2) */ * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src1.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dest_1
+POSTHOOK: Input: default@dest_2
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+128		128		128	
+146	val_146	146	val_146	146	val_146
+224		224		224	
+369		369		369	
+PREHOOK: query: SELECT * FROM src1
+  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src1.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dest_1
+PREHOOK: Input: default@dest_2
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM src1
+  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src1.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dest_1
+POSTHOOK: Input: default@dest_2
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+128		128		128	
+146	val_146	146	val_146	146	val_146
+224		224		224	
+369		369		369	
+PREHOOK: query: SELECT * FROM src1
+  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dest_1
+PREHOOK: Input: default@dest_2
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM src1
+  LEFT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dest_1
+POSTHOOK: Input: default@dest_2
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+128		128		128	
+146	val_146	146	val_146	146	val_146
+224		224		224	
+369		369		369	
+PREHOOK: query: explain
+SELECT * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+SELECT * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.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 (GROUP PARTITION-LEVEL SORT, 1), Map 4 (GROUP PARTITION-LEVEL SORT, 1), Map 5 (GROUP PARTITION-LEVEL SORT, 1)
+        Reducer 3 <- Reducer 2 (GROUP SORT, 1)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: src2
+                  Statistics: Num rows: 0 Data size: 49 Basic stats: PARTIAL Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: key (type: string)
+                    sort order: +
+                    Map-reduce partition columns: key (type: string)
+                    Statistics: Num rows: 0 Data size: 49 Basic stats: PARTIAL Column stats: NONE
+                    value expressions: value (type: string)
+        Map 4 
+            Map Operator Tree:
+                TableScan
+                  alias: src3
+                  Statistics: Num rows: 0 Data size: 49 Basic stats: PARTIAL Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: key (type: string)
+                    sort order: +
+                    Map-reduce partition columns: key (type: string)
+                    Statistics: Num rows: 0 Data size: 49 Basic stats: PARTIAL Column stats: NONE
+                    value expressions: value (type: string)
+        Map 5 
+            Map Operator Tree:
+                TableScan
+                  alias: src1
+                  Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: key (type: string)
+                    sort order: +
+                    Map-reduce partition columns: key (type: string)
+                    Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE
+                    value expressions: value (type: string)
+        Reducer 2 
+            Reduce Operator Tree:
+              Join Operator
+                condition map:
+                     Right Outer Join0 to 1
+                     Inner Join 1 to 2
+                condition expressions:
+                  0 {KEY.reducesinkkey0} {VALUE._col0}
+                  1 {KEY.reducesinkkey0} {VALUE._col0}
+                  2 {KEY.reducesinkkey0} {VALUE._col0}
+                outputColumnNames: _col0, _col1, _col5, _col6, _col10, _col11
+                Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+                Select Operator
+                  expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string), _col10 (type: string), _col11 (type: string)
+                  outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+                  Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string)
+                    sort order: ++++++
+                    Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+        Reducer 3 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: string), KEY.reducesinkkey1 (type: string), KEY.reducesinkkey2 (type: string), KEY.reducesinkkey3 (type: string), KEY.reducesinkkey4 (type: string), KEY.reducesinkkey5 (type: string)
+                outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+                Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 55 Data size: 420 Basic stats: COMPLETE Column stats: NONE
+                  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
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: SELECT * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dest_1
+PREHOOK: Input: default@dest_2
+PREHOOK: Input: default@src1
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM src1
+  RIGHT OUTER JOIN dest_1 src2 ON (src1.key = src2.key)
+  JOIN dest_2 src3 ON (src2.key = src3.key)
+  SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dest_1
+POSTHOOK: Input: default@dest_2
+POSTHOOK: Input: default@src1
+#### A masked pattern was here ####
+NULL	NULL	333444	555666	333444	555666
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_165				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_193				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_265				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_27				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_409				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+	val_484				
+128		128		128	
+146	val_146	146	val_146	146	val_146
+224		224		224	
+369		369		369	

Added: hive/branches/spark/ql/src/test/results/clientpositive/spark/mergejoins.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/ql/src/test/results/clientpositive/spark/mergejoins.q.out?rev=1634671&view=auto
==============================================================================
--- hive/branches/spark/ql/src/test/results/clientpositive/spark/mergejoins.q.out (added)
+++ hive/branches/spark/ql/src/test/results/clientpositive/spark/mergejoins.q.out Mon Oct 27 19:56:58 2014
@@ -0,0 +1,258 @@
+PREHOOK: query: create table a (val1 int, val2 int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@a
+POSTHOOK: query: create table a (val1 int, val2 int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@a
+PREHOOK: query: create table b (val1 int, val2 int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@b
+POSTHOOK: query: create table b (val1 int, val2 int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@b
+PREHOOK: query: create table c (val1 int, val2 int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@c
+POSTHOOK: query: create table c (val1 int, val2 int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@c
+PREHOOK: query: create table d (val1 int, val2 int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@d
+POSTHOOK: query: create table d (val1 int, val2 int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@d
+PREHOOK: query: create table e (val1 int, val2 int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@e
+POSTHOOK: query: create table e (val1 int, val2 int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@e
+PREHOOK: query: explain select * from a join b on a.val1=b.val1 join c on a.val1=c.val1 join d on a.val1=d.val1 join e on a.val2=e.val2
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select * from a join b on a.val1=b.val1 join c on a.val1=c.val1 join d on a.val1=d.val1 join e on a.val2=e.val2
+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 (GROUP PARTITION-LEVEL SORT, 1), Map 5 (GROUP PARTITION-LEVEL SORT, 1), Map 6 (GROUP PARTITION-LEVEL SORT, 1), Map 7 (GROUP PARTITION-LEVEL SORT, 1)
+        Reducer 3 <- Map 4 (GROUP PARTITION-LEVEL SORT, 1), Reducer 2 (GROUP PARTITION-LEVEL SORT, 1)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: d
+                  Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                  Filter Operator
+                    predicate: val1 is not null (type: boolean)
+                    Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: val1 (type: int)
+                      sort order: +
+                      Map-reduce partition columns: val1 (type: int)
+                      Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                      value expressions: val2 (type: int)
+        Map 4 
+            Map Operator Tree:
+                TableScan
+                  alias: e
+                  Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                  Filter Operator
+                    predicate: val2 is not null (type: boolean)
+                    Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: val2 (type: int)
+                      sort order: +
+                      Map-reduce partition columns: val2 (type: int)
+                      Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                      value expressions: val1 (type: int)
+        Map 5 
+            Map Operator Tree:
+                TableScan
+                  alias: b
+                  Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                  Filter Operator
+                    predicate: val1 is not null (type: boolean)
+                    Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: val1 (type: int)
+                      sort order: +
+                      Map-reduce partition columns: val1 (type: int)
+                      Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                      value expressions: val2 (type: int)
+        Map 6 
+            Map Operator Tree:
+                TableScan
+                  alias: c
+                  Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                  Filter Operator
+                    predicate: val1 is not null (type: boolean)
+                    Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: val1 (type: int)
+                      sort order: +
+                      Map-reduce partition columns: val1 (type: int)
+                      Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                      value expressions: val2 (type: int)
+        Map 7 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                  Filter Operator
+                    predicate: (val1 is not null and val2 is not null) (type: boolean)
+                    Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: val1 (type: int)
+                      sort order: +
+                      Map-reduce partition columns: val1 (type: int)
+                      Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                      value expressions: val2 (type: int)
+        Reducer 2 
+            Reduce Operator Tree:
+              Join Operator
+                condition map:
+                     Inner Join 0 to 1
+                     Inner Join 0 to 2
+                     Inner Join 0 to 3
+                condition expressions:
+                  0 {KEY.reducesinkkey0} {VALUE._col0}
+                  1 {KEY.reducesinkkey0} {VALUE._col0}
+                  2 {KEY.reducesinkkey0} {VALUE._col0}
+                  3 {KEY.reducesinkkey0} {VALUE._col0}
+                outputColumnNames: _col0, _col1, _col5, _col6, _col10, _col11, _col15, _col16
+                Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                Reduce Output Operator
+                  key expressions: _col1 (type: int)
+                  sort order: +
+                  Map-reduce partition columns: _col1 (type: int)
+                  Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                  value expressions: _col0 (type: int), _col5 (type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int), _col15 (type: int), _col16 (type: int)
+        Reducer 3 
+            Reduce Operator Tree:
+              Join Operator
+                condition map:
+                     Inner Join 0 to 1
+                condition expressions:
+                  0 {VALUE._col0} {KEY.reducesinkkey0} {VALUE._col4} {VALUE._col5} {VALUE._col9} {VALUE._col10} {VALUE._col14} {VALUE._col15}
+                  1 {VALUE._col0} {KEY.reducesinkkey0}
+                outputColumnNames: _col0, _col1, _col5, _col6, _col10, _col11, _col15, _col16, _col20, _col21
+                Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                Select Operator
+                  expressions: _col0 (type: int), _col1 (type: int), _col5 (type: int), _col6 (type: int), _col10 (type: int), _col11 (type: int), _col15 (type: int), _col16 (type: int), _col20 (type: int), _col21 (type: int)
+                  outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
+                  Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                  File Output Operator
+                    compressed: false
+                    Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                    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
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: --HIVE-3070 filter on outer join condition removed while merging join tree
+explain select * from src a join src b on a.key=b.key left outer join src c on b.key=c.key and b.key<10
+PREHOOK: type: QUERY
+POSTHOOK: query: --HIVE-3070 filter on outer join condition removed while merging join tree
+explain select * from src a join src b on a.key=b.key left outer join src c on b.key=c.key and b.key<10
+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 (GROUP PARTITION-LEVEL SORT, 1), Map 3 (GROUP PARTITION-LEVEL SORT, 1), Map 4 (GROUP PARTITION-LEVEL SORT, 1)
+#### 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
+                  Reduce Output Operator
+                    key expressions: key (type: string)
+                    sort order: +
+                    Map-reduce partition columns: key (type: string)
+                    Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                    value expressions: value (type: string)
+        Map 3 
+            Map Operator Tree:
+                TableScan
+                  alias: c
+                  Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: key (type: string)
+                    sort order: +
+                    Map-reduce partition columns: key (type: string)
+                    Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                    value expressions: value (type: string)
+        Map 4 
+            Map Operator Tree:
+                TableScan
+                  alias: a
+                  Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: key (type: string)
+                    sort order: +
+                    Map-reduce partition columns: key (type: string)
+                    Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                    value expressions: value (type: string)
+        Reducer 2 
+            Reduce Operator Tree:
+              Join Operator
+                condition map:
+                     Inner Join 0 to 1
+                     Left Outer Join1 to 2
+                condition expressions:
+                  0 {KEY.reducesinkkey0} {VALUE._col0}
+                  1 {KEY.reducesinkkey0} {VALUE._col0}
+                  2 {KEY.reducesinkkey0} {VALUE._col0}
+                filter predicates:
+                  0 
+                  1 {(KEY.reducesinkkey0 < 10)}
+                  2 
+                outputColumnNames: _col0, _col1, _col5, _col6, _col10, _col11
+                Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE
+                Select Operator
+                  expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string), _col10 (type: string), _col11 (type: string)
+                  outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+                  Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE
+                  File Output Operator
+                    compressed: false
+                    Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE
+                    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
+      limit: -1
+      Processor Tree:
+        ListSink
+