You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2018/06/25 16:04:53 UTC

[50/51] [partial] hive git commit: HIVE-12342 : Set default value of hive.optimize.index.filter to true (Igor Kryvenko via Ashutosh Chauhan)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/accumulo-handler/src/test/results/positive/accumulo_predicate_pushdown.q.out
----------------------------------------------------------------------
diff --git a/accumulo-handler/src/test/results/positive/accumulo_predicate_pushdown.q.out b/accumulo-handler/src/test/results/positive/accumulo_predicate_pushdown.q.out
index 4a46786..6db7f5a 100644
--- a/accumulo-handler/src/test/results/positive/accumulo_predicate_pushdown.q.out
+++ b/accumulo-handler/src/test/results/positive/accumulo_predicate_pushdown.q.out
@@ -384,6 +384,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: accumulo_pushdown
+            filterExpr: (not NVL((key < '90'),false)) (type: boolean)
             Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
               predicate: (not NVL((key < '90'),false)) (type: boolean)
@@ -423,6 +424,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: accumulo_pushdown
+            filterExpr: ((key <= '80') or (value like '%90%')) (type: boolean)
             Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
             Filter Operator
               predicate: ((key <= '80') or (value like '%90%')) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 3691786..5eb0435 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -2115,7 +2115,7 @@ public class HiveConf extends Configuration {
         "Whether to provide the row offset virtual column"),
 
     // Optimizer
-    HIVEOPTINDEXFILTER("hive.optimize.index.filter", false, "Whether to enable automatic use of indexes"),
+    HIVEOPTINDEXFILTER("hive.optimize.index.filter", true, "Whether to enable automatic use of indexes"),
 
     HIVEOPTPPD("hive.optimize.ppd", true,
         "Whether to enable predicate pushdown"),

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/contrib/src/test/results/clientpositive/dboutput.q.out
----------------------------------------------------------------------
diff --git a/contrib/src/test/results/clientpositive/dboutput.q.out b/contrib/src/test/results/clientpositive/dboutput.q.out
index 5660097..3039af3 100644
--- a/contrib/src/test/results/clientpositive/dboutput.q.out
+++ b/contrib/src/test/results/clientpositive/dboutput.q.out
@@ -136,6 +136,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 10.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 10.0D) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/contrib/src/test/results/clientpositive/serde_typedbytes4.q.out
----------------------------------------------------------------------
diff --git a/contrib/src/test/results/clientpositive/serde_typedbytes4.q.out b/contrib/src/test/results/clientpositive/serde_typedbytes4.q.out
index 45a2092..38e80c6 100644
--- a/contrib/src/test/results/clientpositive/serde_typedbytes4.q.out
+++ b/contrib/src/test/results/clientpositive/serde_typedbytes4.q.out
@@ -45,6 +45,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (key < 100) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (key < 100) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/hbase-handler/src/test/results/positive/hbase_custom_key3.q.out
----------------------------------------------------------------------
diff --git a/hbase-handler/src/test/results/positive/hbase_custom_key3.q.out b/hbase-handler/src/test/results/positive/hbase_custom_key3.q.out
index 1b042fd..60721cb 100644
--- a/hbase-handler/src/test/results/positive/hbase_custom_key3.q.out
+++ b/hbase-handler/src/test/results/positive/hbase_custom_key3.q.out
@@ -65,6 +65,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: hbase_ck_5
+          filterExpr: ((key.col1 = '238') and (key.col2 = '1238')) (type: boolean)
           Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
           Filter Operator
             predicate: ((key.col1 = '238') and (key.col2 = '1238')) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/hbase-handler/src/test/results/positive/hbase_ddl.q.out
----------------------------------------------------------------------
diff --git a/hbase-handler/src/test/results/positive/hbase_ddl.q.out b/hbase-handler/src/test/results/positive/hbase_ddl.q.out
index 9d16034..31baba3 100644
--- a/hbase-handler/src/test/results/positive/hbase_ddl.q.out
+++ b/hbase-handler/src/test/results/positive/hbase_ddl.q.out
@@ -61,6 +61,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: ((UDFToDouble(key) % 2.0D) = 0.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: ((UDFToDouble(key) % 2.0D) = 0.0D) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/hbase-handler/src/test/results/positive/hbase_queries.q.out
----------------------------------------------------------------------
diff --git a/hbase-handler/src/test/results/positive/hbase_queries.q.out b/hbase-handler/src/test/results/positive/hbase_queries.q.out
index eb91bf9..9fe9cab 100644
--- a/hbase-handler/src/test/results/positive/hbase_queries.q.out
+++ b/hbase-handler/src/test/results/positive/hbase_queries.q.out
@@ -61,6 +61,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: ((UDFToDouble(key) % 2.0D) = 0.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: ((UDFToDouble(key) % 2.0D) = 0.0D) (type: boolean)
@@ -149,6 +150,7 @@ STAGE PLANS:
                   Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
           TableScan
             alias: src
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -523,6 +525,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java
index 89121e3..538aa5e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java
@@ -57,6 +57,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -128,7 +129,7 @@ public class ParseContext {
   private Set<FileSinkDesc> acidFileSinks = Collections.emptySet();
 
   private Map<ReduceSinkOperator, RuntimeValuesInfo> rsToRuntimeValuesInfo =
-          new HashMap<ReduceSinkOperator, RuntimeValuesInfo>();
+          new LinkedHashMap<ReduceSinkOperator, RuntimeValuesInfo>();
   private Map<ReduceSinkOperator, SemiJoinBranchInfo> rsToSemiJoinBranchInfo =
           new HashMap<>();
   private Map<ExprNodeDesc, GroupByOperator> colExprToGBMap =

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java b/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java
index 87d06ae..59cfcd7 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/plan/mapping/TestOperatorCmp.java
@@ -135,7 +135,8 @@ public class TestOperatorCmp {
     PlanMapper pm0 = getMapperForQuery(driver, "select u from tu where id_uv = 1 group by u");
     PlanMapper pm1 = getMapperForQuery(driver, "select u from tu where id_uv = 2 group by u");
 
-    assertHelper(AssertHelperOp.SAME, pm0, pm1, TableScanOperator.class);
+    //Since we have hive.optimize.index.filter=true we will have different table scan operator
+    assertHelper(AssertHelperOp.NOT_SAME, pm0, pm1, TableScanOperator.class);
     assertHelper(AssertHelperOp.NOT_SAME, pm0, pm1, FilterOperator.class);
 
   }

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientnegative/bucket_mapjoin_mismatch1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/bucket_mapjoin_mismatch1.q.out b/ql/src/test/results/clientnegative/bucket_mapjoin_mismatch1.q.out
index eaa3be9..13028d7 100644
--- a/ql/src/test/results/clientnegative/bucket_mapjoin_mismatch1.q.out
+++ b/ql/src/test/results/clientnegative/bucket_mapjoin_mismatch1.q.out
@@ -94,6 +94,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: a
+            filterExpr: ((ds = '2008-04-08') and key is not null) (type: boolean)
             Statistics: Num rows: 108 Data size: 42000 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -110,6 +111,7 @@ STAGE PLANS:
                   value expressions: _col1 (type: string)
           TableScan
             alias: b
+            filterExpr: ((ds = '2008-04-08') and key is not null) (type: boolean)
             Statistics: Num rows: 70 Data size: 27500 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -177,6 +179,7 @@ STAGE PLANS:
         b 
           TableScan
             alias: b
+            filterExpr: ((ds = '2008-04-08') and key is not null) (type: boolean)
             Statistics: Num rows: 92 Data size: 27500 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -191,6 +194,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: a
+            filterExpr: ((ds = '2008-04-08') and key is not null) (type: boolean)
             Statistics: Num rows: 140 Data size: 42000 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientnegative/sortmerge_mapjoin_mismatch_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/sortmerge_mapjoin_mismatch_1.q.out b/ql/src/test/results/clientnegative/sortmerge_mapjoin_mismatch_1.q.out
index 5614cec..ac8bb3e 100644
--- a/ql/src/test/results/clientnegative/sortmerge_mapjoin_mismatch_1.q.out
+++ b/ql/src/test/results/clientnegative/sortmerge_mapjoin_mismatch_1.q.out
@@ -60,6 +60,7 @@ STAGE PLANS:
         a 
           TableScan
             alias: a
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 4812 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -74,6 +75,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: b
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 4812 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/acid_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/acid_mapjoin.q.out b/ql/src/test/results/clientpositive/acid_mapjoin.q.out
index 5569a03..40ea74b 100644
--- a/ql/src/test/results/clientpositive/acid_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/acid_mapjoin.q.out
@@ -80,6 +80,7 @@ STAGE PLANS:
         $hdt$_1:acid2 
           TableScan
             alias: acid2
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 210 Data size: 840 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -98,6 +99,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: acid1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 316 Data size: 1265 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/acid_table_stats.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/acid_table_stats.q.out b/ql/src/test/results/clientpositive/acid_table_stats.q.out
index c028842..acda186 100644
--- a/ql/src/test/results/clientpositive/acid_table_stats.q.out
+++ b/ql/src/test/results/clientpositive/acid_table_stats.q.out
@@ -132,6 +132,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: acid
+            filterExpr: (ds = '2008-04-08') (type: boolean)
             Statistics: Num rows: 83 Data size: 40630 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               Statistics: Num rows: 83 Data size: 40630 Basic stats: COMPLETE Column stats: NONE
@@ -299,6 +300,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: acid
+            filterExpr: (ds = '2008-04-08') (type: boolean)
             Statistics: Num rows: 1000 Data size: 208000 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               Statistics: Num rows: 1000 Data size: 208000 Basic stats: COMPLETE Column stats: NONE
@@ -459,6 +461,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: acid
+            filterExpr: (ds = '2008-04-08') (type: boolean)
             Statistics: Num rows: 2000 Data size: 416000 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               Statistics: Num rows: 2000 Data size: 416000 Basic stats: COMPLETE Column stats: NONE
@@ -531,6 +534,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: acid
+            filterExpr: (ds = '2008-04-08') (type: boolean)
             Statistics: Num rows: 2000 Data size: 416000 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: key (type: string)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/allcolref_in_udf.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/allcolref_in_udf.q.out b/ql/src/test/results/clientpositive/allcolref_in_udf.q.out
index 000a782..dbd1715 100644
--- a/ql/src/test/results/clientpositive/allcolref_in_udf.q.out
+++ b/ql/src/test/results/clientpositive/allcolref_in_udf.q.out
@@ -14,6 +14,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 100.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 100.0D) (type: boolean)
@@ -78,6 +79,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: a
+            filterExpr: (UDFToDouble(key) < 100.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 100.0D) (type: boolean)
@@ -94,6 +96,7 @@ STAGE PLANS:
                   value expressions: _col0 (type: string), _col1 (type: string)
           TableScan
             alias: b
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/alterColumnStatsPart.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/alterColumnStatsPart.q.out b/ql/src/test/results/clientpositive/alterColumnStatsPart.q.out
index d5975e1..b474019 100644
--- a/ql/src/test/results/clientpositive/alterColumnStatsPart.q.out
+++ b/ql/src/test/results/clientpositive/alterColumnStatsPart.q.out
@@ -119,6 +119,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: p
+            filterExpr: (c = 1) (type: boolean)
             Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: a (type: int)
@@ -253,6 +254,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: p
+            filterExpr: (c = 4) (type: boolean)
             Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: a (type: int)
@@ -346,6 +348,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: p
+            filterExpr: (c = 100) (type: boolean)
             Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
             Select Operator
               expressions: a (type: int)
@@ -409,6 +412,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: p
+            filterExpr: (c = 100) (type: boolean)
             Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
             Select Operator
               expressions: a (type: int)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/alter_partition_coltype.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/alter_partition_coltype.q.out b/ql/src/test/results/clientpositive/alter_partition_coltype.q.out
index 186c303..8e2a745 100644
--- a/ql/src/test/results/clientpositive/alter_partition_coltype.q.out
+++ b/ql/src/test/results/clientpositive/alter_partition_coltype.q.out
@@ -321,6 +321,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alter_coltype
+          filterExpr: dt is not null (type: boolean)
           Statistics: Num rows: 50 Data size: 382 Basic stats: COMPLETE Column stats: NONE
           GatherStats: false
           Select Operator
@@ -510,6 +511,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alterdynamic_part_table
+          filterExpr: ((partcol1 = 1) and (partcol2 = '1')) (type: boolean)
           Statistics: Num rows: 2 Data size: 3 Basic stats: COMPLETE Column stats: NONE
           GatherStats: false
           Select Operator
@@ -580,6 +582,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alterdynamic_part_table
+          filterExpr: (((partcol1 = 2) and (partcol2 = '1')) or ((partcol1 = 1) and (partcol2 = '__HIVE_DEFAULT_PARTITION__'))) (type: boolean)
           Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: NONE
           GatherStats: false
           Select Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/ambiguous_col.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/ambiguous_col.q.out b/ql/src/test/results/clientpositive/ambiguous_col.q.out
index a7682fb..a1b4c96 100644
--- a/ql/src/test/results/clientpositive/ambiguous_col.q.out
+++ b/ql/src/test/results/clientpositive/ambiguous_col.q.out
@@ -12,6 +12,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -28,6 +29,7 @@ STAGE PLANS:
                   value expressions: _col1 (type: string)
           TableScan
             alias: src1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -129,6 +131,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -144,6 +147,7 @@ STAGE PLANS:
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
           TableScan
             alias: src1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -245,6 +249,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -260,6 +265,7 @@ STAGE PLANS:
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
           TableScan
             alias: src1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/analyze_tbl_date.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/analyze_tbl_date.q.out b/ql/src/test/results/clientpositive/analyze_tbl_date.q.out
index c2294ab..e9400b2 100644
--- a/ql/src/test/results/clientpositive/analyze_tbl_date.q.out
+++ b/ql/src/test/results/clientpositive/analyze_tbl_date.q.out
@@ -73,6 +73,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: test_table_n7
+            filterExpr: d is not null (type: boolean)
             Statistics: Num rows: 3 Data size: 6 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: d is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/annotate_stats_deep_filters.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/annotate_stats_deep_filters.q.out b/ql/src/test/results/clientpositive/annotate_stats_deep_filters.q.out
index 5f68009..83bb65e 100644
--- a/ql/src/test/results/clientpositive/annotate_stats_deep_filters.q.out
+++ b/ql/src/test/results/clientpositive/annotate_stats_deep_filters.q.out
@@ -120,6 +120,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: over1k_n4
+            filterExpr: (((t = 1Y) and (si = 2S)) or ((t = 2Y) and (si = 3S)) or ((t = 3Y) and (si = 4S)) or ((t = 4Y) and (si = 5S)) or ((t = 5Y) and (si = 6S)) or ((t = 6Y) and (si = 7S)) or ((t = 7Y) and (si = 8S)) or ((t = 9Y) and (si = 10S)) or ((t = 10Y) and (si = 11S)) or ((t = 11Y) and (si = 12S)) or ((t = 12Y) and (si = 13S)) or ((t = 13Y) and (si = 14S)) or ((t = 14Y) and (si = 15S)) or ((t = 15Y) and (si = 16S)) or ((t = 16Y) and (si = 17S)) or ((t = 17Y) and (si = 18S)) or ((t = 27Y) and (si = 28S)) or ((t = 37Y) and (si = 38S)) or ((t = 47Y) and (si = 48S)) or ((t = 52Y) and (si = 53S))) (type: boolean)
             Statistics: Num rows: 2098 Data size: 16744 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (((t = 10Y) and (si = 11S)) or ((t = 11Y) and (si = 12S)) or ((t = 12Y) and (si = 13S)) or ((t = 13Y) and (si = 14S)) or ((t = 14Y) and (si = 15S)) or ((t = 15Y) and (si = 16S)) or ((t = 16Y) and (si = 17S)) or ((t = 17Y) and (si = 18S)) or ((t = 1Y) and (si = 2S)) or ((t = 27Y) and (si = 28S)) or ((t = 2Y) and (si = 3S)) or ((t = 37Y) and (si = 38S)) or ((t = 3Y) and (si = 4S)) or ((t = 47Y) and (si = 48S)) or ((t = 4Y) and (si = 5S)) or ((t = 52Y) and (si = 53S)) or ((t = 5Y) and (si = 6S)) or ((t = 6Y) and (si = 7S)) or ((t = 7Y) and (si = 8S)) or ((t = 9Y) and (si = 10S))) (type: boolean)
@@ -210,6 +211,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: over1k_n4
+            filterExpr: (((t = 1Y) and (si = 2S)) or ((t = 2Y) and (si = 3S)) or ((t = 3Y) and (si = 4S)) or ((t = 4Y) and (si = 5S)) or ((t = 5Y) and (si = 6S)) or ((t = 6Y) and (si = 7S)) or ((t = 7Y) and (si = 8S)) or ((t = 9Y) and (si = 10S)) or ((t = 10Y) and (si = 11S)) or ((t = 11Y) and (si = 12S)) or ((t = 12Y) and (si = 13S)) or ((t = 13Y) and (si = 14S)) or ((t = 14Y) and (si = 15S)) or ((t = 15Y) and (si = 16S)) or ((t = 16Y) and (si = 17S)) or ((t = 17Y) and (si = 18S)) or ((t = 27Y) and (si = 28S)) or ((t = 37Y) and (si = 38S)) or ((t = 47Y) and (si = 48S)) or ((t = 52Y) and (si = 53S))) (type: boolean)
             Statistics: Num rows: 2098 Data size: 211174 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (((t = 10Y) and (si = 11S)) or ((t = 11Y) and (si = 12S)) or ((t = 12Y) and (si = 13S)) or ((t = 13Y) and (si = 14S)) or ((t = 14Y) and (si = 15S)) or ((t = 15Y) and (si = 16S)) or ((t = 16Y) and (si = 17S)) or ((t = 17Y) and (si = 18S)) or ((t = 1Y) and (si = 2S)) or ((t = 27Y) and (si = 28S)) or ((t = 2Y) and (si = 3S)) or ((t = 37Y) and (si = 38S)) or ((t = 3Y) and (si = 4S)) or ((t = 47Y) and (si = 48S)) or ((t = 4Y) and (si = 5S)) or ((t = 52Y) and (si = 53S)) or ((t = 5Y) and (si = 6S)) or ((t = 6Y) and (si = 7S)) or ((t = 7Y) and (si = 8S)) or ((t = 9Y) and (si = 10S))) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/annotate_stats_filter.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/annotate_stats_filter.q.out b/ql/src/test/results/clientpositive/annotate_stats_filter.q.out
index 59df9b2..5439588 100644
--- a/ql/src/test/results/clientpositive/annotate_stats_filter.q.out
+++ b/ql/src/test/results/clientpositive/annotate_stats_filter.q.out
@@ -87,6 +87,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (state = 'OH') (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (state = 'OH') (type: boolean)
@@ -134,6 +135,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (state = 'OH') (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (state = 'OH') (type: boolean)
@@ -171,6 +173,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (state <> 'OH') (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (state <> 'OH') (type: boolean)
@@ -208,6 +211,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (state <> 'OH') (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (state <> 'OH') (type: boolean)
@@ -245,6 +249,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: zip is null (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: zip is null (type: boolean)
@@ -282,6 +287,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: zip is null (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: zip is null (type: boolean)
@@ -319,6 +325,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: zip is not null (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: zip is not null (type: boolean)
@@ -356,6 +363,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: zip is not null (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: zip is not null (type: boolean)
@@ -641,6 +649,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: ((state = 'OH') or (state = 'CA')) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ((state = 'CA') or (state = 'OH')) (type: boolean)
@@ -752,6 +761,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (((year = 2001) and year is null) or (state = 'CA')) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (((year = 2001) and year is null) or (state = 'CA')) (type: boolean)
@@ -789,6 +799,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (((year = 2001) or year is null) and (state = 'CA')) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (((year = 2001) or year is null) and (state = 'CA')) (type: boolean)
@@ -826,6 +837,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (locid < 30) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (locid < 30) (type: boolean)
@@ -863,6 +875,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (locid > 30) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (locid > 30) (type: boolean)
@@ -900,6 +913,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (locid <= 30) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (locid <= 30) (type: boolean)
@@ -937,6 +951,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (locid >= 30) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (locid >= 30) (type: boolean)
@@ -974,6 +989,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (locid < 3) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (locid < 3) (type: boolean)
@@ -1011,6 +1027,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (locid > 3) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (locid > 3) (type: boolean)
@@ -1048,6 +1065,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (locid <= 3) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (locid <= 3) (type: boolean)
@@ -1085,6 +1103,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: loc_orc
+            filterExpr: (locid >= 3) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (locid >= 3) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/annotate_stats_join.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/annotate_stats_join.q.out b/ql/src/test/results/clientpositive/annotate_stats_join.q.out
index b7b429c..b0d2b05 100644
--- a/ql/src/test/results/clientpositive/annotate_stats_join.q.out
+++ b/ql/src/test/results/clientpositive/annotate_stats_join.q.out
@@ -138,6 +138,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: e
+            filterExpr: deptid is not null (type: boolean)
             Statistics: Num rows: 48 Data size: 4752 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: deptid is not null (type: boolean)
@@ -154,6 +155,7 @@ STAGE PLANS:
                   value expressions: _col0 (type: string), _col2 (type: int)
           TableScan
             alias: d
+            filterExpr: deptid is not null (type: boolean)
             Statistics: Num rows: 6 Data size: 570 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: deptid is not null (type: boolean)
@@ -205,6 +207,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: emp_n2
+            filterExpr: (deptid is not null and lastname is not null) (type: boolean)
             Statistics: Num rows: 48 Data size: 4752 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and lastname is not null) (type: boolean)
@@ -221,6 +224,7 @@ STAGE PLANS:
                   value expressions: _col2 (type: int)
           TableScan
             alias: dept_n1
+            filterExpr: (deptid is not null and deptname is not null) (type: boolean)
             Statistics: Num rows: 6 Data size: 570 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and deptname is not null) (type: boolean)
@@ -271,6 +275,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: e
+            filterExpr: (deptid is not null and lastname is not null) (type: boolean)
             Statistics: Num rows: 48 Data size: 4752 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and lastname is not null) (type: boolean)
@@ -287,6 +292,7 @@ STAGE PLANS:
                   value expressions: _col2 (type: int)
           TableScan
             alias: d
+            filterExpr: (deptid is not null and deptname is not null) (type: boolean)
             Statistics: Num rows: 6 Data size: 570 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and deptname is not null) (type: boolean)
@@ -337,6 +343,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: emp_n2
+            filterExpr: (deptid is not null and lastname is not null) (type: boolean)
             Statistics: Num rows: 48 Data size: 4752 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and lastname is not null) (type: boolean)
@@ -353,6 +360,7 @@ STAGE PLANS:
                   value expressions: _col2 (type: int)
           TableScan
             alias: dept_n1
+            filterExpr: (deptid is not null and deptname is not null) (type: boolean)
             Statistics: Num rows: 6 Data size: 570 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and deptname is not null) (type: boolean)
@@ -403,6 +411,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: e
+            filterExpr: deptid is not null (type: boolean)
             Statistics: Num rows: 48 Data size: 4752 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: deptid is not null (type: boolean)
@@ -419,6 +428,7 @@ STAGE PLANS:
                   value expressions: _col0 (type: string), _col2 (type: int)
           TableScan
             alias: d
+            filterExpr: deptid is not null (type: boolean)
             Statistics: Num rows: 6 Data size: 570 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: deptid is not null (type: boolean)
@@ -435,6 +445,7 @@ STAGE PLANS:
                   value expressions: _col1 (type: string)
           TableScan
             alias: e1
+            filterExpr: deptid is not null (type: boolean)
             Statistics: Num rows: 48 Data size: 4752 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: deptid is not null (type: boolean)
@@ -488,6 +499,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: e
+            filterExpr: deptid is not null (type: boolean)
             Statistics: Num rows: 48 Data size: 4752 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: deptid is not null (type: boolean)
@@ -504,6 +516,7 @@ STAGE PLANS:
                   value expressions: _col0 (type: string), _col2 (type: int)
           TableScan
             alias: d
+            filterExpr: deptid is not null (type: boolean)
             Statistics: Num rows: 6 Data size: 570 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: deptid is not null (type: boolean)
@@ -520,6 +533,7 @@ STAGE PLANS:
                   value expressions: _col1 (type: string)
           TableScan
             alias: l
+            filterExpr: locid is not null (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: locid is not null (type: boolean)
@@ -573,6 +587,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: e
+            filterExpr: (deptid is not null and lastname is not null) (type: boolean)
             Statistics: Num rows: 48 Data size: 4752 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and lastname is not null) (type: boolean)
@@ -589,6 +604,7 @@ STAGE PLANS:
                   value expressions: _col2 (type: int)
           TableScan
             alias: d
+            filterExpr: (deptid is not null and deptname is not null) (type: boolean)
             Statistics: Num rows: 6 Data size: 570 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and deptname is not null) (type: boolean)
@@ -604,6 +620,7 @@ STAGE PLANS:
                   Statistics: Num rows: 6 Data size: 570 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: l
+            filterExpr: (locid is not null and state is not null) (type: boolean)
             Statistics: Num rows: 8 Data size: 816 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (locid is not null and state is not null) (type: boolean)
@@ -717,6 +734,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: emp_n2
+            filterExpr: (deptid is not null and lastname is not null) (type: boolean)
             Statistics: Num rows: 48 Data size: 4752 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and lastname is not null) (type: boolean)
@@ -733,6 +751,7 @@ STAGE PLANS:
                   value expressions: _col2 (type: int)
           TableScan
             alias: dept_n1
+            filterExpr: (deptid is not null and deptname is not null) (type: boolean)
             Statistics: Num rows: 6 Data size: 570 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (deptid is not null and deptname is not null) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/annotate_stats_join_pkfk.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/annotate_stats_join_pkfk.q.out b/ql/src/test/results/clientpositive/annotate_stats_join_pkfk.q.out
index d9f6bad..6c74b23 100644
--- a/ql/src/test/results/clientpositive/annotate_stats_join_pkfk.q.out
+++ b/ql/src/test/results/clientpositive/annotate_stats_join_pkfk.q.out
@@ -372,6 +372,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: s
+            filterExpr: s_store_sk is not null (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: s_store_sk is not null (type: boolean)
@@ -387,6 +388,7 @@ STAGE PLANS:
                   Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: ss
+            filterExpr: ss_store_sk is not null (type: boolean)
             Statistics: Num rows: 1000 Data size: 3860 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ss_store_sk is not null (type: boolean)
@@ -437,6 +439,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: s
+            filterExpr: s_store_sk is not null (type: boolean)
             Statistics: Num rows: 12 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: s_store_sk is not null (type: boolean)
@@ -452,6 +455,7 @@ STAGE PLANS:
                   Statistics: Num rows: 12 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: ss
+            filterExpr: ss_store_sk is not null (type: boolean)
             Statistics: Num rows: 1000 Data size: 3860 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ss_store_sk is not null (type: boolean)
@@ -502,6 +506,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: s
+            filterExpr: (s_store_sk > 0) (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (s_store_sk > 0) (type: boolean)
@@ -517,6 +522,7 @@ STAGE PLANS:
                   Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: ss
+            filterExpr: (ss_store_sk > 0) (type: boolean)
             Statistics: Num rows: 1000 Data size: 3860 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (ss_store_sk > 0) (type: boolean)
@@ -567,6 +573,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: s
+            filterExpr: ((s_company_id > 0) and s_store_sk is not null) (type: boolean)
             Statistics: Num rows: 12 Data size: 96 Basic stats: COMPLETE Column stats: PARTIAL
             Filter Operator
               predicate: ((s_company_id > 0) and s_store_sk is not null) (type: boolean)
@@ -582,6 +589,7 @@ STAGE PLANS:
                   Statistics: Num rows: 12 Data size: 96 Basic stats: COMPLETE Column stats: PARTIAL
           TableScan
             alias: ss
+            filterExpr: ((ss_quantity > 10) and ss_store_sk is not null) (type: boolean)
             Statistics: Num rows: 1000 Data size: 7676 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ((ss_quantity > 10) and ss_store_sk is not null) (type: boolean)
@@ -632,6 +640,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: s
+            filterExpr: ((s_floor_space > 0) and s_store_sk is not null) (type: boolean)
             Statistics: Num rows: 12 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ((s_floor_space > 0) and s_store_sk is not null) (type: boolean)
@@ -647,6 +656,7 @@ STAGE PLANS:
                   Statistics: Num rows: 12 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: ss
+            filterExpr: ss_store_sk is not null (type: boolean)
             Statistics: Num rows: 1000 Data size: 3860 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ss_store_sk is not null (type: boolean)
@@ -697,6 +707,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: s
+            filterExpr: s_store_sk is not null (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: s_store_sk is not null (type: boolean)
@@ -712,6 +723,7 @@ STAGE PLANS:
                   Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: ss
+            filterExpr: ((ss_quantity > 10) and ss_store_sk is not null) (type: boolean)
             Statistics: Num rows: 1000 Data size: 7676 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ((ss_quantity > 10) and ss_store_sk is not null) (type: boolean)
@@ -762,6 +774,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: ss
+            filterExpr: ss_store_sk is not null (type: boolean)
             Statistics: Num rows: 1000 Data size: 3860 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ss_store_sk is not null (type: boolean)
@@ -777,6 +790,7 @@ STAGE PLANS:
                   Statistics: Num rows: 964 Data size: 3720 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: s
+            filterExpr: s_store_sk is not null (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: s_store_sk is not null (type: boolean)
@@ -792,6 +806,7 @@ STAGE PLANS:
                   Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: s1
+            filterExpr: s_store_sk is not null (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: s_store_sk is not null (type: boolean)
@@ -848,6 +863,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: ss
+            filterExpr: (ss_store_sk > 1000) (type: boolean)
             Statistics: Num rows: 1000 Data size: 3860 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (ss_store_sk > 1000) (type: boolean)
@@ -863,6 +879,7 @@ STAGE PLANS:
                   Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: s
+            filterExpr: (s_store_sk > 1000) (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (s_store_sk > 1000) (type: boolean)
@@ -878,6 +895,7 @@ STAGE PLANS:
                   Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: s1
+            filterExpr: (s_store_sk > 1000) (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (s_store_sk > 1000) (type: boolean)
@@ -934,6 +952,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: ss
+            filterExpr: ss_store_sk is not null (type: boolean)
             Statistics: Num rows: 1000 Data size: 3860 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ss_store_sk is not null (type: boolean)
@@ -949,6 +968,7 @@ STAGE PLANS:
                   Statistics: Num rows: 964 Data size: 3720 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: s
+            filterExpr: ((s_floor_space > 1000) and s_store_sk is not null) (type: boolean)
             Statistics: Num rows: 12 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ((s_floor_space > 1000) and s_store_sk is not null) (type: boolean)
@@ -964,6 +984,7 @@ STAGE PLANS:
                   Statistics: Num rows: 12 Data size: 96 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: s1
+            filterExpr: s_store_sk is not null (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: s_store_sk is not null (type: boolean)
@@ -1020,6 +1041,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: ss
+            filterExpr: ((ss_quantity > 10) and ss_store_sk is not null) (type: boolean)
             Statistics: Num rows: 1000 Data size: 7676 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ((ss_quantity > 10) and ss_store_sk is not null) (type: boolean)
@@ -1035,6 +1057,7 @@ STAGE PLANS:
                   Statistics: Num rows: 321 Data size: 2468 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: s
+            filterExpr: s_store_sk is not null (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: s_store_sk is not null (type: boolean)
@@ -1050,6 +1073,7 @@ STAGE PLANS:
                   Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
           TableScan
             alias: s1
+            filterExpr: s_store_sk is not null (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: s_store_sk is not null (type: boolean)
@@ -1107,6 +1131,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: ss
+            filterExpr: (ss_store_sk is not null and ss_addr_sk is not null) (type: boolean)
             Statistics: Num rows: 1000 Data size: 7664 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (ss_addr_sk is not null and ss_store_sk is not null) (type: boolean)
@@ -1123,6 +1148,7 @@ STAGE PLANS:
                   value expressions: _col0 (type: int)
           TableScan
             alias: s
+            filterExpr: s_store_sk is not null (type: boolean)
             Statistics: Num rows: 12 Data size: 48 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: s_store_sk is not null (type: boolean)
@@ -1164,6 +1190,7 @@ STAGE PLANS:
               value expressions: _col2 (type: int)
           TableScan
             alias: ca
+            filterExpr: ca_address_sk is not null (type: boolean)
             Statistics: Num rows: 20 Data size: 80 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: ca_address_sk is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/annotate_stats_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/annotate_stats_part.q.out b/ql/src/test/results/clientpositive/annotate_stats_part.q.out
index 18e8161..2bd4d17 100644
--- a/ql/src/test/results/clientpositive/annotate_stats_part.q.out
+++ b/ql/src/test/results/clientpositive/annotate_stats_part.q.out
@@ -121,6 +121,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: loc_orc_n4
+          filterExpr: (year = '__HIVE_DEFAULT_PARTITION__') (type: boolean)
           Statistics: Num rows: 9 Data size: 5364 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: state (type: string), locid (type: int), zip (type: bigint), '__HIVE_DEFAULT_PARTITION__' (type: string)
@@ -163,6 +164,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: loc_orc_n4
+          filterExpr: (year = '2001') (type: boolean)
           Statistics: Num rows: 7 Data size: 2050 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: state (type: string), locid (type: int), zip (type: bigint), '2001' (type: string)
@@ -196,6 +198,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: loc_orc_n4
+          filterExpr: (year = '__HIVE_DEFAULT_PARTITION__') (type: boolean)
           Statistics: Num rows: 1 Data size: 292 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: state (type: string), locid (type: int), zip (type: bigint), '__HIVE_DEFAULT_PARTITION__' (type: string)
@@ -238,6 +241,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: loc_orc_n4
+          filterExpr: ((year = '2001') or (year = '__HIVE_DEFAULT_PARTITION__')) (type: boolean)
           Statistics: Num rows: 8 Data size: 3814 Basic stats: COMPLETE Column stats: PARTIAL
           Select Operator
             expressions: state (type: string), locid (type: int), zip (type: bigint), year (type: string)
@@ -381,6 +385,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: loc_orc_n4
+          filterExpr: (year = '2001') (type: boolean)
           Statistics: Num rows: 7 Data size: 630 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
             expressions: state (type: string), locid (type: int)
@@ -402,6 +407,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: loc_orc_n4
+          filterExpr: (year <> '2001') (type: boolean)
           Statistics: Num rows: 1 Data size: 284 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: state (type: string), locid (type: int)
@@ -444,6 +450,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: loc_orc_n4
+          filterExpr: ((locid > 0) and (year = '2001')) (type: boolean)
           Statistics: Num rows: 7 Data size: 28 Basic stats: COMPLETE Column stats: COMPLETE
           Filter Operator
             predicate: (locid > 0) (type: boolean)
@@ -468,6 +475,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: loc_orc_n4
+          filterExpr: ((locid > 0) and (year = '2001')) (type: boolean)
           Statistics: Num rows: 7 Data size: 28 Basic stats: COMPLETE Column stats: COMPLETE
           Filter Operator
             predicate: (locid > 0) (type: boolean)
@@ -492,6 +500,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: loc_orc_n4
+          filterExpr: ((locid > 0) and (year = '2001')) (type: boolean)
           Statistics: Num rows: 7 Data size: 28 Basic stats: COMPLETE Column stats: COMPLETE
           Filter Operator
             predicate: (locid > 0) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/annotate_stats_select.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/annotate_stats_select.q.out b/ql/src/test/results/clientpositive/annotate_stats_select.q.out
index b740f99..b022af1 100644
--- a/ql/src/test/results/clientpositive/annotate_stats_select.q.out
+++ b/ql/src/test/results/clientpositive/annotate_stats_select.q.out
@@ -975,6 +975,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: alltypes_orc
+            filterExpr: (not bo1) (type: boolean)
             Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
             Filter Operator
               predicate: (not bo1) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/autoColumnStats_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/autoColumnStats_1.q.out b/ql/src/test/results/clientpositive/autoColumnStats_1.q.out
index 2cf8717..1756019 100644
--- a/ql/src/test/results/clientpositive/autoColumnStats_1.q.out
+++ b/ql/src/test/results/clientpositive/autoColumnStats_1.q.out
@@ -660,6 +660,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alter5_n0
+          filterExpr: (dt = 'a') (type: boolean)
           Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
             expressions: col1 (type: string), 'a' (type: string)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/autoColumnStats_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/autoColumnStats_2.q.out b/ql/src/test/results/clientpositive/autoColumnStats_2.q.out
index 854c779..8e76396 100644
--- a/ql/src/test/results/clientpositive/autoColumnStats_2.q.out
+++ b/ql/src/test/results/clientpositive/autoColumnStats_2.q.out
@@ -664,6 +664,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alter5
+          filterExpr: (dt = 'a') (type: boolean)
           Statistics: Num rows: 500 Data size: 43500 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
             expressions: col1 (type: string), 'a' (type: string)
@@ -783,6 +784,7 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: alter5
+          filterExpr: (dt = 'a') (type: boolean)
           Statistics: Num rows: 49 Data size: 4263 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
             expressions: col1 (type: string), 'a' (type: string)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/autoColumnStats_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/autoColumnStats_4.q.out b/ql/src/test/results/clientpositive/autoColumnStats_4.q.out
index def65ff..a16ec07 100644
--- a/ql/src/test/results/clientpositive/autoColumnStats_4.q.out
+++ b/ql/src/test/results/clientpositive/autoColumnStats_4.q.out
@@ -60,6 +60,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: alltypesorc
+            filterExpr: cint is not null (type: boolean)
             Statistics: Num rows: 12288 Data size: 2907994 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: cint is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/autoColumnStats_9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/autoColumnStats_9.q.out b/ql/src/test/results/clientpositive/autoColumnStats_9.q.out
index f2a8cdc..8a94108 100644
--- a/ql/src/test/results/clientpositive/autoColumnStats_9.q.out
+++ b/ql/src/test/results/clientpositive/autoColumnStats_9.q.out
@@ -29,6 +29,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -44,6 +45,7 @@ STAGE PLANS:
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
           TableScan
             alias: src2
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join0.q.out b/ql/src/test/results/clientpositive/auto_join0.q.out
index 17fc2fd..5f7a6cc 100644
--- a/ql/src/test/results/clientpositive/auto_join0.q.out
+++ b/ql/src/test/results/clientpositive/auto_join0.q.out
@@ -41,6 +41,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (key < 10) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (key < 10) (type: boolean)
@@ -213,6 +214,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (key < 10) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (key < 10) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join1.q.out b/ql/src/test/results/clientpositive/auto_join1.q.out
index 2a11bc0..6bda885 100644
--- a/ql/src/test/results/clientpositive/auto_join1.q.out
+++ b/ql/src/test/results/clientpositive/auto_join1.q.out
@@ -32,6 +32,7 @@ STAGE PLANS:
         $hdt$_0:src1 
           TableScan
             alias: src1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -50,6 +51,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src2
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join10.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join10.q.out b/ql/src/test/results/clientpositive/auto_join10.q.out
index d6c9c35..7c7f4c8 100644
--- a/ql/src/test/results/clientpositive/auto_join10.q.out
+++ b/ql/src/test/results/clientpositive/auto_join10.q.out
@@ -30,6 +30,7 @@ STAGE PLANS:
         $hdt$_0:$hdt$_0:src 
           TableScan
             alias: src
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -48,6 +49,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join11.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join11.q.out b/ql/src/test/results/clientpositive/auto_join11.q.out
index ce91122..4a0a2ea 100644
--- a/ql/src/test/results/clientpositive/auto_join11.q.out
+++ b/ql/src/test/results/clientpositive/auto_join11.q.out
@@ -30,6 +30,7 @@ STAGE PLANS:
         $hdt$_0:$hdt$_0:src 
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 100.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 100.0D) (type: boolean)
@@ -48,6 +49,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 100.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 100.0D) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join12.q.out b/ql/src/test/results/clientpositive/auto_join12.q.out
index 8dae2ec..7b384b6 100644
--- a/ql/src/test/results/clientpositive/auto_join12.q.out
+++ b/ql/src/test/results/clientpositive/auto_join12.q.out
@@ -39,6 +39,7 @@ STAGE PLANS:
         $hdt$_0:$hdt$_1:src 
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 80.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 80.0D) (type: boolean)
@@ -55,6 +56,7 @@ STAGE PLANS:
         $hdt$_0:$hdt$_2:src 
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 80.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 80.0D) (type: boolean)
@@ -74,6 +76,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 80.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 80.0D) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join13.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join13.q.out b/ql/src/test/results/clientpositive/auto_join13.q.out
index ab1e100..15558a2 100644
--- a/ql/src/test/results/clientpositive/auto_join13.q.out
+++ b/ql/src/test/results/clientpositive/auto_join13.q.out
@@ -39,6 +39,7 @@ STAGE PLANS:
         $hdt$_0:$hdt$_0:src 
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 200.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 200.0D) (type: boolean)
@@ -54,6 +55,7 @@ STAGE PLANS:
         $hdt$_0:$hdt$_1:src 
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 100.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 100.0D) (type: boolean)
@@ -72,6 +74,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 100.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 100.0D) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join14.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join14.q.out b/ql/src/test/results/clientpositive/auto_join14.q.out
index 1d8a2da..6317590 100644
--- a/ql/src/test/results/clientpositive/auto_join14.q.out
+++ b/ql/src/test/results/clientpositive/auto_join14.q.out
@@ -32,6 +32,7 @@ STAGE PLANS:
         $hdt$_0:src 
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) > 100.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) > 100.0D) (type: boolean)
@@ -50,6 +51,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: srcpart
+            filterExpr: ((ds = '2008-04-08') and (UDFToDouble(key) > 100.0D)) (type: boolean)
             Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) > 100.0D) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join15.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join15.q.out b/ql/src/test/results/clientpositive/auto_join15.q.out
index fd0dfd3..960940e 100644
--- a/ql/src/test/results/clientpositive/auto_join15.q.out
+++ b/ql/src/test/results/clientpositive/auto_join15.q.out
@@ -30,6 +30,7 @@ STAGE PLANS:
         a:src1 
           TableScan
             alias: src1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -44,6 +45,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src2
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join16.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join16.q.out b/ql/src/test/results/clientpositive/auto_join16.q.out
index eb124c2..2782376 100644
--- a/ql/src/test/results/clientpositive/auto_join16.q.out
+++ b/ql/src/test/results/clientpositive/auto_join16.q.out
@@ -30,6 +30,7 @@ STAGE PLANS:
         $hdt$_0:$hdt$_0:a 
           TableScan
             alias: a
+            filterExpr: ((UDFToDouble(key) > 20.0D) and (UDFToDouble(value) < 200.0D)) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: ((UDFToDouble(key) > 20.0D) and (UDFToDouble(value) < 200.0D)) (type: boolean)
@@ -48,6 +49,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: tab
+            filterExpr: ((UDFToDouble(key) > 20.0D) and (UDFToDouble(value) < 200.0D)) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: ((UDFToDouble(key) > 20.0D) and (UDFToDouble(value) < 200.0D)) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join17.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join17.q.out b/ql/src/test/results/clientpositive/auto_join17.q.out
index f2a1615..300cbb6 100644
--- a/ql/src/test/results/clientpositive/auto_join17.q.out
+++ b/ql/src/test/results/clientpositive/auto_join17.q.out
@@ -32,6 +32,7 @@ STAGE PLANS:
         $hdt$_0:src1 
           TableScan
             alias: src1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -50,6 +51,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src2
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join19.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join19.q.out b/ql/src/test/results/clientpositive/auto_join19.q.out
index 3d32ae4..3e07ec0 100644
--- a/ql/src/test/results/clientpositive/auto_join19.q.out
+++ b/ql/src/test/results/clientpositive/auto_join19.q.out
@@ -34,6 +34,7 @@ STAGE PLANS:
         $hdt$_1:src2 
           TableScan
             alias: src2
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -52,6 +53,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src1
+            filterExpr: (((ds = '2008-04-08') or (ds = '2008-04-09')) and ((hr = '12') or (hr = '11')) and key is not null) (type: boolean)
             Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join19_inclause.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join19_inclause.q.out b/ql/src/test/results/clientpositive/auto_join19_inclause.q.out
index 3f0a32f..7e0ab61 100644
--- a/ql/src/test/results/clientpositive/auto_join19_inclause.q.out
+++ b/ql/src/test/results/clientpositive/auto_join19_inclause.q.out
@@ -34,6 +34,7 @@ STAGE PLANS:
         $hdt$_1:src2 
           TableScan
             alias: src2
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -52,6 +53,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src1
+            filterExpr: ((ds) IN ('2008-04-08', '2008-04-09') and (hr) IN ('12', '11') and key is not null) (type: boolean)
             Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join2.q.out b/ql/src/test/results/clientpositive/auto_join2.q.out
index a7dd6a2..8e51fa6 100644
--- a/ql/src/test/results/clientpositive/auto_join2.q.out
+++ b/ql/src/test/results/clientpositive/auto_join2.q.out
@@ -35,6 +35,7 @@ STAGE PLANS:
         $hdt$_0:src1 
           TableScan
             alias: src1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -50,6 +51,7 @@ STAGE PLANS:
         $hdt$_2:src3 
           TableScan
             alias: src3
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -68,6 +70,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src2
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join20.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join20.q.out b/ql/src/test/results/clientpositive/auto_join20.q.out
index f512c7f..8f015b3 100644
--- a/ql/src/test/results/clientpositive/auto_join20.q.out
+++ b/ql/src/test/results/clientpositive/auto_join20.q.out
@@ -33,6 +33,7 @@ STAGE PLANS:
         a:src1 
           TableScan
             alias: src1
+            filterExpr: (key < 10) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (key < 10) (type: boolean)
@@ -49,6 +50,7 @@ STAGE PLANS:
         a:src2 
           TableScan
             alias: src2
+            filterExpr: (key < 10) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (key < 10) (type: boolean)
@@ -173,6 +175,7 @@ STAGE PLANS:
         a:src1 
           TableScan
             alias: src1
+            filterExpr: ((key < 15) and (key < 10)) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: ((key < 10) and (key < 15)) (type: boolean)
@@ -189,6 +192,7 @@ STAGE PLANS:
         a:src2 
           TableScan
             alias: src2
+            filterExpr: ((key < 10) and (key < 15)) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: ((key < 10) and (key < 15)) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join21.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join21.q.out b/ql/src/test/results/clientpositive/auto_join21.q.out
index 84a4627..0dccbcb 100644
--- a/ql/src/test/results/clientpositive/auto_join21.q.out
+++ b/ql/src/test/results/clientpositive/auto_join21.q.out
@@ -36,6 +36,7 @@ STAGE PLANS:
         src2 
           TableScan
             alias: src2
+            filterExpr: (key > 10) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (key > 10) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join22.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join22.q.out b/ql/src/test/results/clientpositive/auto_join22.q.out
index 7b35422..81e5fb8 100644
--- a/ql/src/test/results/clientpositive/auto_join22.q.out
+++ b/ql/src/test/results/clientpositive/auto_join22.q.out
@@ -23,6 +23,7 @@ STAGE PLANS:
         $hdt$_0:$hdt$_0:$hdt$_0:src1 
           TableScan
             alias: src1
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -38,6 +39,7 @@ STAGE PLANS:
         $hdt$_0:$hdt$_1:src4 
           TableScan
             alias: src4
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -56,6 +58,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src2
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join23.q.out b/ql/src/test/results/clientpositive/auto_join23.q.out
index 8fa5787..e31941d 100644
--- a/ql/src/test/results/clientpositive/auto_join23.q.out
+++ b/ql/src/test/results/clientpositive/auto_join23.q.out
@@ -21,6 +21,7 @@ STAGE PLANS:
         src1 
           TableScan
             alias: src1
+            filterExpr: (key < 10) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (key < 10) (type: boolean)
@@ -35,6 +36,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src2
+            filterExpr: (key < 10) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (key < 10) (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join24.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join24.q.out b/ql/src/test/results/clientpositive/auto_join24.q.out
index 2e6d8c2..7322a78 100644
--- a/ql/src/test/results/clientpositive/auto_join24.q.out
+++ b/ql/src/test/results/clientpositive/auto_join24.q.out
@@ -40,6 +40,7 @@ STAGE PLANS:
         $hdt$_0:a 
           TableScan
             alias: a
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 309 Data size: 1482 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -58,6 +59,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: b
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 309 Data size: 1482 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join26.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join26.q.out b/ql/src/test/results/clientpositive/auto_join26.q.out
index 931c154..8d3e016 100644
--- a/ql/src/test/results/clientpositive/auto_join26.q.out
+++ b/ql/src/test/results/clientpositive/auto_join26.q.out
@@ -32,6 +32,7 @@ STAGE PLANS:
         $hdt$_0:x 
           TableScan
             alias: x
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)
@@ -50,6 +51,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: y
+            filterExpr: key is not null (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: key is not null (type: boolean)

http://git-wip-us.apache.org/repos/asf/hive/blob/f2c4f319/ql/src/test/results/clientpositive/auto_join27.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join27.q.out b/ql/src/test/results/clientpositive/auto_join27.q.out
index eeb1f73..292d6d2 100644
--- a/ql/src/test/results/clientpositive/auto_join27.q.out
+++ b/ql/src/test/results/clientpositive/auto_join27.q.out
@@ -35,6 +35,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 200.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 200.0D) (type: boolean)
@@ -77,6 +78,7 @@ STAGE PLANS:
         $hdt$_1:src 
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 200.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 200.0D) (type: boolean)
@@ -95,6 +97,7 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: src
+            filterExpr: (UDFToDouble(key) < 200.0D) (type: boolean)
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (UDFToDouble(key) < 200.0D) (type: boolean)