You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by gu...@apache.org on 2014/06/23 23:03:31 UTC

svn commit: r1604935 [27/40] - in /hive/trunk: hbase-handler/src/test/results/positive/ ql/src/java/org/apache/hadoop/hive/ql/optimizer/ ql/src/java/org/apache/hadoop/hive/ql/parse/ ql/src/test/results/clientnegative/ ql/src/test/results/clientpositive...

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoin.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoin.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoin.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoin.q.out Mon Jun 23 21:03:24 2014
@@ -88,20 +88,26 @@ STAGE PLANS:
           TableScan
             alias: src2
             Statistics: Num rows: 29 Data size: 5812 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: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-              value expressions: value (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 15 Data size: 3006 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: 15 Data size: 3006 Basic stats: COMPLETE Column stats: NONE
+                value expressions: value (type: string)
           TableScan
             alias: src1
             Statistics: Num rows: 58 Data size: 5812 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: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 29 Data size: 2906 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: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -111,14 +117,14 @@ STAGE PLANS:
             1 {VALUE._col0}
           handleSkewJoin: true
           outputColumnNames: _col0, _col5
-          Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: UDFToInteger(_col0) (type: int), _col5 (type: string)
             outputColumnNames: _col0, _col1
-            Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
               table:
                   input format: org.apache.hadoop.mapred.TextInputFormat
                   output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
@@ -229,39 +235,51 @@ STAGE PLANS:
           TableScan
             alias: d
             Statistics: Num rows: 0 Data size: 30 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: 30 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
           TableScan
             alias: b
             Statistics: Num rows: 0 Data size: 30 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: 30 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
           TableScan
             alias: c
             Statistics: Num rows: 0 Data size: 20 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: 20 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
           TableScan
             alias: a
             Statistics: Num rows: 0 Data size: 30 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: 30 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -274,14 +292,14 @@ STAGE PLANS:
             2 {KEY.reducesinkkey0} {VALUE._col0}
             3 {KEY.reducesinkkey0} {VALUE._col0}
           outputColumnNames: _col0, _col1, _col4, _col5, _col8, _col9, _col12, _col13
-          Statistics: Num rows: 0 Data size: 99 Basic stats: PARTIAL Column stats: NONE
+          Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
           Select Operator
             expressions: _col0 (type: string), _col1 (type: string), _col4 (type: string), _col5 (type: string), _col8 (type: string), _col9 (type: string), _col12 (type: string), _col13 (type: string)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
-            Statistics: Num rows: 0 Data size: 99 Basic stats: PARTIAL Column stats: NONE
+            Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 0 Data size: 99 Basic stats: PARTIAL Column stats: NONE
+              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
@@ -337,39 +355,51 @@ STAGE PLANS:
           TableScan
             alias: d
             Statistics: Num rows: 0 Data size: 30 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: 30 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
           TableScan
             alias: b
             Statistics: Num rows: 0 Data size: 30 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: 30 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
           TableScan
             alias: c
             Statistics: Num rows: 0 Data size: 20 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: 20 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
           TableScan
             alias: a
             Statistics: Num rows: 0 Data size: 30 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: 30 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -382,14 +412,14 @@ STAGE PLANS:
             2 {KEY.reducesinkkey0} {VALUE._col0}
             3 {KEY.reducesinkkey0} {VALUE._col0}
           outputColumnNames: _col0, _col1, _col4, _col5, _col8, _col9, _col12, _col13
-          Statistics: Num rows: 0 Data size: 99 Basic stats: PARTIAL Column stats: NONE
+          Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
           Select Operator
             expressions: _col0 (type: string), _col1 (type: string), _col4 (type: string), _col5 (type: string), _col8 (type: string), _col9 (type: string), _col12 (type: string), _col13 (type: string)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
-            Statistics: Num rows: 0 Data size: 99 Basic stats: PARTIAL Column stats: NONE
+            Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 0 Data size: 99 Basic stats: PARTIAL Column stats: NONE
+              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
@@ -438,21 +468,27 @@ STAGE PLANS:
           TableScan
             alias: c
             Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-            Reduce Output Operator
-              key expressions: (key + 1) (type: double)
-              sort order: +
-              Map-reduce partition columns: (key + 1) (type: double)
-              Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-              value expressions: key (type: string)
+            Filter Operator
+              predicate: (key + 1) is not null (type: boolean)
+              Statistics: Num rows: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
+              Reduce Output Operator
+                key expressions: (key + 1) (type: double)
+                sort order: +
+                Map-reduce partition columns: (key + 1) (type: double)
+                Statistics: Num rows: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
+                value expressions: key (type: string)
           TableScan
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
-            Reduce Output Operator
-              key expressions: UDFToDouble(key) (type: double)
-              sort order: +
-              Map-reduce partition columns: UDFToDouble(key) (type: double)
-              Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
-              value expressions: key (type: string), val (type: string)
+            Filter Operator
+              predicate: UDFToDouble(key) is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+              Reduce Output Operator
+                key expressions: UDFToDouble(key) (type: double)
+                sort order: +
+                Map-reduce partition columns: UDFToDouble(key) (type: double)
+                Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                value expressions: key (type: string), val (type: string)
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -461,11 +497,11 @@ STAGE PLANS:
             0 {VALUE._col0} {VALUE._col1}
             1 {VALUE._col0}
           outputColumnNames: _col0, _col1, _col4
-          Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: _col0 (type: string), _col1 (type: string), _col4 (type: string)
             outputColumnNames: _col0, _col1, _col4
-            Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
             Group By Operator
               aggregations: sum(hash(_col0)), sum(hash(_col1)), sum(hash(_col4))
               mode: hash
@@ -550,28 +586,34 @@ STAGE PLANS:
           TableScan
             alias: src
             Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-            Select Operator
-              expressions: key (type: string)
-              outputColumnNames: _col0
-              Statistics: Num rows: 58 Data size: 5812 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: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: key (type: string)
+                outputColumnNames: _col0
+                Statistics: Num rows: 29 Data size: 2906 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: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
           TableScan
             alias: src
             Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-            Select Operator
-              expressions: key (type: string), value (type: string)
-              outputColumnNames: _col0, _col1
-              Statistics: Num rows: 29 Data size: 5812 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: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-                value expressions: _col1 (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 15 Data size: 3006 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: key (type: string), value (type: string)
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 15 Data size: 3006 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: 15 Data size: 3006 Basic stats: COMPLETE Column stats: NONE
+                  value expressions: _col1 (type: string)
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -581,11 +623,11 @@ STAGE PLANS:
             1 {KEY.reducesinkkey0} {VALUE._col0}
           handleSkewJoin: true
           outputColumnNames: _col2, _col3
-          Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: _col2 (type: string), _col3 (type: string)
             outputColumnNames: _col2, _col3
-            Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
             Group By Operator
               aggregations: sum(hash(_col2)), sum(hash(_col3))
               mode: hash
@@ -728,28 +770,34 @@ STAGE PLANS:
           TableScan
             alias: src
             Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-            Select Operator
-              expressions: key (type: string), value (type: string)
-              outputColumnNames: _col0, _col1
-              Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-              Reduce Output Operator
-                key expressions: _col0 (type: string), UDFToDouble(substring(_col1, 5)) (type: double)
-                sort order: ++
-                Map-reduce partition columns: _col0 (type: string), UDFToDouble(substring(_col1, 5)) (type: double)
-                Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: (key is not null and UDFToDouble(substring(value, 5)) is not null) (type: boolean)
+              Statistics: Num rows: 8 Data size: 1603 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: key (type: string), value (type: string)
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 8 Data size: 1603 Basic stats: COMPLETE Column stats: NONE
+                Reduce Output Operator
+                  key expressions: _col0 (type: string), UDFToDouble(substring(_col1, 5)) (type: double)
+                  sort order: ++
+                  Map-reduce partition columns: _col0 (type: string), UDFToDouble(substring(_col1, 5)) (type: double)
+                  Statistics: Num rows: 8 Data size: 1603 Basic stats: COMPLETE Column stats: NONE
           TableScan
             alias: src
             Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-            Select Operator
-              expressions: key (type: string), value (type: string)
-              outputColumnNames: _col0, _col1
-              Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-              Reduce Output Operator
-                key expressions: _col0 (type: string), (substring(_col1, 5) + 1) (type: double)
-                sort order: ++
-                Map-reduce partition columns: _col0 (type: string), (substring(_col1, 5) + 1) (type: double)
-                Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-                value expressions: _col1 (type: string)
+            Filter Operator
+              predicate: (key is not null and (substring(value, 5) + 1) is not null) (type: boolean)
+              Statistics: Num rows: 8 Data size: 1603 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: key (type: string), value (type: string)
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 8 Data size: 1603 Basic stats: COMPLETE Column stats: NONE
+                Reduce Output Operator
+                  key expressions: _col0 (type: string), (substring(_col1, 5) + 1) (type: double)
+                  sort order: ++
+                  Map-reduce partition columns: _col0 (type: string), (substring(_col1, 5) + 1) (type: double)
+                  Statistics: Num rows: 8 Data size: 1603 Basic stats: COMPLETE Column stats: NONE
+                  value expressions: _col1 (type: string)
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -759,11 +807,11 @@ STAGE PLANS:
             1 {KEY.reducesinkkey0} {VALUE._col0}
           handleSkewJoin: true
           outputColumnNames: _col2, _col3
-          Statistics: Num rows: 31 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 8 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: _col2 (type: string), _col3 (type: string)
             outputColumnNames: _col2, _col3
-            Statistics: Num rows: 31 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 8 Data size: 1763 Basic stats: COMPLETE Column stats: NONE
             Group By Operator
               aggregations: sum(hash(_col2)), sum(hash(_col3))
               mode: hash
@@ -917,48 +965,48 @@ STAGE PLANS:
             alias: src
             Statistics: Num rows: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
-              predicate: ((key < 100) and (key < 80)) (type: boolean)
-              Statistics: Num rows: 3 Data size: 601 Basic stats: COMPLETE Column stats: NONE
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 15 Data size: 3006 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: key (type: string), value (type: string)
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 3 Data size: 601 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 15 Data size: 3006 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: 3 Data size: 601 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 15 Data size: 3006 Basic stats: COMPLETE Column stats: NONE
                   value expressions: _col1 (type: string)
           TableScan
             alias: src
             Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
-              predicate: ((key < 80) and (key < 100)) (type: boolean)
-              Statistics: Num rows: 6 Data size: 601 Basic stats: COMPLETE Column stats: NONE
+              predicate: ((key < 100) and key is not null) (type: boolean)
+              Statistics: Num rows: 10 Data size: 1002 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: key (type: string)
                 outputColumnNames: _col0
-                Statistics: Num rows: 6 Data size: 601 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 10 Data size: 1002 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: 6 Data size: 601 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 10 Data size: 1002 Basic stats: COMPLETE Column stats: NONE
           TableScan
             alias: src
             Statistics: Num rows: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
-              predicate: ((key < 100) and (key < 80)) (type: boolean)
-              Statistics: Num rows: 6 Data size: 601 Basic stats: COMPLETE Column stats: NONE
+              predicate: ((key < 80) and key is not null) (type: boolean)
+              Statistics: Num rows: 10 Data size: 1002 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: key (type: string)
                 outputColumnNames: _col0
-                Statistics: Num rows: 6 Data size: 601 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 10 Data size: 1002 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: 6 Data size: 601 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 10 Data size: 1002 Basic stats: COMPLETE Column stats: NONE
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -970,11 +1018,11 @@ STAGE PLANS:
             2 
           handleSkewJoin: true
           outputColumnNames: _col0, _col3
-          Statistics: Num rows: 13 Data size: 1322 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 33 Data size: 6613 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: _col0 (type: string), _col3 (type: string)
             outputColumnNames: _col0, _col3
-            Statistics: Num rows: 13 Data size: 1322 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 33 Data size: 6613 Basic stats: COMPLETE Column stats: NONE
             Group By Operator
               aggregations: sum(hash(_col0)), sum(hash(_col3))
               mode: hash

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoin_noskew.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoin_noskew.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoin_noskew.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoin_noskew.q.out Mon Jun 23 21:03:24 2014
@@ -21,20 +21,26 @@ STAGE PLANS:
           TableScan
             alias: b
             Statistics: Num rows: 58 Data size: 5812 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: 58 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 29 Data size: 2906 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: 29 Data size: 2906 Basic stats: COMPLETE Column stats: NONE
           TableScan
             alias: a
             Statistics: Num rows: 29 Data size: 5812 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: 29 Data size: 5812 Basic stats: COMPLETE Column stats: NONE
-              value expressions: value (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 15 Data size: 3006 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: 15 Data size: 3006 Basic stats: COMPLETE Column stats: NONE
+                value expressions: value (type: string)
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -44,11 +50,11 @@ STAGE PLANS:
             1 
           handleSkewJoin: true
           outputColumnNames: _col0, _col1
-          Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: _col0 (type: string), _col1 (type: string)
             outputColumnNames: _col0, _col1
-            Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
               compressed: false
               table:
@@ -109,19 +115,19 @@ STAGE PLANS:
             Reduce Output Operator
               key expressions: _col0 (type: string)
               sort order: +
-              Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
               value expressions: _col1 (type: string)
       Reduce Operator Tree:
         Select Operator
           expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: string)
           outputColumnNames: _col0, _col1
-          Statistics: Num rows: 63 Data size: 6393 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 31 Data size: 3196 Basic stats: COMPLETE Column stats: NONE
           Limit
             Number of rows: 30
-            Statistics: Num rows: 30 Data size: 3030 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 30 Data size: 3090 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 30 Data size: 3030 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 30 Data size: 3090 Basic stats: COMPLETE Column stats: NONE
               table:
                   input format: org.apache.hadoop.mapred.TextInputFormat
                   output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoin_union_remove_1.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoin_union_remove_1.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoin_union_remove_1.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoin_union_remove_1.q.out Mon Jun 23 21:03:24 2014
@@ -71,7 +71,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((key = '2') or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not ((key = '2') or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -83,7 +83,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((key = '2') or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not ((key = '2') or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -119,7 +119,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((key = '2') or (key = '3')) (type: boolean)
+              predicate: (key is not null and ((key = '2') or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -131,7 +131,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((key = '2') or (key = '3')) (type: boolean)
+              predicate: (key is not null and ((key = '2') or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -350,7 +350,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((key = '2') or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not ((key = '2') or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -362,7 +362,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((key = '2') or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not ((key = '2') or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -409,7 +409,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((key = '2') or (key = '3')) (type: boolean)
+              predicate: (key is not null and ((key = '2') or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -421,7 +421,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((key = '2') or (key = '3')) (type: boolean)
+              predicate: (key is not null and ((key = '2') or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoin_union_remove_2.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoin_union_remove_2.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoin_union_remove_2.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoin_union_remove_2.q.out Mon Jun 23 21:03:24 2014
@@ -82,7 +82,7 @@ STAGE PLANS:
             alias: c
             Statistics: Num rows: 0 Data size: 20 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (((key = '2') or (key = '8')) or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not (((key = '2') or (key = '8')) or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -94,7 +94,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (((key = '2') or (key = '8')) or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not (((key = '2') or (key = '8')) or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -106,7 +106,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (((key = '2') or (key = '8')) or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not (((key = '2') or (key = '8')) or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -144,7 +144,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (((key = '2') or (key = '8')) or (key = '3')) (type: boolean)
+              predicate: (key is not null and (((key = '2') or (key = '8')) or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -156,7 +156,7 @@ STAGE PLANS:
             alias: c
             Statistics: Num rows: 0 Data size: 20 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (((key = '2') or (key = '8')) or (key = '3')) (type: boolean)
+              predicate: (key is not null and (((key = '2') or (key = '8')) or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -168,7 +168,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (((key = '2') or (key = '8')) or (key = '3')) (type: boolean)
+              predicate: (key is not null and (((key = '2') or (key = '8')) or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoinopt1.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoinopt1.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoinopt1.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoinopt1.q.out Mon Jun 23 21:03:24 2014
@@ -58,7 +58,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((key = '2') or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not ((key = '2') or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -70,7 +70,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((key = '2') or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not ((key = '2') or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -135,7 +135,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((key = '2') or (key = '3')) (type: boolean)
+              predicate: (key is not null and ((key = '2') or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -147,7 +147,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((key = '2') or (key = '3')) (type: boolean)
+              predicate: (key is not null and ((key = '2') or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -390,7 +390,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((key = '2') or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not ((key = '2') or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -401,7 +401,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((key = '2') or (key = '3'))) (type: boolean)
+              predicate: (key is not null and (not ((key = '2') or (key = '3')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -483,7 +483,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((key = '2') or (key = '3')) (type: boolean)
+              predicate: (key is not null and ((key = '2') or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -494,7 +494,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((key = '2') or (key = '3')) (type: boolean)
+              predicate: (key is not null and ((key = '2') or (key = '3'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoinopt10.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoinopt10.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoinopt10.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoinopt10.q.out Mon Jun 23 21:03:24 2014
@@ -60,7 +60,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (key = '8')) (type: boolean)
+              predicate: (key is not null and (not (key = '8'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -71,13 +71,13 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
-              predicate: (not (key = '8')) (type: boolean)
-              Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
+              predicate: (key is not null and (not (key = '8'))) (type: boolean)
+              Statistics: Num rows: 2 Data size: 8 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: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                 value expressions: value (type: array<string>)
       Reduce Operator Tree:
         Join Operator
@@ -87,11 +87,11 @@ STAGE PLANS:
             0 {KEY.reducesinkkey0}
             1 {VALUE._col0}
           outputColumnNames: _col0, _col5
-          Statistics: Num rows: 3 Data size: 13 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: _col0 (type: string), _col5 (type: array<string>)
             outputColumnNames: _col0, _col1
-            Statistics: Num rows: 3 Data size: 13 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
               compressed: false
               table:
@@ -104,25 +104,25 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             Union
-              Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 SELECT * : (no compute)
-                Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                 Lateral View Forward
-                  Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                   Select Operator
                     SELECT * : (no compute)
-                    Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                     Lateral View Join Operator
                       outputColumnNames: _col0, _col1, _col2
-                      Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                      Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                       Select Operator
                         expressions: _col0 (type: string), _col1 (type: array<string>), _col2 (type: string)
                         outputColumnNames: _col0, _col1, _col2
-                        Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                         File Output Operator
                           compressed: false
-                          Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                          Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                           table:
                               input format: org.apache.hadoop.mapred.TextInputFormat
                               output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
@@ -130,45 +130,45 @@ STAGE PLANS:
                   Select Operator
                     expressions: _col1 (type: array<string>)
                     outputColumnNames: _col0
-                    Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                     UDTF Operator
-                      Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                      Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                       function name: explode
                       Lateral View Join Operator
                         outputColumnNames: _col0, _col1, _col2
-                        Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                         Select Operator
                           expressions: _col0 (type: string), _col1 (type: array<string>), _col2 (type: string)
                           outputColumnNames: _col0, _col1, _col2
-                          Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                          Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                           File Output Operator
                             compressed: false
-                            Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                            Statistics: Num rows: 6 Data size: 24 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
           TableScan
             Union
-              Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 SELECT * : (no compute)
-                Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                 Lateral View Forward
-                  Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                   Select Operator
                     SELECT * : (no compute)
-                    Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                     Lateral View Join Operator
                       outputColumnNames: _col0, _col1, _col2
-                      Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                      Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                       Select Operator
                         expressions: _col0 (type: string), _col1 (type: array<string>), _col2 (type: string)
                         outputColumnNames: _col0, _col1, _col2
-                        Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                         File Output Operator
                           compressed: false
-                          Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                          Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                           table:
                               input format: org.apache.hadoop.mapred.TextInputFormat
                               output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
@@ -176,20 +176,20 @@ STAGE PLANS:
                   Select Operator
                     expressions: _col1 (type: array<string>)
                     outputColumnNames: _col0
-                    Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                     UDTF Operator
-                      Statistics: Num rows: 6 Data size: 26 Basic stats: COMPLETE Column stats: NONE
+                      Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                       function name: explode
                       Lateral View Join Operator
                         outputColumnNames: _col0, _col1, _col2
-                        Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                         Select Operator
                           expressions: _col0 (type: string), _col1 (type: array<string>), _col2 (type: string)
                           outputColumnNames: _col0, _col1, _col2
-                          Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                          Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                           File Output Operator
                             compressed: false
-                            Statistics: Num rows: 12 Data size: 52 Basic stats: COMPLETE Column stats: NONE
+                            Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                             table:
                                 input format: org.apache.hadoop.mapred.TextInputFormat
                                 output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
@@ -202,7 +202,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (key = '8') (type: boolean)
+              predicate: (key is not null and (key = '8')) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -213,13 +213,13 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 6 Data size: 24 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
-              predicate: (key = '8') (type: boolean)
-              Statistics: Num rows: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
+              predicate: (key is not null and (key = '8')) (type: boolean)
+              Statistics: Num rows: 1 Data size: 4 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: 3 Data size: 12 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: NONE
                 value expressions: value (type: array<string>)
       Reduce Operator Tree:
         Join Operator
@@ -229,11 +229,11 @@ STAGE PLANS:
             0 {KEY.reducesinkkey0}
             1 {VALUE._col0}
           outputColumnNames: _col0, _col5
-          Statistics: Num rows: 3 Data size: 13 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: _col0 (type: string), _col5 (type: array<string>)
             outputColumnNames: _col0, _col1
-            Statistics: Num rows: 3 Data size: 13 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
               compressed: false
               table:

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoinopt11.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoinopt11.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoinopt11.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoinopt11.q.out Mon Jun 23 21:03:24 2014
@@ -74,7 +74,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (key = '2')) (type: boolean)
+              predicate: (key is not null and (not (key = '2'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -86,7 +86,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (key = '2')) (type: boolean)
+              predicate: (key is not null and (not (key = '2'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -181,7 +181,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (key = '2') (type: boolean)
+              predicate: (key is not null and (key = '2')) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -193,7 +193,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (key = '2') (type: boolean)
+              predicate: (key is not null and (key = '2')) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -228,7 +228,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (key = '2') (type: boolean)
+              predicate: (key is not null and (key = '2')) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -240,7 +240,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (key = '2') (type: boolean)
+              predicate: (key is not null and (key = '2')) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -303,7 +303,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (key = '2')) (type: boolean)
+              predicate: (key is not null and (not (key = '2'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -315,7 +315,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (key = '2')) (type: boolean)
+              predicate: (key is not null and (not (key = '2'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoinopt12.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoinopt12.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoinopt12.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoinopt12.q.out Mon Jun 23 21:03:24 2014
@@ -60,7 +60,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((((key = '2') and (val = '12')) or ((key = '8') and (val = '18'))) or ((key = '3') and (val = '13')))) (type: boolean)
+              predicate: ((key is not null and val is not null) and (not ((((key = '2') and (val = '12')) or ((key = '8') and (val = '18'))) or ((key = '3') and (val = '13'))))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string), val (type: string)
@@ -71,7 +71,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not ((((key = '2') and (val = '12')) or ((key = '8') and (val = '18'))) or ((key = '3') and (val = '13')))) (type: boolean)
+              predicate: ((key is not null and val is not null) and (not ((((key = '2') and (val = '12')) or ((key = '8') and (val = '18'))) or ((key = '3') and (val = '13'))))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string), val (type: string)
@@ -135,7 +135,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((((key = '2') and (val = '12')) or ((key = '8') and (val = '18'))) or ((key = '3') and (val = '13'))) (type: boolean)
+              predicate: ((key is not null and val is not null) and ((((key = '2') and (val = '12')) or ((key = '8') and (val = '18'))) or ((key = '3') and (val = '13')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string), val (type: string)
@@ -146,7 +146,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: ((((key = '2') and (val = '12')) or ((key = '8') and (val = '18'))) or ((key = '3') and (val = '13'))) (type: boolean)
+              predicate: ((key is not null and val is not null) and ((((key = '2') and (val = '12')) or ((key = '8') and (val = '18'))) or ((key = '3') and (val = '13')))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string), val (type: string)

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoinopt13.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoinopt13.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoinopt13.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoinopt13.q.out Mon Jun 23 21:03:24 2014
@@ -83,21 +83,27 @@ STAGE PLANS:
           TableScan
             alias: b
             Statistics: Num rows: 0 Data size: 30 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: 30 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
           TableScan
             alias: a
             Statistics: Num rows: 0 Data size: 30 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: 30 Basic stats: PARTIAL Column stats: NONE
-              value expressions: val (type: string)
+            Filter Operator
+              predicate: (key is not null and val is not null) (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE 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: 0 Basic stats: NONE Column stats: NONE
+                value expressions: val (type: string)
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -106,7 +112,7 @@ STAGE PLANS:
             0 {KEY.reducesinkkey0} {VALUE._col0}
             1 {KEY.reducesinkkey0} {VALUE._col0}
           outputColumnNames: _col0, _col1, _col4, _col5
-          Statistics: Num rows: 0 Data size: 33 Basic stats: PARTIAL Column stats: NONE
+          Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
           File Output Operator
             compressed: false
             table:
@@ -122,17 +128,20 @@ STAGE PLANS:
               key expressions: _col1 (type: string)
               sort order: +
               Map-reduce partition columns: _col1 (type: string)
-              Statistics: Num rows: 0 Data size: 33 Basic stats: PARTIAL Column stats: NONE
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               value expressions: _col0 (type: string), _col4 (type: string), _col5 (type: string)
           TableScan
             alias: c
             Statistics: Num rows: 0 Data size: 20 Basic stats: PARTIAL Column stats: NONE
-            Reduce Output Operator
-              key expressions: val (type: string)
-              sort order: +
-              Map-reduce partition columns: val (type: string)
-              Statistics: Num rows: 0 Data size: 20 Basic stats: PARTIAL Column stats: NONE
-              value expressions: key (type: string)
+            Filter Operator
+              predicate: val is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+              Reduce Output Operator
+                key expressions: val (type: string)
+                sort order: +
+                Map-reduce partition columns: val (type: string)
+                Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                value expressions: key (type: string)
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -141,14 +150,14 @@ STAGE PLANS:
             0 {VALUE._col0} {KEY.reducesinkkey0} {VALUE._col3} {VALUE._col4}
             1 {VALUE._col0} {KEY.reducesinkkey0}
           outputColumnNames: _col0, _col1, _col4, _col5, _col8, _col9
-          Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE
+          Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
           Select Operator
             expressions: _col0 (type: string), _col1 (type: string), _col4 (type: string), _col5 (type: string), _col8 (type: string), _col9 (type: string)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
-            Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE
+            Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE
+              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

Modified: hive/trunk/ql/src/test/results/clientpositive/skewjoinopt14.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/skewjoinopt14.q.out?rev=1604935&r1=1604934&r2=1604935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/skewjoinopt14.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/skewjoinopt14.q.out Mon Jun 23 21:03:24 2014
@@ -89,7 +89,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (key = '2')) (type: boolean)
+              predicate: ((key is not null and val is not null) and (not (key = '2'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -101,7 +101,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (not (key = '2')) (type: boolean)
+              predicate: (key is not null and (not (key = '2'))) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -155,12 +155,15 @@ STAGE PLANS:
           TableScan
             alias: c
             Statistics: Num rows: 0 Data size: 20 Basic stats: PARTIAL Column stats: NONE
-            Reduce Output Operator
-              key expressions: val (type: string)
-              sort order: +
-              Map-reduce partition columns: val (type: string)
-              Statistics: Num rows: 0 Data size: 20 Basic stats: PARTIAL Column stats: NONE
-              value expressions: key (type: string)
+            Filter Operator
+              predicate: val is not null (type: boolean)
+              Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+              Reduce Output Operator
+                key expressions: val (type: string)
+                sort order: +
+                Map-reduce partition columns: val (type: string)
+                Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                value expressions: key (type: string)
       Reduce Operator Tree:
         Join Operator
           condition map:
@@ -189,7 +192,7 @@ STAGE PLANS:
             alias: b
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (key = '2') (type: boolean)
+              predicate: (key is not null and (key = '2')) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)
@@ -201,7 +204,7 @@ STAGE PLANS:
             alias: a
             Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
-              predicate: (key = '2') (type: boolean)
+              predicate: ((key is not null and val is not null) and (key = '2')) (type: boolean)
               Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
               Reduce Output Operator
                 key expressions: key (type: string)