You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by kg...@apache.org on 2021/11/23 08:04:08 UTC

[hive] branch master updated: HIVE-23095: NDV might be overestimated for a table with ~70 value (#2783) (Zoltan Haindrich reviewed by Krisztian Kasa)

This is an automated email from the ASF dual-hosted git repository.

kgyrtkirk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 3806b9f  HIVE-23095: NDV might be overestimated for a table with ~70 value (#2783) (Zoltan Haindrich reviewed by Krisztian Kasa)
3806b9f is described below

commit 3806b9f9092f9442ed235517a88a554262fd5180
Author: Zoltan Haindrich <ki...@rxd.hu>
AuthorDate: Tue Nov 23 09:03:58 2021 +0100

    HIVE-23095: NDV might be overestimated for a table with ~70 value (#2783) (Zoltan Haindrich reviewed by Krisztian Kasa)
---
 .../hive/benchmark/serde/HyperLogLogBench.java     | 132 +++++++++++++
 .../clientpositive/llap/bucket_map_join_tez2.q.out |  18 +-
 .../clientpositive/llap/compute_bit_vector.q.out   |   8 +-
 .../clientpositive/llap/compute_stats_date.q.out   |   2 +-
 .../llap/confirm_initial_tbl_stats.q.out           |   2 +-
 .../llap/constraints_explain_ddl.q.out             |  50 ++---
 .../llap/dynamic_semijoin_reduction_2.q.out        |  24 +--
 .../llap/estimate_pkfk_fknulls.q.out               |   4 +-
 .../clientpositive/llap/explainanalyze_2.q.out     | 207 ++++++++++-----------
 .../llap/groupby_join_pushdown.q.out               | 136 +++++++-------
 .../clientpositive/llap/limit_pushdown.q.out       |   6 +-
 .../clientpositive/llap/limit_pushdown3.q.out      |  18 +-
 .../clientpositive/llap/mapjoin_decimal.q.out      |   2 +-
 .../llap/offset_limit_ppd_optimizer.q.out          |   6 +-
 .../llap/parquet_vectorization_limit.q.out         |  20 +-
 .../llap/partition_explain_ddl.q.out               |  92 ++++-----
 .../results/clientpositive/llap/prepare_plan.q.out |  44 ++---
 .../llap/vector_left_outer_join.q.out              |   2 +-
 .../clientpositive/llap/vector_llap_text_1.q.out   |   2 +-
 .../clientpositive/llap/vectorization_div0.q.out   |  10 +-
 .../llap/vectorization_input_format_excludes.q.out |  48 ++---
 .../clientpositive/llap/vectorization_limit.q.out  |  32 ++--
 .../llap/vectorized_distinct_gby.q.out             |   4 +-
 .../llap/vectorized_nested_mapjoin.q.out           |   4 +-
 .../clientpositive/llap/vectorized_parquet.q.out   |  12 +-
 .../test/results/clientpositive/tez/tez_tag.q.out  |  12 +-
 .../hadoop/hive/common/ndv/hll/HLLConstants.java   |   3 -
 .../hive/common/ndv/hll/HLLSparseRegister.java     | 101 +++-------
 .../hadoop/hive/common/ndv/hll/HyperLogLog.java    |  22 ++-
 .../hive/common/ndv/hll/HyperLogLogUtils.java      |  14 +-
 .../hive/common/ndv/hll/TestHyperLogLog.java       | 100 ++++++----
 31 files changed, 620 insertions(+), 517 deletions(-)

diff --git a/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/serde/HyperLogLogBench.java b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/serde/HyperLogLogBench.java
new file mode 100644
index 0000000..1a9ebb1
--- /dev/null
+++ b/itests/hive-jmh/src/main/java/org/apache/hive/benchmark/serde/HyperLogLogBench.java
@@ -0,0 +1,132 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hive.benchmark.serde;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.hadoop.hive.common.ndv.hll.HyperLogLog;
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Fork;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.OutputTimeUnit;
+import org.openjdk.jmh.annotations.Scope;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.State;
+import org.openjdk.jmh.annotations.Warmup;
+import org.openjdk.jmh.runner.Runner;
+import org.openjdk.jmh.runner.RunnerException;
+import org.openjdk.jmh.runner.options.Options;
+import org.openjdk.jmh.runner.options.OptionsBuilder;
+
+/**
+ * java -cp target/benchmarks.jar org.apache.hive.benchmark.serde.HyperLogLogBench
+ */
+@State(Scope.Benchmark)
+public class HyperLogLogBench {
+  public static final int DEFAULT_ITER_TIME = 1000000;
+
+  @BenchmarkMode(Mode.AverageTime)
+  @Fork(1)
+  @State(Scope.Thread)
+  @OutputTimeUnit(TimeUnit.MILLISECONDS)
+  public static abstract class Abstract {
+
+    @Setup
+    public abstract void setup();
+
+    @Benchmark
+    @Warmup(iterations = 3, time = 2, timeUnit = TimeUnit.MILLISECONDS)
+    @Measurement(iterations = 5, time = 2, timeUnit = TimeUnit.MILLISECONDS)
+    public void bench() {
+
+    }
+  }
+
+
+  public abstract static class SizeOptimizedSparseStressN extends Abstract {
+
+    private HyperLogLog hll;
+    private final int stressN;
+    private final int numIterations;
+
+    public SizeOptimizedSparseStressN(int stressN) {
+      this.stressN = stressN;
+      numIterations = DEFAULT_ITER_TIME / stressN;
+    }
+
+    @Override
+    public void setup() {
+      hll = HyperLogLog.builder().setSizeOptimized().build();
+    }
+
+    @Override
+    public void bench() {
+      for (int i = 0; i < numIterations; i++) {
+        for (int j = 0; j < stressN; j++) {
+          hll.addInt(j);
+        }
+      }
+    }
+
+  }
+
+  public static class SizeOptimizedSparseStress30 extends SizeOptimizedSparseStressN {
+    public SizeOptimizedSparseStress30() {
+      super(30);
+    }
+  }
+
+  public static class SizeOptimizedSparseStress70 extends SizeOptimizedSparseStressN {
+    public SizeOptimizedSparseStress70() {
+      super(70);
+    }
+  }
+
+  public static class SizeOptimizedSparseStressTminus10 extends SizeOptimizedSparseStressN {
+    public SizeOptimizedSparseStressTminus10() {
+      super(HyperLogLog.builder().setSizeOptimized().build().getEncodingSwitchThreshold()-10);
+    }
+  }
+
+  public static class SizeOptimizedSparseStressTminus1 extends SizeOptimizedSparseStressN {
+    public SizeOptimizedSparseStressTminus1() {
+      super(HyperLogLog.builder().setSizeOptimized().build().getEncodingSwitchThreshold() - 1);
+    }
+  }
+
+  public static class SizeOptimizedSparseStressT extends SizeOptimizedSparseStressN {
+    public SizeOptimizedSparseStressT() {
+      super(HyperLogLog.builder().setSizeOptimized().build().getEncodingSwitchThreshold());
+    }
+  }
+
+  public static class SizeOptimizedDenseStress2T extends SizeOptimizedSparseStressN {
+    public SizeOptimizedDenseStress2T() {
+      super(2 * HyperLogLog.builder().setSizeOptimized().build().getEncodingSwitchThreshold());
+    }
+  }
+
+  public static class SizeOptimizedDenseStress8T extends SizeOptimizedSparseStressN {
+    public SizeOptimizedDenseStress8T() {
+      super(8*HyperLogLog.builder().setSizeOptimized().build().getEncodingSwitchThreshold());
+    }
+  }
+
+  public static void main(String[] args) throws RunnerException {
+    Options opt = new OptionsBuilder().include(".*" + HyperLogLogBench.class.getSimpleName() + ".*").build();
+    new Runner(opt).run();
+  }
+}
diff --git a/ql/src/test/results/clientpositive/llap/bucket_map_join_tez2.q.out b/ql/src/test/results/clientpositive/llap/bucket_map_join_tez2.q.out
index 6f0c60c..4757c32 100644
--- a/ql/src/test/results/clientpositive/llap/bucket_map_join_tez2.q.out
+++ b/ql/src/test/results/clientpositive/llap/bucket_map_join_tez2.q.out
@@ -1195,13 +1195,13 @@ STAGE PLANS:
                       minReductionHashAggr: 0.4
                       mode: hash
                       outputColumnNames: _col0
-                      Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: int)
                         null sort order: z
                         sort order: +
                         Map-reduce partition columns: _col0 (type: int)
-                        Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
                     Select Operator
                       expressions: key (type: int)
                       outputColumnNames: _col0
@@ -1221,13 +1221,13 @@ STAGE PLANS:
                 keys: KEY._col0 (type: int)
                 mode: mergepartial
                 outputColumnNames: _col0
-                Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
                 Reduce Output Operator
                   key expressions: _col0 (type: int)
                   null sort order: z
                   sort order: +
                   Map-reduce partition columns: _col0 (type: int)
-                  Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
         Reducer 3 
             Execution mode: llap
             Reduce Operator Tree:
@@ -1290,13 +1290,13 @@ STAGE PLANS:
                       minReductionHashAggr: 0.4
                       mode: hash
                       outputColumnNames: _col0
-                      Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: int)
                         null sort order: z
                         sort order: +
                         Map-reduce partition columns: _col0 (type: int)
-                        Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
         Map 3 
@@ -1304,7 +1304,7 @@ STAGE PLANS:
                 TableScan
                   alias: b
                   filterExpr: key is not null (type: boolean)
-                  probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.6033057851239669
+                  probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.6322314049586777
                   Statistics: Num rows: 242 Data size: 968 Basic stats: COMPLETE Column stats: COMPLETE
                   Filter Operator
                     predicate: key is not null (type: boolean)
@@ -1339,13 +1339,13 @@ STAGE PLANS:
                 keys: KEY._col0 (type: int)
                 mode: mergepartial
                 outputColumnNames: _col0
-                Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
                 Reduce Output Operator
                   key expressions: _col0 (type: int)
                   null sort order: z
                   sort order: +
                   Map-reduce partition columns: _col0 (type: int)
-                  Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
 
   Stage: Stage-0
     Fetch Operator
diff --git a/ql/src/test/results/clientpositive/llap/compute_bit_vector.q.out b/ql/src/test/results/clientpositive/llap/compute_bit_vector.q.out
index 45d0253..f90eb70 100644
--- a/ql/src/test/results/clientpositive/llap/compute_bit_vector.q.out
+++ b/ql/src/test/results/clientpositive/llap/compute_bit_vector.q.out
@@ -6,7 +6,7 @@ POSTHOOK: query: select hex(compute_bit_vector_hll(ctinyint)) from alltypesorc
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-484C4CA48201002400000000000010000000000000000030000000010000300020000020000000001010000000000000101000000000000000000000000000010010000000000000000000000000000000202000000000003000000000005010000000100020000100000004001100200000600000000020000001000000000040000101000000000000030000000000000300000000000000010000001004000000000241000001000000002000200000000020000000000101000000000000000000000010000020000030000000000000000000300000000000000000000000000100000332000000000000000000000000000000 [...]
+484C4CA07F7F829AE8688083800DFF9DBCF404C19597E0FCFFFFFFFF01BFDAB0D90282A7C4A3FDFFFFFFFF01C08D81A704FEC6E59AFEFFFFFFFF01C090B7C2FCFFFFFFFF01C1809DFD03C0F7FFE1FBFFFFFFFF01809DDDFF0481CCA7D5FEFFFFFFFF01FE9FD745C3F5DACBFFFFFFFFFF01FDE5A2D5FBFFFFFFFF0180D4EFCB02C1B485AC01FFBCA2F5FDFFFFFFFF01C3A883E601BDA0FC8EFDFFFFFFFF01C19EBE7780D9DFEFFDFFFFFFFF01BF99E454C1DADCF803809FDFFBFCFFFFFFFF01C0F5EFCAFFFFFFFFFF0180DF8D8603BFAABFB5FDFFFFFFFF01C0FEA4FC03C1F39CB1FAFFFFFFFF01C1C298B303C185AF19FDBD8DFFFDFF [...]
 PREHOOK: query: select hex(compute_bit_vector_hll(csmallint)) from alltypesorc
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alltypesorc
@@ -42,7 +42,7 @@ POSTHOOK: query: select hex(compute_bit_vector_hll(cfloat)) from alltypesorc
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-484C4CA48301000000000000000036000000000000001000000121000004133200010020002000040000000000000000000000000020000000000000000000000000000002000000000000000000002200000000000000000000000000000000100000000000010000000000001000000000000050000002000000000020000100000000000010000000300000000100000001000001004000000000000000000000010200001300000100000000100003000000020000000000001000000000000000000000000002000100000200000001100000000000200000030040000010009000000000100000000000010100200020002000 [...]
+484C4CA08301830182D2E9C906C1B6A8D6F9FFFFFFFF0183FCEFE003FCC4F6AF02BFA7B5A1FDFFFFFFFF0181D99CE502FFBFCBD1F9FFFFFFFF018193F24CC0FC9FF8FFFFFFFFFF01BF8EB545C2F8F3A304FEF2D2BEFBFFFFFFFF0180F4C2B003C1C181C20282F4BAD2FEFFFFFFFF01FDA3AA9C02C0FF9EFEFFFFFFFFFF01C2A7C3EAFCFFFFFFFF01BFF1EAC2FEFFFFFFFF0181FFD68104FFB5D7CBFEFFFFFFFF01FF95DCA7FDFFFFFFFF018087D8CAFFFFFFFFFF0181FC8B2C82F6989502BEB0F7C50281F6F918FEF8AB9EFEFFFFFFFF01C099DEAAFDFFFFFFFF01808397F3FFFFFFFFFF0180A6F964C1B4ADA9FEFFFFFFFF01BFC8C9 [...]
 PREHOOK: query: select hex(compute_bit_vector_hll(cdouble)) from alltypesorc
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alltypesorc
@@ -78,7 +78,7 @@ POSTHOOK: query: select hex(compute_bit_vector_hll(ctimestamp1)) from alltypesor
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-484C4CA42300000000000000000000000000000000000030000000000000001300000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000500000000000020000000000000000000000000000000000000000002000000000000000000000000000000000000000000030000000000900000000200700000000010000000003000000000000000000000000000000000000000000000000000000000000000000000000 [...]
+484C4CA02323C4EBE3AC07BED5A5DEFDFFFFFFFF01C581F88E02BAB1CEA6FCFFFFFFFF0181969AF4FCFFFFFFFF01C0C6D1AD048188B8E1FCFFFFFFFF018093C0C701FECEB3C1FFFFFFFFFF0188829A8BFFFFFFFFFF01F8B18EB30380B2D4A802C0C3A0F0FDFFFFFFFF0180838201C1D3A3ADFFFFFFFFFF01C0A591E8FFFFFFFFFF01BFECFA52C1A2A4EBFCFFFFFFFF01BFD8AAE10585FCFDF0FEFFFFFFFF01BCDDA50383E497F7FBFFFFFFFF01FEB190BF0380DB9E8EFEFFFFFFFF01FE82DEFBFFFFFFFFFF01C189FD8903FFC689D8F9FFFFFFFF0180CCF1BB0582E9A9DAFEFFFFFFFF01BF85DAE8FEFFFFFFFF01C1DC87AD03BE9DDA [...]
 PREHOOK: query: select hex(compute_bit_vector_hll(cast (ctimestamp2 as date))) from alltypesorc
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alltypesorc
@@ -87,7 +87,7 @@ POSTHOOK: query: select hex(compute_bit_vector_hll(cast (ctimestamp2 as date)))
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-484C4CA301000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 [...]
+484C4CA0010186EC80C501
 PREHOOK: query: create table test_compute_bit_vector (val1 string, val2 string)
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
diff --git a/ql/src/test/results/clientpositive/llap/compute_stats_date.q.out b/ql/src/test/results/clientpositive/llap/compute_stats_date.q.out
index f28c21c..b33be22 100644
--- a/ql/src/test/results/clientpositive/llap/compute_stats_date.q.out
+++ b/ql/src/test/results/clientpositive/llap/compute_stats_date.q.out
@@ -43,7 +43,7 @@ POSTHOOK: query: select compute_stats(fl_date, 'hll') from tab_date
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@tab_date
 #### A masked pattern was here ####
-{"columntype":"Date","min":"2000-11-20","max":"2010-10-29","countnulls":0,"numdistinctvalues":19,"ndvbitvector":HLL�Ǫ����!���]����������������Y���T���P��R������W����ĈN������������}
+{"columntype":"Date","min":"2000-11-20","max":"2010-10-29","countnulls":0,"numdistinctvalues":19,"ndvbitvector":HLL������������t������������������������R��ո��������������Y������������������������������������������������犞}
 PREHOOK: query: explain
 analyze table tab_date compute statistics for columns fl_date
 PREHOOK: type: ANALYZE_TABLE
diff --git a/ql/src/test/results/clientpositive/llap/confirm_initial_tbl_stats.q.out b/ql/src/test/results/clientpositive/llap/confirm_initial_tbl_stats.q.out
index cdd934c..a51f258 100644
--- a/ql/src/test/results/clientpositive/llap/confirm_initial_tbl_stats.q.out
+++ b/ql/src/test/results/clientpositive/llap/confirm_initial_tbl_stats.q.out
@@ -237,7 +237,7 @@ data_type           	tinyint
 min                 	-64                 
 max                 	62                  
 num_nulls           	3115                
-distinct_count      	130                 
+distinct_count      	127                 
 avg_col_len         	                    
 max_col_len         	                    
 num_trues           	                    
diff --git a/ql/src/test/results/clientpositive/llap/constraints_explain_ddl.q.out b/ql/src/test/results/clientpositive/llap/constraints_explain_ddl.q.out
index cdce79a..c38adaa 100644
--- a/ql/src/test/results/clientpositive/llap/constraints_explain_ddl.q.out
+++ b/ql/src/test/results/clientpositive/llap/constraints_explain_ddl.q.out
@@ -932,7 +932,7 @@ ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_dayofweek SE
 ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_holidayfl SET('lowValue'='0','highValue'='0','numNulls'='2','numDVs'='1' );
 -- BIT VECTORS PRESENT FOR default.dates_removal_n0 FOR COLUMN d_holidayfl BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAEA 
 ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_id SET('lowValue'='0','highValue'='1','numNulls'='0','numDVs'='2' );
--- BIT VECTORS PRESENT FOR default.dates_removal_n0 FOR COLUMN d_id BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAICwdOOGICgsDA= 
+-- BIT VECTORS PRESENT FOR default.dates_removal_n0 FOR COLUMN d_id BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAICwfO+SIDgz8///////wE= 
 ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_lastdayinmonthfl SET('lowValue'='0','highValue'='0','numNulls'='2','numDVs'='1' );
 -- BIT VECTORS PRESENT FOR default.dates_removal_n0 FOR COLUMN d_lastdayinmonthfl BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAEA 
 ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_lastdayinweekfl SET('lowValue'='0','highValue'='0','numNulls'='2','numDVs'='1' );
@@ -1124,7 +1124,7 @@ ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_dayofweek SE
 ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_holidayfl SET('lowValue'='0','highValue'='0','numNulls'='2','numDVs'='1' );
 -- BIT VECTORS PRESENT FOR default.dates_removal_n0 FOR COLUMN d_holidayfl BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAEA 
 ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_id SET('lowValue'='0','highValue'='1','numNulls'='0','numDVs'='2' );
--- BIT VECTORS PRESENT FOR default.dates_removal_n0 FOR COLUMN d_id BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAICwdOOGICgsDA= 
+-- BIT VECTORS PRESENT FOR default.dates_removal_n0 FOR COLUMN d_id BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAICwfO+SIDgz8///////wE= 
 ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_lastdayinmonthfl SET('lowValue'='0','highValue'='0','numNulls'='2','numDVs'='1' );
 -- BIT VECTORS PRESENT FOR default.dates_removal_n0 FOR COLUMN d_lastdayinmonthfl BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAEA 
 ALTER TABLE default.dates_removal_n0 UPDATE STATISTICS FOR COLUMN d_lastdayinweekfl SET('lowValue'='0','highValue'='0','numNulls'='2','numDVs'='1' );
@@ -1499,9 +1499,9 @@ TBLPROPERTIES (
 ALTER TABLE default.dest_g21 ADD CONSTRAINT #### A masked pattern was here #### PRIMARY KEY (key1) DISABLE NOVALIDATE;
 ALTER TABLE default.dest_g21 UPDATE STATISTICS SET('numRows'='6','rawDataSize'='28' );
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN key1 SET('lowValue'='1','highValue'='6','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpn6L//ZxBjBu6xiguL3TL2SiwGD3vHAAg== 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwfO+SIGmu+f//////wHC9+jHAf6diLP//////wG/9IJOg97xwAI= 
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN value1 SET('numNulls'='2','numDVs'='3','highValue'='4.0','lowValue'='1.0' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwP/4PQQgsbBowI= 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwOBp7a0Av65vtz9/////wE= 
 
 
 
@@ -1563,9 +1563,9 @@ TBLPROPERTIES (
 ALTER TABLE default.dest_g21 ADD CONSTRAINT #### A masked pattern was here #### PRIMARY KEY (key1) DISABLE NOVALIDATE;
 ALTER TABLE default.dest_g21 UPDATE STATISTICS SET('numRows'='6','rawDataSize'='28' );
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN key1 SET('lowValue'='1','highValue'='6','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpn6L//ZxBjBu6xiguL3TL2SiwGD3vHAAg== 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwfO+SIGmu+f//////wHC9+jHAf6diLP//////wG/9IJOg97xwAI= 
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN value1 SET('numNulls'='2','numDVs'='3','highValue'='4.0','lowValue'='1.0' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwP/4PQQgsbBowI= 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwOBp7a0Av65vtz9/////wE= 
 
 
 
@@ -1628,9 +1628,9 @@ TBLPROPERTIES (
 ALTER TABLE default.dest_g21 ADD CONSTRAINT #### A masked pattern was here #### PRIMARY KEY (key1) DISABLE NOVALIDATE;
 ALTER TABLE default.dest_g21 UPDATE STATISTICS SET('numRows'='6','rawDataSize'='28' );
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN key1 SET('lowValue'='1','highValue'='6','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpn6L//ZxBjBu6xiguL3TL2SiwGD3vHAAg== 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwfO+SIGmu+f//////wHC9+jHAf6diLP//////wG/9IJOg97xwAI= 
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN value1 SET('numNulls'='2','numDVs'='3','highValue'='4.0','lowValue'='1.0' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwP/4PQQgsbBowI= 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwOBp7a0Av65vtz9/////wE= 
 
 
 
@@ -1693,9 +1693,9 @@ TBLPROPERTIES (
 ALTER TABLE default.dest_g21 ADD CONSTRAINT #### A masked pattern was here #### PRIMARY KEY (key1) DISABLE NOVALIDATE;
 ALTER TABLE default.dest_g21 UPDATE STATISTICS SET('numRows'='6','rawDataSize'='28' );
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN key1 SET('lowValue'='1','highValue'='6','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpn6L//ZxBjBu6xiguL3TL2SiwGD3vHAAg== 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwfO+SIGmu+f//////wHC9+jHAf6diLP//////wG/9IJOg97xwAI= 
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN value1 SET('numNulls'='2','numDVs'='3','highValue'='4.0','lowValue'='1.0' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwP/4PQQgsbBowI= 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwOBp7a0Av65vtz9/////wE= 
 
 
 
@@ -1822,9 +1822,9 @@ TBLPROPERTIES (
 ALTER TABLE default.dest_g21 ADD CONSTRAINT #### A masked pattern was here #### PRIMARY KEY (key1) DISABLE NOVALIDATE;
 ALTER TABLE default.dest_g21 UPDATE STATISTICS SET('numRows'='6','rawDataSize'='28' );
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN key1 SET('lowValue'='1','highValue'='6','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpn6L//ZxBjBu6xiguL3TL2SiwGD3vHAAg== 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwfO+SIGmu+f//////wHC9+jHAf6diLP//////wG/9IJOg97xwAI= 
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN value1 SET('numNulls'='2','numDVs'='3','highValue'='4.0','lowValue'='1.0' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwP/4PQQgsbBowI= 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwOBp7a0Av65vtz9/////wE= 
 
 
 
@@ -1953,9 +1953,9 @@ TBLPROPERTIES (
 ALTER TABLE default.dest_g21 ADD CONSTRAINT #### A masked pattern was here #### PRIMARY KEY (key1) DISABLE NOVALIDATE;
 ALTER TABLE default.dest_g21 UPDATE STATISTICS SET('numRows'='6','rawDataSize'='28' );
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN key1 SET('lowValue'='1','highValue'='6','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpn6L//ZxBjBu6xiguL3TL2SiwGD3vHAAg== 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwfO+SIGmu+f//////wHC9+jHAf6diLP//////wG/9IJOg97xwAI= 
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN value1 SET('numNulls'='2','numDVs'='3','highValue'='4.0','lowValue'='1.0' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwP/4PQQgsbBowI= 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwOBp7a0Av65vtz9/////wE= 
 
 
 
@@ -2103,9 +2103,9 @@ TBLPROPERTIES (
 ALTER TABLE default.dest_g21 ADD CONSTRAINT #### A masked pattern was here #### PRIMARY KEY (key1) DISABLE NOVALIDATE;
 ALTER TABLE default.dest_g21 UPDATE STATISTICS SET('numRows'='6','rawDataSize'='28' );
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN key1 SET('lowValue'='1','highValue'='6','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpn6L//ZxBjBu6xiguL3TL2SiwGD3vHAAg== 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwfO+SIGmu+f//////wHC9+jHAf6diLP//////wG/9IJOg97xwAI= 
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN value1 SET('numNulls'='2','numDVs'='3','highValue'='4.0','lowValue'='1.0' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwP/4PQQgsbBowI= 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwOBp7a0Av65vtz9/////wE= 
 
 
 
@@ -2285,9 +2285,9 @@ TBLPROPERTIES (
 ALTER TABLE default.dest_g21 ADD CONSTRAINT #### A masked pattern was here #### PRIMARY KEY (key1) DISABLE NOVALIDATE;
 ALTER TABLE default.dest_g21 UPDATE STATISTICS SET('numRows'='6','rawDataSize'='28' );
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN key1 SET('lowValue'='1','highValue'='6','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpn6L//ZxBjBu6xiguL3TL2SiwGD3vHAAg== 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwfO+SIGmu+f//////wHC9+jHAf6diLP//////wG/9IJOg97xwAI= 
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN value1 SET('numNulls'='2','numDVs'='3','highValue'='4.0','lowValue'='1.0' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwP/4PQQgsbBowI= 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwOBp7a0Av65vtz9/////wE= 
 
 
 
@@ -2353,9 +2353,9 @@ TBLPROPERTIES (
 ALTER TABLE default.dest_g21 ADD CONSTRAINT #### A masked pattern was here #### PRIMARY KEY (key1) DISABLE NOVALIDATE;
 ALTER TABLE default.dest_g21 UPDATE STATISTICS SET('numRows'='6','rawDataSize'='28' );
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN key1 SET('lowValue'='1','highValue'='6','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpn6L//ZxBjBu6xiguL3TL2SiwGD3vHAAg== 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN key1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwfO+SIGmu+f//////wHC9+jHAf6diLP//////wG/9IJOg97xwAI= 
 ALTER TABLE default.dest_g21 UPDATE STATISTICS FOR COLUMN value1 SET('numNulls'='2','numDVs'='3','highValue'='4.0','lowValue'='1.0' );
--- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwP/4PQQgsbBowI= 
+-- BIT VECTORS PRESENT FOR default.dest_g21 FOR COLUMN value1 BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwvmagwOBp7a0Av65vtz9/////wE= 
 
 
 
@@ -2510,7 +2510,7 @@ TBLPROPERTIES (
 ALTER TABLE default.tconst UPDATE STATISTICS SET('numRows'='3','rawDataSize'='25' );
 ALTER TABLE default.tconst CHANGE COLUMN i i int CONSTRAINT #### A masked pattern was here #### NOT NULL DISABLE;
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN d_year SET('avgColLen'='4.0','maxColLen'='4','numNulls'='0','numDVs'='3' );
--- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwpepZP/f7ASBwcWJBg== 
+-- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwrjb8gb/vrr2+f////8BgaCT+///////AQ== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN i SET('lowValue'='1','highValue'='3','numNulls'='0','numDVs'='3' );
 -- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN i BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwfO+SMG7rGLC0vSOAw== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN j SET('lowValue'='1','highValue'='3','numNulls'='1','numDVs'='2' );
@@ -2639,7 +2639,7 @@ TBLPROPERTIES (
 ALTER TABLE default.tconst UPDATE STATISTICS SET('numRows'='3','rawDataSize'='25' );
 ALTER TABLE default.tconst CHANGE COLUMN i i int CONSTRAINT #### A masked pattern was here #### NOT NULL DISABLE;
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN d_year SET('avgColLen'='4.0','maxColLen'='4','numNulls'='0','numDVs'='3' );
--- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwpepZP/f7ASBwcWJBg== 
+-- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwrjb8gb/vrr2+f////8BgaCT+///////AQ== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN i SET('lowValue'='1','highValue'='3','numNulls'='0','numDVs'='3' );
 -- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN i BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwfO+SMG7rGLC0vSOAw== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN j SET('lowValue'='1','highValue'='3','numNulls'='1','numDVs'='2' );
@@ -2769,7 +2769,7 @@ TBLPROPERTIES (
 ALTER TABLE default.tconst UPDATE STATISTICS SET('numRows'='3','rawDataSize'='25' );
 ALTER TABLE default.tconst CHANGE COLUMN i i int CONSTRAINT #### A masked pattern was here #### NOT NULL DISABLE;
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN d_year SET('avgColLen'='4.0','maxColLen'='4','numNulls'='0','numDVs'='3' );
--- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwpepZP/f7ASBwcWJBg== 
+-- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwrjb8gb/vrr2+f////8BgaCT+///////AQ== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN i SET('lowValue'='1','highValue'='3','numNulls'='0','numDVs'='3' );
 -- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN i BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwfO+SMG7rGLC0vSOAw== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN j SET('lowValue'='1','highValue'='3','numNulls'='1','numDVs'='2' );
@@ -2898,7 +2898,7 @@ TBLPROPERTIES (
 ALTER TABLE default.tconst UPDATE STATISTICS SET('numRows'='3','rawDataSize'='25' );
 ALTER TABLE default.tconst CHANGE COLUMN i i int CONSTRAINT #### A masked pattern was here #### NOT NULL DISABLE;
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN d_year SET('avgColLen'='4.0','maxColLen'='4','numNulls'='0','numDVs'='3' );
--- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwpepZP/f7ASBwcWJBg== 
+-- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwrjb8gb/vrr2+f////8BgaCT+///////AQ== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN i SET('lowValue'='1','highValue'='3','numNulls'='0','numDVs'='3' );
 -- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN i BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwfO+SMG7rGLC0vSOAw== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN j SET('lowValue'='1','highValue'='3','numNulls'='1','numDVs'='2' );
@@ -3087,7 +3087,7 @@ TBLPROPERTIES (
 ALTER TABLE default.tconst UPDATE STATISTICS SET('numRows'='3','rawDataSize'='25' );
 ALTER TABLE default.tconst CHANGE COLUMN i i int CONSTRAINT #### A masked pattern was here #### NOT NULL DISABLE;
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN d_year SET('avgColLen'='4.0','maxColLen'='4','numNulls'='0','numDVs'='3' );
--- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwpepZP/f7ASBwcWJBg== 
+-- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN d_year BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwrjb8gb/vrr2+f////8BgaCT+///////AQ== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN i SET('lowValue'='1','highValue'='3','numNulls'='0','numDVs'='3' );
 -- BIT VECTORS PRESENT FOR default.tconst FOR COLUMN i BUT THEY ARE NOT SUPPORTED YET. THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAMDwfO+SMG7rGLC0vSOAw== 
 ALTER TABLE default.tconst UPDATE STATISTICS FOR COLUMN j SET('lowValue'='1','highValue'='3','numNulls'='1','numDVs'='2' );
diff --git a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction_2.q.out b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction_2.q.out
index 828f324..b74787e 100644
--- a/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction_2.q.out
+++ b/ql/src/test/results/clientpositive/llap/dynamic_semijoin_reduction_2.q.out
@@ -538,13 +538,13 @@ STAGE PLANS:
                       minReductionHashAggr: 0.4
                       mode: hash
                       outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 146 Data size: 27448 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 153 Data size: 28764 Basic stats: COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: int)
                         null sort order: z
                         sort order: +
                         Map-reduce partition columns: _col0 (type: int)
-                        Statistics: Num rows: 146 Data size: 27448 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 153 Data size: 28764 Basic stats: COMPLETE Column stats: COMPLETE
                         value expressions: _col1 (type: string)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -562,13 +562,13 @@ STAGE PLANS:
                       minReductionHashAggr: 0.4
                       mode: hash
                       outputColumnNames: _col0
-                      Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: int)
                         null sort order: z
                         sort order: +
                         Map-reduce partition columns: _col0 (type: int)
-                        Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
         Map 8 
@@ -598,7 +598,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: int)
                 mode: mergepartial
                 outputColumnNames: _col0
-                Statistics: Num rows: 146 Data size: 584 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 153 Data size: 612 Basic stats: COMPLETE Column stats: COMPLETE
                 Dummy Store
             Execution mode: llap
             Reduce Operator Tree:
@@ -607,10 +607,10 @@ STAGE PLANS:
                 keys: KEY._col0 (type: int)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 146 Data size: 27448 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 153 Data size: 28764 Basic stats: COMPLETE Column stats: COMPLETE
                 Filter Operator
                   predicate: _col1 is not null (type: boolean)
-                  Statistics: Num rows: 146 Data size: 27448 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 153 Data size: 28764 Basic stats: COMPLETE Column stats: COMPLETE
                   Merge Join Operator
                     condition map:
                          Inner Join 0 to 1
@@ -618,19 +618,19 @@ STAGE PLANS:
                       0 _col0 (type: int)
                       1 _col0 (type: int)
                     outputColumnNames: _col1
-                    Statistics: Num rows: 146 Data size: 26864 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 153 Data size: 28152 Basic stats: COMPLETE Column stats: COMPLETE
                     Reduce Output Operator
                       key expressions: _col1 (type: string)
                       null sort order: z
                       sort order: +
                       Map-reduce partition columns: _col1 (type: string)
-                      Statistics: Num rows: 146 Data size: 26864 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 153 Data size: 28152 Basic stats: COMPLETE Column stats: COMPLETE
                     Select Operator
                       expressions: _col1 (type: string)
                       outputColumnNames: _col1
-                      Statistics: Num rows: 146 Data size: 26864 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 153 Data size: 28152 Basic stats: COMPLETE Column stats: COMPLETE
                       Group By Operator
-                        aggregations: min(_col1), max(_col1), bloom_filter(_col1, expectedEntries=146)
+                        aggregations: min(_col1), max(_col1), bloom_filter(_col1, expectedEntries=153)
                         minReductionHashAggr: 0.99
                         mode: hash
                         outputColumnNames: _col0, _col1, _col2
@@ -680,7 +680,7 @@ STAGE PLANS:
             Execution mode: vectorized, llap
             Reduce Operator Tree:
               Group By Operator
-                aggregations: min(VALUE._col0), max(VALUE._col1), bloom_filter(VALUE._col2, expectedEntries=146)
+                aggregations: min(VALUE._col0), max(VALUE._col1), bloom_filter(VALUE._col2, expectedEntries=153)
                 mode: final
                 outputColumnNames: _col0, _col1, _col2
                 Statistics: Num rows: 1 Data size: 552 Basic stats: COMPLETE Column stats: COMPLETE
diff --git a/ql/src/test/results/clientpositive/llap/estimate_pkfk_fknulls.q.out b/ql/src/test/results/clientpositive/llap/estimate_pkfk_fknulls.q.out
index 8aef47b..28f1041 100644
--- a/ql/src/test/results/clientpositive/llap/estimate_pkfk_fknulls.q.out
+++ b/ql/src/test/results/clientpositive/llap/estimate_pkfk_fknulls.q.out
@@ -91,7 +91,7 @@ data_type           	bigint
 min                 	1                   
 max                 	70                  
 num_nulls           	72                  
-distinct_count      	73                  
+distinct_count      	70                  
 avg_col_len         	                    
 max_col_len         	                    
 num_trues           	                    
@@ -120,7 +120,7 @@ data_type           	bigint
 min                 	1                   
 max                 	70                  
 num_nulls           	72                  
-distinct_count      	73                  
+distinct_count      	70                  
 avg_col_len         	                    
 max_col_len         	                    
 num_trues           	                    
diff --git a/ql/src/test/results/clientpositive/llap/explainanalyze_2.q.out b/ql/src/test/results/clientpositive/llap/explainanalyze_2.q.out
index 9bdfa8c..4ca869c 100644
--- a/ql/src/test/results/clientpositive/llap/explainanalyze_2.q.out
+++ b/ql/src/test/results/clientpositive/llap/explainanalyze_2.q.out
@@ -627,7 +627,7 @@ Stage-0
     Stage-1
       Map 1 llap
       File Output Operator [FS_10]
-        Merge Join Operator [MERGEJOIN_25] (rows=401/480 width=95)
+        Merge Join Operator [MERGEJOIN_25] (rows=382/480 width=95)
           Conds:SEL_2._col0=DUMMY_STORE_26._col0(Inner),Output:["_col0","_col1"]
         <-Dummy Store [DUMMY_STORE_26]
             Select Operator [SEL_5] (rows=242/242 width=4)
@@ -669,47 +669,42 @@ Plan optimized by CBO.
 
 Vertex dependency in root stage
 Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
-Reducer 3 <- Map 1 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
 
 Stage-0
   Fetch Operator
     limit:-1
     Stage-1
-      Reducer 3 llap
+      Reducer 2 llap
       File Output Operator [FS_16]
-        Merge Join Operator [MERGEJOIN_46] (rows=633/1166 width=95)
-          Conds:RS_12._col0=RS_13._col0(Inner),Output:["_col0","_col1"]
+        Merge Join Operator [MERGEJOIN_47] (rows=604/1166 width=95)
+          Conds:RS_12._col1=RS_13._col0(Inner),Output:["_col0","_col1"]
         <-Map 1 [SIMPLE_EDGE] llap
-          SHUFFLE [RS_13]
-            PartitionCols:_col0
-            Select Operator [SEL_8] (rows=242/242 width=4)
-              Output:["_col0"]
-              Filter Operator [FIL_24] (rows=242/242 width=4)
-                predicate:key is not null
-                TableScan [TS_0] (rows=242/242 width=95)
-                  default@tab_n6,s1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-        <-Reducer 2 [SIMPLE_EDGE] llap
           SHUFFLE [RS_12]
-            PartitionCols:_col0
+            PartitionCols:_col1
             Merge Join Operator [MERGEJOIN_45] (rows=382/480 width=95)
-              Conds:RS_9._col1=RS_10._col0(Inner),Output:["_col0","_col1"]
-            <-Map 1 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_9]
-                PartitionCols:_col1
-                Select Operator [SEL_2] (rows=242/242 width=95)
-                  Output:["_col0","_col1"]
-                  Filter Operator [FIL_22] (rows=242/242 width=95)
-                    predicate:(key is not null and value is not null)
-                     Please refer to the previous TableScan [TS_0]
-            <-Map 4 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_10]
-                PartitionCols:_col0
-                Select Operator [SEL_5] (rows=242/242 width=91)
+              Conds:SEL_2._col0=DUMMY_STORE_46._col0(Inner),Output:["_col0","_col1"]
+            <-Dummy Store [DUMMY_STORE_46]
+                Select Operator [SEL_5] (rows=242/242 width=4)
                   Output:["_col0"]
-                  Filter Operator [FIL_23] (rows=242/242 width=91)
-                    predicate:value is not null
-                    TableScan [TS_3] (rows=242/242 width=91)
-                      default@tab_n6,s2,Tbl:COMPLETE,Col:COMPLETE,Output:["value"]
+                  Filter Operator [FIL_23] (rows=242/242 width=4)
+                    predicate:key is not null
+                    TableScan [TS_3] (rows=242/242 width=4)
+                      default@tab_n6,s3,Tbl:COMPLETE,Col:COMPLETE,Output:["key"]
+            <-Select Operator [SEL_2] (rows=242/242 width=95)
+                Output:["_col0","_col1"]
+                Filter Operator [FIL_22] (rows=242/242 width=95)
+                  predicate:(key is not null and value is not null)
+                  TableScan [TS_0] (rows=242/242 width=95)
+                    default@tab_n6,s1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+        <-Map 4 [SIMPLE_EDGE] llap
+          SHUFFLE [RS_13]
+            PartitionCols:_col0
+            Select Operator [SEL_8] (rows=242/242 width=91)
+              Output:["_col0"]
+              Filter Operator [FIL_24] (rows=242/242 width=91)
+                predicate:value is not null
+                TableScan [TS_6] (rows=242/242 width=91)
+                  default@tab_n6,s2,Tbl:COMPLETE,Col:COMPLETE,Output:["value"]
 
 PREHOOK: query: select s1.key as key, s1.value as value from tab_n6 s1 join tab2_n3 s3 on s1.key=s3.key
 PREHOOK: type: QUERY
@@ -749,7 +744,7 @@ Stage-0
     Stage-1
       Map 1 llap
       File Output Operator [FS_10]
-        Merge Join Operator [MERGEJOIN_25] (rows=401/480 width=95)
+        Merge Join Operator [MERGEJOIN_25] (rows=382/480 width=95)
           Conds:SEL_2._col0=DUMMY_STORE_26._col0(Inner),Output:["_col0","_col1"]
         <-Dummy Store [DUMMY_STORE_26]
             Select Operator [SEL_5] (rows=242/242 width=4)
@@ -799,47 +794,42 @@ Plan optimized by CBO.
 
 Vertex dependency in root stage
 Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
-Reducer 3 <- Map 4 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE)
 
 Stage-0
   Fetch Operator
     limit:-1
     Stage-1
-      Reducer 3 llap
+      Reducer 2 llap
       File Output Operator [FS_16]
-        Merge Join Operator [MERGEJOIN_46] (rows=633/1166 width=95)
-          Conds:RS_12._col0=RS_13._col0(Inner),Output:["_col0","_col1"]
+        Merge Join Operator [MERGEJOIN_47] (rows=604/1166 width=95)
+          Conds:RS_12._col1=RS_13._col0(Inner),Output:["_col0","_col1"]
+        <-Map 1 [SIMPLE_EDGE] llap
+          SHUFFLE [RS_12]
+            PartitionCols:_col1
+            Merge Join Operator [MERGEJOIN_45] (rows=382/480 width=95)
+              Conds:SEL_2._col0=DUMMY_STORE_46._col0(Inner),Output:["_col0","_col1"]
+            <-Dummy Store [DUMMY_STORE_46]
+                Select Operator [SEL_5] (rows=242/242 width=4)
+                  Output:["_col0"]
+                  Filter Operator [FIL_23] (rows=242/242 width=4)
+                    predicate:key is not null
+                    TableScan [TS_3] (rows=242/242 width=4)
+                      default@tab2_n3,s3,Tbl:COMPLETE,Col:COMPLETE,Output:["key"]
+            <-Select Operator [SEL_2] (rows=242/242 width=95)
+                Output:["_col0","_col1"]
+                Filter Operator [FIL_22] (rows=242/242 width=95)
+                  predicate:(key is not null and value is not null)
+                  TableScan [TS_0] (rows=242/242 width=95)
+                    default@tab_n6,s1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
         <-Map 4 [SIMPLE_EDGE] llap
           SHUFFLE [RS_13]
             PartitionCols:_col0
-            Select Operator [SEL_8] (rows=242/242 width=4)
+            Select Operator [SEL_8] (rows=242/242 width=91)
               Output:["_col0"]
-              Filter Operator [FIL_24] (rows=242/242 width=4)
-                predicate:key is not null
-                TableScan [TS_3] (rows=242/242 width=91)
-                  default@tab2_n3,s2,Tbl:COMPLETE,Col:COMPLETE,Output:["value","key"]
-        <-Reducer 2 [SIMPLE_EDGE] llap
-          SHUFFLE [RS_12]
-            PartitionCols:_col0
-            Merge Join Operator [MERGEJOIN_45] (rows=382/480 width=95)
-              Conds:RS_9._col1=RS_10._col0(Inner),Output:["_col0","_col1"]
-            <-Map 4 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_10]
-                PartitionCols:_col0
-                Select Operator [SEL_5] (rows=242/242 width=91)
-                  Output:["_col0"]
-                  Filter Operator [FIL_23] (rows=242/242 width=91)
-                    predicate:value is not null
-                     Please refer to the previous TableScan [TS_3]
-            <-Map 1 [SIMPLE_EDGE] llap
-              SHUFFLE [RS_9]
-                PartitionCols:_col1
-                Select Operator [SEL_2] (rows=242/242 width=95)
-                  Output:["_col0","_col1"]
-                  Filter Operator [FIL_22] (rows=242/242 width=95)
-                    predicate:(key is not null and value is not null)
-                    TableScan [TS_0] (rows=242/242 width=95)
-                      default@tab_n6,s1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+              Filter Operator [FIL_24] (rows=242/242 width=91)
+                predicate:value is not null
+                TableScan [TS_6] (rows=242/242 width=91)
+                  default@tab2_n3,s2,Tbl:COMPLETE,Col:COMPLETE,Output:["value"]
 
 PREHOOK: query: select count(*) from (select s1.key as key, s1.value as value from tab_n6 s1 join tab_n6 s3 on s1.key=s3.key
 UNION  ALL
@@ -901,7 +891,7 @@ Stage-0
           Output:["_col0"],aggregations:["count()"]
         <-Reducer 3 [CUSTOM_SIMPLE_EDGE] llap
           PARTITION_ONLY_SHUFFLE [RS_22]
-            Merge Join Operator [MERGEJOIN_60] (rows=1061/1646 width=8)
+            Merge Join Operator [MERGEJOIN_60] (rows=1029/1646 width=8)
               Conds:Union 2._col0=RS_19._col0(Inner)
             <-Map 7 [SIMPLE_EDGE] llap
               SHUFFLE [RS_19]
@@ -916,7 +906,7 @@ Stage-0
               <-Map 1 [CONTAINS] llap
                 Reduce Output Operator [RS_70]
                   PartitionCols:_col0
-                  Merge Join Operator [MERGEJOIN_67] (rows=401/480 width=4)
+                  Merge Join Operator [MERGEJOIN_67] (rows=382/480 width=4)
                     Conds:SEL_65._col0=DUMMY_STORE_59._col0(Inner),Output:["_col0"]
                   <-Dummy Store [DUMMY_STORE_59]
                       Select Operator [SEL_5] (rows=242/242 width=4)
@@ -986,24 +976,23 @@ POSTHOOK: Input: default@tab_part_n7@ds=2008-04-08
 Plan optimized by CBO.
 
 Vertex dependency in root stage
-Map 8 <- Union 4 (CONTAINS)
-Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE)
-Reducer 3 <- Map 1 (SIMPLE_EDGE), Reducer 2 (SIMPLE_EDGE), Union 4 (CONTAINS)
-Reducer 5 <- Map 9 (SIMPLE_EDGE), Union 4 (SIMPLE_EDGE)
-Reducer 6 <- Reducer 5 (CUSTOM_SIMPLE_EDGE)
+Map 8 <- Union 3 (CONTAINS)
+Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 7 (SIMPLE_EDGE), Union 3 (CONTAINS)
+Reducer 4 <- Map 9 (SIMPLE_EDGE), Union 3 (SIMPLE_EDGE)
+Reducer 5 <- Reducer 4 (CUSTOM_SIMPLE_EDGE)
 
 Stage-0
   Fetch Operator
     limit:-1
     Stage-1
-      Reducer 6 llap
+      Reducer 5 llap
       File Output Operator [FS_31]
         Group By Operator [GBY_29] (rows=1/1 width=8)
           Output:["_col0"],aggregations:["count()"]
-        <-Reducer 5 [CUSTOM_SIMPLE_EDGE] llap
+        <-Reducer 4 [CUSTOM_SIMPLE_EDGE] llap
           PARTITION_ONLY_SHUFFLE [RS_28]
-            Merge Join Operator [MERGEJOIN_81] (rows=1443/3768 width=8)
-              Conds:Union 4._col0=RS_25._col0(Inner)
+            Merge Join Operator [MERGEJOIN_82] (rows=1396/3768 width=8)
+              Conds:Union 3._col0=RS_25._col0(Inner)
             <-Map 9 [SIMPLE_EDGE] llap
               SHUFFLE [RS_25]
                 PartitionCols:_col0
@@ -1013,52 +1002,48 @@ Stage-0
                     predicate:key is not null
                     TableScan [TS_21] (rows=500/500 width=4)
                       default@tab_part_n7,b_n10,Tbl:COMPLETE,Col:COMPLETE,Output:["key"]
-            <-Union 4 [SIMPLE_EDGE]
+            <-Union 3 [SIMPLE_EDGE]
               <-Map 8 [CONTAINS] llap
-                Reduce Output Operator [RS_89]
+                Reduce Output Operator [RS_90]
                   PartitionCols:_col0
-                  Select Operator [SEL_87] (rows=242/242 width=4)
+                  Select Operator [SEL_88] (rows=242/242 width=4)
                     Output:["_col0"]
-                    Filter Operator [FIL_86] (rows=242/242 width=4)
+                    Filter Operator [FIL_87] (rows=242/242 width=4)
                       predicate:key is not null
-                      TableScan [TS_85] (rows=242/242 width=4)
+                      TableScan [TS_86] (rows=242/242 width=4)
                         default@tab_n6,s2,Tbl:COMPLETE,Col:COMPLETE,Output:["key"]
-              <-Reducer 3 [CONTAINS] llap
-                Reduce Output Operator [RS_84]
+              <-Reducer 2 [CONTAINS] llap
+                Reduce Output Operator [RS_85]
                   PartitionCols:_col0
-                  Merge Join Operator [MERGEJOIN_82] (rows=633/1166 width=4)
-                    Conds:RS_12._col0=RS_13._col0(Inner),Output:["_col0"]
+                  Merge Join Operator [MERGEJOIN_83] (rows=604/1166 width=4)
+                    Conds:RS_12._col1=RS_13._col0(Inner),Output:["_col0"]
                   <-Map 1 [SIMPLE_EDGE] llap
+                    SHUFFLE [RS_12]
+                      PartitionCols:_col1
+                      Merge Join Operator [MERGEJOIN_79] (rows=382/480 width=95)
+                        Conds:SEL_2._col0=DUMMY_STORE_80._col0(Inner),Output:["_col0","_col1"]
+                      <-Dummy Store [DUMMY_STORE_80]
+                          Select Operator [SEL_5] (rows=242/242 width=4)
+                            Output:["_col0"]
+                            Filter Operator [FIL_43] (rows=242/242 width=4)
+                              predicate:key is not null
+                              TableScan [TS_3] (rows=242/242 width=4)
+                                default@tab_n6,s3,Tbl:COMPLETE,Col:COMPLETE,Output:["key"]
+                      <-Select Operator [SEL_2] (rows=242/242 width=95)
+                          Output:["_col0","_col1"]
+                          Filter Operator [FIL_42] (rows=242/242 width=95)
+                            predicate:(key is not null and value is not null)
+                            TableScan [TS_0] (rows=242/242 width=95)
+                              default@tab_n6,s1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
+                  <-Map 7 [SIMPLE_EDGE] llap
                     SHUFFLE [RS_13]
                       PartitionCols:_col0
-                      Select Operator [SEL_8] (rows=242/242 width=4)
+                      Select Operator [SEL_8] (rows=242/242 width=91)
                         Output:["_col0"]
-                        Filter Operator [FIL_44] (rows=242/242 width=4)
-                          predicate:key is not null
-                          TableScan [TS_0] (rows=242/242 width=95)
-                            default@tab_n6,s1,Tbl:COMPLETE,Col:COMPLETE,Output:["key","value"]
-                  <-Reducer 2 [SIMPLE_EDGE] llap
-                    SHUFFLE [RS_12]
-                      PartitionCols:_col0
-                      Merge Join Operator [MERGEJOIN_79] (rows=382/480 width=4)
-                        Conds:RS_9._col1=RS_10._col0(Inner),Output:["_col0"]
-                      <-Map 1 [SIMPLE_EDGE] llap
-                        SHUFFLE [RS_9]
-                          PartitionCols:_col1
-                          Select Operator [SEL_2] (rows=242/242 width=95)
-                            Output:["_col0","_col1"]
-                            Filter Operator [FIL_42] (rows=242/242 width=95)
-                              predicate:(key is not null and value is not null)
-                               Please refer to the previous TableScan [TS_0]
-                      <-Map 7 [SIMPLE_EDGE] llap
-                        SHUFFLE [RS_10]
-                          PartitionCols:_col0
-                          Select Operator [SEL_5] (rows=242/242 width=91)
-                            Output:["_col0"]
-                            Filter Operator [FIL_43] (rows=242/242 width=91)
-                              predicate:value is not null
-                              TableScan [TS_3] (rows=242/242 width=91)
-                                default@tab_n6,s2,Tbl:COMPLETE,Col:COMPLETE,Output:["value"]
+                        Filter Operator [FIL_44] (rows=242/242 width=91)
+                          predicate:value is not null
+                          TableScan [TS_6] (rows=242/242 width=91)
+                            default@tab_n6,s2,Tbl:COMPLETE,Col:COMPLETE,Output:["value"]
 
 PREHOOK: query: CREATE TABLE a_n14(key STRING, value STRING) STORED AS TEXTFILE
 PREHOOK: type: CREATETABLE
diff --git a/ql/src/test/results/clientpositive/llap/groupby_join_pushdown.q.out b/ql/src/test/results/clientpositive/llap/groupby_join_pushdown.q.out
index a67ac4a..1c3f482 100644
--- a/ql/src/test/results/clientpositive/llap/groupby_join_pushdown.q.out
+++ b/ql/src/test/results/clientpositive/llap/groupby_join_pushdown.q.out
@@ -569,7 +569,7 @@ STAGE PLANS:
                 Group By Operator
                   aggregations: sum(_col2)
                   keys: _col0 (type: tinyint), _col3 (type: tinyint)
-                  minReductionHashAggr: 0.8912586
+                  minReductionHashAggr: 0.89495826
                   mode: hash
                   outputColumnNames: _col0, _col1, _col2
                   Statistics: Num rows: 6892 Data size: 100984 Basic stats: COMPLETE Column stats: COMPLETE
@@ -769,16 +769,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: min(_col0)
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 920 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 900 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 920 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 900 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: tinyint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -797,16 +797,16 @@ STAGE PLANS:
                       Statistics: Num rows: 9173 Data size: 27396 Basic stats: COMPLETE Column stats: COMPLETE
                       Group By Operator
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0
-                        Statistics: Num rows: 131 Data size: 396 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 388 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 396 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 388 Basic stats: COMPLETE Column stats: COMPLETE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
         Reducer 2 
@@ -815,7 +815,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0
-                Statistics: Num rows: 131 Data size: 396 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 388 Basic stats: COMPLETE Column stats: COMPLETE
                 Dummy Store
             Execution mode: llap
             Reduce Operator Tree:
@@ -824,7 +824,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 920 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 900 Basic stats: COMPLETE Column stats: COMPLETE
                 Merge Join Operator
                   condition map:
                        Inner Join 0 to 1
@@ -832,14 +832,14 @@ STAGE PLANS:
                     0 _col0 (type: tinyint)
                     1 _col0 (type: tinyint)
                   outputColumnNames: _col0, _col1, _col2
-                  Statistics: Num rows: 132 Data size: 1328 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 129 Data size: 1300 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: _col0 (type: tinyint), _col2 (type: tinyint), _col1 (type: tinyint)
                     outputColumnNames: _col0, _col1, _col2
-                    Statistics: Num rows: 132 Data size: 1328 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 129 Data size: 1300 Basic stats: COMPLETE Column stats: COMPLETE
                     File Output Operator
                       compressed: false
-                      Statistics: Num rows: 132 Data size: 1328 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 129 Data size: 1300 Basic stats: COMPLETE Column stats: COMPLETE
                       table:
                           input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                           output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -893,16 +893,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: min(_col1)
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 920 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 900 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 920 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 900 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: int)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -921,16 +921,16 @@ STAGE PLANS:
                       Statistics: Num rows: 9173 Data size: 27396 Basic stats: COMPLETE Column stats: COMPLETE
                       Group By Operator
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0
-                        Statistics: Num rows: 131 Data size: 396 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 388 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 396 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 388 Basic stats: COMPLETE Column stats: COMPLETE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
         Reducer 2 
@@ -939,7 +939,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0
-                Statistics: Num rows: 131 Data size: 396 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 388 Basic stats: COMPLETE Column stats: COMPLETE
                 Dummy Store
             Execution mode: llap
             Reduce Operator Tree:
@@ -948,7 +948,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 920 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 900 Basic stats: COMPLETE Column stats: COMPLETE
                 Merge Join Operator
                   condition map:
                        Inner Join 0 to 1
@@ -956,14 +956,14 @@ STAGE PLANS:
                     0 _col0 (type: tinyint)
                     1 _col0 (type: tinyint)
                   outputColumnNames: _col1
-                  Statistics: Num rows: 132 Data size: 528 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 129 Data size: 516 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: _col1 (type: int)
                     outputColumnNames: _col0
-                    Statistics: Num rows: 132 Data size: 528 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 129 Data size: 516 Basic stats: COMPLETE Column stats: COMPLETE
                     File Output Operator
                       compressed: false
-                      Statistics: Num rows: 132 Data size: 528 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 129 Data size: 516 Basic stats: COMPLETE Column stats: COMPLETE
                       table:
                           input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                           output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -1017,16 +1017,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: count(_col0)
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -1046,16 +1046,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: count()
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -1066,7 +1066,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                 Dummy Store
             Execution mode: llap
             Reduce Operator Tree:
@@ -1075,7 +1075,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                 Merge Join Operator
                   condition map:
                        Inner Join 0 to 1
@@ -1083,14 +1083,14 @@ STAGE PLANS:
                     0 _col0 (type: tinyint)
                     1 _col0 (type: tinyint)
                   outputColumnNames: _col1, _col3
-                  Statistics: Num rows: 132 Data size: 2112 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 129 Data size: 2064 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: (_col1 * _col3) (type: bigint)
                     outputColumnNames: _col0
-                    Statistics: Num rows: 132 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 129 Data size: 1032 Basic stats: COMPLETE Column stats: COMPLETE
                     File Output Operator
                       compressed: false
-                      Statistics: Num rows: 132 Data size: 1056 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 129 Data size: 1032 Basic stats: COMPLETE Column stats: COMPLETE
                       table:
                           input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                           output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -1144,16 +1144,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: count(_col1)
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -1173,16 +1173,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: count()
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -1193,7 +1193,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                 Dummy Store
             Execution mode: llap
             Reduce Operator Tree:
@@ -1202,7 +1202,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                 Merge Join Operator
                   condition map:
                        Inner Join 0 to 1
@@ -1210,14 +1210,14 @@ STAGE PLANS:
                     0 _col0 (type: tinyint)
                     1 _col0 (type: tinyint)
                   outputColumnNames: _col0, _col1, _col3
-                  Statistics: Num rows: 132 Data size: 2512 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 129 Data size: 2456 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: (_col1 * _col3) (type: bigint), _col0 (type: tinyint)
                     outputColumnNames: _col0, _col1
-                    Statistics: Num rows: 132 Data size: 1456 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 129 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE
                     File Output Operator
                       compressed: false
-                      Statistics: Num rows: 132 Data size: 1456 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 129 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE
                       table:
                           input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                           output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -1271,16 +1271,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: sum(_col1)
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -1300,16 +1300,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: count()
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.98571897
+                        minReductionHashAggr: 0.986046
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -1320,7 +1320,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                 Dummy Store
             Execution mode: llap
             Reduce Operator Tree:
@@ -1329,7 +1329,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                 Merge Join Operator
                   condition map:
                        Inner Join 0 to 1
@@ -1337,14 +1337,14 @@ STAGE PLANS:
                     0 _col0 (type: tinyint)
                     1 _col0 (type: tinyint)
                   outputColumnNames: _col0, _col1, _col3
-                  Statistics: Num rows: 132 Data size: 2512 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 129 Data size: 2456 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: (_col1 * _col3) (type: bigint), _col0 (type: tinyint)
                     outputColumnNames: _col0, _col1
-                    Statistics: Num rows: 132 Data size: 1456 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 129 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE
                     File Output Operator
                       compressed: false
-                      Statistics: Num rows: 132 Data size: 1456 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 129 Data size: 1424 Basic stats: COMPLETE Column stats: COMPLETE
                       table:
                           input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                           output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -1458,20 +1458,20 @@ STAGE PLANS:
                   0 _col0 (type: tinyint)
                   1 _col0 (type: tinyint)
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 1161499 Data size: 9267080 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 1188936 Data size: 9486576 Basic stats: COMPLETE Column stats: COMPLETE
                 Group By Operator
                   aggregations: sum(_col1)
                   keys: _col0 (type: tinyint)
                   minReductionHashAggr: 0.99
                   mode: hash
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1572 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1536 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
                     key expressions: _col0 (type: tinyint)
                     null sort order: z
                     sort order: +
                     Map-reduce partition columns: _col0 (type: tinyint)
-                    Statistics: Num rows: 131 Data size: 1572 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 1536 Basic stats: COMPLETE Column stats: COMPLETE
                     value expressions: _col1 (type: bigint)
         Reducer 3 
             Execution mode: vectorized, llap
@@ -1481,14 +1481,14 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 130 Data size: 1560 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 127 Data size: 1524 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col1 (type: bigint), _col0 (type: tinyint)
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 130 Data size: 1560 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 127 Data size: 1524 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
-                    Statistics: Num rows: 130 Data size: 1560 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 127 Data size: 1524 Basic stats: COMPLETE Column stats: COMPLETE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -1596,20 +1596,20 @@ STAGE PLANS:
                   0 _col0 (type: tinyint)
                   1 _col0 (type: tinyint)
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 647260 Data size: 7739232 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 662550 Data size: 7922712 Basic stats: COMPLETE Column stats: COMPLETE
                 Group By Operator
                   aggregations: sum(_col1)
                   keys: _col0 (type: tinyint), _col2 (type: tinyint)
                   minReductionHashAggr: 0.99
                   mode: hash
                   outputColumnNames: _col0, _col1, _col2
-                  Statistics: Num rows: 17161 Data size: 274088 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 16384 Data size: 261696 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
                     key expressions: _col0 (type: tinyint), _col1 (type: tinyint)
                     null sort order: zz
                     sort order: ++
                     Map-reduce partition columns: _col0 (type: tinyint), _col1 (type: tinyint)
-                    Statistics: Num rows: 17161 Data size: 274088 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 16384 Data size: 261696 Basic stats: COMPLETE Column stats: COMPLETE
                     value expressions: _col2 (type: bigint)
         Reducer 3 
             Execution mode: vectorized, llap
@@ -1619,14 +1619,14 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint), KEY._col1 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 17161 Data size: 274088 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 16384 Data size: 261696 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col2 (type: bigint), _col0 (type: tinyint)
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 17161 Data size: 205688 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 16384 Data size: 196384 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
-                    Statistics: Num rows: 17161 Data size: 205688 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 16384 Data size: 196384 Basic stats: COMPLETE Column stats: COMPLETE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
diff --git a/ql/src/test/results/clientpositive/llap/limit_pushdown.q.out b/ql/src/test/results/clientpositive/llap/limit_pushdown.q.out
index 7ce1a04..fc2a530 100644
--- a/ql/src/test/results/clientpositive/llap/limit_pushdown.q.out
+++ b/ql/src/test/results/clientpositive/llap/limit_pushdown.q.out
@@ -584,7 +584,7 @@ STAGE PLANS:
                   keys: _col0 (type: tinyint)
                   mode: complete
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: _col0 (type: tinyint), _col1 (type: bigint)
                     outputColumnNames: _col0, _col1
@@ -697,7 +697,7 @@ STAGE PLANS:
                   keys: _col0 (type: tinyint)
                   mode: complete
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: _col0 (type: tinyint), _col1 (type: bigint)
                     outputColumnNames: _col0, _col1
@@ -815,7 +815,7 @@ STAGE PLANS:
                     keys: _col2 (type: tinyint)
                     mode: complete
                     outputColumnNames: _col0, _col1, _col2
-                    Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                     Select Operator
                       expressions: _col0 (type: tinyint), _col1 (type: bigint), _col2 (type: bigint)
                       outputColumnNames: _col0, _col1, _col2
diff --git a/ql/src/test/results/clientpositive/llap/limit_pushdown3.q.out b/ql/src/test/results/clientpositive/llap/limit_pushdown3.q.out
index e06de87..5938fd8 100644
--- a/ql/src/test/results/clientpositive/llap/limit_pushdown3.q.out
+++ b/ql/src/test/results/clientpositive/llap/limit_pushdown3.q.out
@@ -620,12 +620,12 @@ STAGE PLANS:
                   keys: _col0 (type: tinyint)
                   mode: complete
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
                     key expressions: _col0 (type: tinyint)
                     null sort order: z
                     sort order: +
-                    Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                     value expressions: _col1 (type: bigint)
         Reducer 3 
             Execution mode: vectorized, llap
@@ -633,7 +633,7 @@ STAGE PLANS:
               Select Operator
                 expressions: KEY.reducesinkkey0 (type: tinyint), VALUE._col0 (type: bigint)
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                 Limit
                   Number of rows: 20
                   Statistics: Num rows: 20 Data size: 204 Basic stats: COMPLETE Column stats: COMPLETE
@@ -744,12 +744,12 @@ STAGE PLANS:
                   keys: _col0 (type: tinyint)
                   mode: complete
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                   Reduce Output Operator
                     key expressions: _col0 (type: tinyint)
                     null sort order: z
                     sort order: +
-                    Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                     value expressions: _col1 (type: bigint)
         Reducer 3 
             Execution mode: vectorized, llap
@@ -757,7 +757,7 @@ STAGE PLANS:
               Select Operator
                 expressions: KEY.reducesinkkey0 (type: tinyint), VALUE._col0 (type: bigint)
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                 Limit
                   Number of rows: 20
                   Statistics: Num rows: 20 Data size: 204 Basic stats: COMPLETE Column stats: COMPLETE
@@ -873,12 +873,12 @@ STAGE PLANS:
                     keys: _col2 (type: tinyint)
                     mode: complete
                     outputColumnNames: _col0, _col1, _col2
-                    Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                     Reduce Output Operator
                       key expressions: _col0 (type: tinyint)
                       null sort order: z
                       sort order: +
-                      Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                       value expressions: _col1 (type: bigint), _col2 (type: bigint)
         Reducer 3 
             Execution mode: vectorized, llap
@@ -886,7 +886,7 @@ STAGE PLANS:
               Select Operator
                 expressions: KEY.reducesinkkey0 (type: tinyint), VALUE._col0 (type: bigint), VALUE._col1 (type: bigint)
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                 Limit
                   Number of rows: 20
                   Statistics: Num rows: 20 Data size: 364 Basic stats: COMPLETE Column stats: COMPLETE
diff --git a/ql/src/test/results/clientpositive/llap/mapjoin_decimal.q.out b/ql/src/test/results/clientpositive/llap/mapjoin_decimal.q.out
index 4537607..8713f38 100644
--- a/ql/src/test/results/clientpositive/llap/mapjoin_decimal.q.out
+++ b/ql/src/test/results/clientpositive/llap/mapjoin_decimal.q.out
@@ -102,7 +102,7 @@ STAGE PLANS:
                 TableScan
                   alias: t1_n95
                   filterExpr: dec is not null (type: boolean)
-                  probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:dec, smallTablePos:1, keyRatio:0.09532888465204957
+                  probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_27_container, bigKeyColName:dec, smallTablePos:1, keyRatio:0.09628217349857007
                   Statistics: Num rows: 1049 Data size: 117488 Basic stats: COMPLETE Column stats: COMPLETE
                   Filter Operator
                     predicate: dec is not null (type: boolean)
diff --git a/ql/src/test/results/clientpositive/llap/offset_limit_ppd_optimizer.q.out b/ql/src/test/results/clientpositive/llap/offset_limit_ppd_optimizer.q.out
index d48ef82..1646f82 100644
--- a/ql/src/test/results/clientpositive/llap/offset_limit_ppd_optimizer.q.out
+++ b/ql/src/test/results/clientpositive/llap/offset_limit_ppd_optimizer.q.out
@@ -589,7 +589,7 @@ STAGE PLANS:
                   keys: _col0 (type: tinyint)
                   mode: complete
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: _col0 (type: tinyint), _col1 (type: bigint)
                     outputColumnNames: _col0, _col1
@@ -703,7 +703,7 @@ STAGE PLANS:
                   keys: _col0 (type: tinyint)
                   mode: complete
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: _col0 (type: tinyint), _col1 (type: bigint)
                     outputColumnNames: _col0, _col1
@@ -822,7 +822,7 @@ STAGE PLANS:
                     keys: _col2 (type: tinyint)
                     mode: complete
                     outputColumnNames: _col0, _col1, _col2
-                    Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                     Select Operator
                       expressions: _col0 (type: tinyint), _col1 (type: bigint), _col2 (type: bigint)
                       outputColumnNames: _col0, _col1, _col2
diff --git a/ql/src/test/results/clientpositive/llap/parquet_vectorization_limit.q.out b/ql/src/test/results/clientpositive/llap/parquet_vectorization_limit.q.out
index 4738c6e..83d662f 100644
--- a/ql/src/test/results/clientpositive/llap/parquet_vectorization_limit.q.out
+++ b/ql/src/test/results/clientpositive/llap/parquet_vectorization_limit.q.out
@@ -314,10 +314,10 @@ STAGE PLANS:
                             vectorProcessingMode: HASH
                             projectedOutputColumnNums: [0, 1]
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.9893392
+                        minReductionHashAggr: 0.9895833
                         mode: hash
                         outputColumnNames: _col0, _col1, _col2
-                        Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
@@ -327,7 +327,7 @@ STAGE PLANS:
                               className: VectorReduceSinkObjectHashOperator
                               native: true
                               nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                          Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: double), _col2 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs (cache only)
@@ -362,7 +362,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col0 (type: tinyint), (_col1 / _col2) (type: double)
                   outputColumnNames: _col0, _col1
@@ -371,7 +371,7 @@ STAGE PLANS:
                       native: true
                       projectedOutputColumnNums: [0, 3]
                       selectExpressions: DoubleColDivideLongColumn(col 1:double, col 2:bigint) -> 3:double
-                  Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                   Limit
                     Number of rows: 20
                     Limit Vectorization:
@@ -483,10 +483,10 @@ STAGE PLANS:
                             vectorProcessingMode: HASH
                             projectedOutputColumnNums: []
                         keys: ctinyint (type: tinyint)
-                        minReductionHashAggr: 0.9893392
+                        minReductionHashAggr: 0.9895833
                         mode: hash
                         outputColumnNames: _col0
-                        Statistics: Num rows: 131 Data size: 264 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 256 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
@@ -496,7 +496,7 @@ STAGE PLANS:
                               className: VectorReduceSinkObjectHashOperator
                               native: true
                               nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                          Statistics: Num rows: 131 Data size: 264 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 256 Basic stats: COMPLETE Column stats: COMPLETE
             Execution mode: vectorized, llap
             LLAP IO: all inputs (cache only)
             Map Vectorization:
@@ -528,7 +528,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0
-                Statistics: Num rows: 131 Data size: 264 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 256 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col0 (type: tinyint)
                   outputColumnNames: _col0
@@ -706,7 +706,7 @@ STAGE PLANS:
                   keys: _col0 (type: tinyint)
                   mode: complete
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                   Select Operator
                     expressions: _col0 (type: tinyint), _col1 (type: bigint)
                     outputColumnNames: _col0, _col1
diff --git a/ql/src/test/results/clientpositive/llap/partition_explain_ddl.q.out b/ql/src/test/results/clientpositive/llap/partition_explain_ddl.q.out
index 71de63e..83e97eb 100644
--- a/ql/src/test/results/clientpositive/llap/partition_explain_ddl.q.out
+++ b/ql/src/test/results/clientpositive/llap/partition_explain_ddl.q.out
@@ -146,9 +146,9 @@ ALTER TABLE default.add_part_test UPDATE STATISTICS SET('numRows'='0','rawDataSi
 ALTER TABLE default.add_part_test ADD IF NOT EXISTS PARTITION (ds='2010-01-01');
 ALTER TABLE default.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS SET('numRows'='19','rawDataSize'='267' );
 ALTER TABLE default.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN key SET('avgColLen'='5.526315789473684','maxColLen'='6','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZXdNICf8TvAo4ELgLO2SMXF/BS72uELgOLCnwGAj9Y4wJOCQMKT9CX+vqIBw+fKPr3LlKsBwIHHF8DX2CmF7e4T/JG0AYKY6Bb+o9oQ 
+-- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTga///AODuuFlwpGjgAL7r+CB+/////8BgPGY2AGB8bqnA8TDyvT6/////wG75PK0BMDg56b6/////wGAn/E7wM3HswOA1rnX/P////8BguujpwOB4qzYAv6j2hD/wYu4+v////8BgIKhwAGAge7KA8Cop9b//////wE= 
 ALTER TABLE default.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN value SET('avgColLen'='7.526315789473684','maxColLen'='8','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZnEIYCNq4gBgKCIGoD61AHBjs4N/7WjogGBquoE/9ScS4HyxCf/keJOxMnVP4GwwUn7+oEgwNzHBsCeqgOAmb1QguH/Cb7p83LA3Z9B 
+-- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTwq6o+gLE0trKAvuXwdz6/////wGAp4ikAcCYgKYEgKv42f3/////AcLt7oMD/orRm///////AcDeotcBwOvPh/r/////AYDyz7kGwM+kvvz/////AYD90bn+/////wGBytzd/v////8Bv9fU1v//////AYDRh8UEwf6S/v3/////Ab+aqtIChMGNvP7/////AQ== 
 
 
 
@@ -271,13 +271,13 @@ ALTER TABLE default.add_part_test PARTITION (ds='2010-01-02') UPDATE STATISTICS
 ALTER TABLE default.add_part_test ADD IF NOT EXISTS PARTITION (ds='2010-01-03');
 ALTER TABLE default.add_part_test PARTITION (ds='2010-01-03') UPDATE STATISTICS SET('numRows'='15','rawDataSize'='225' );
 ALTER TABLE default.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN value SET('avgColLen'='7.526315789473684','maxColLen'='8','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZnEIYCNq4gBgKCIGoD61AHBjs4N/7WjogGBquoE/9ScS4HyxCf/keJOxMnVP4GwwUn7+oEgwNzHBsCeqgOAmb1QguH/Cb7p83LA3Z9B 
+-- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTwq6o+gLE0trKAvuXwdz6/////wGAp4ikAcCYgKYEgKv42f3/////AcLt7oMD/orRm///////AcDeotcBwOvPh/r/////AYDyz7kGwM+kvvz/////AYD90bn+/////wGBytzd/v////8Bv9fU1v//////AYDRh8UEwf6S/v3/////Ab+aqtIChMGNvP7/////AQ== 
 ALTER TABLE default.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN key SET('avgColLen'='5.526315789473684','maxColLen'='6','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZXdNICf8TvAo4ELgLO2SMXF/BS72uELgOLCnwGAj9Y4wJOCQMKT9CX+vqIBw+fKPr3LlKsBwIHHF8DX2CmF7e4T/JG0AYKY6Bb+o9oQ 
+-- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTga///AODuuFlwpGjgAL7r+CB+/////8BgPGY2AGB8bqnA8TDyvT6/////wG75PK0BMDg56b6/////wGAn/E7wM3HswOA1rnX/P////8BguujpwOB4qzYAv6j2hD/wYu4+v////8BgIKhwAGAge7KA8Cop9b//////wE= 
 ALTER TABLE default.add_part_test PARTITION (ds='2010-01-03') UPDATE STATISTICS FOR COLUMN value SET('avgColLen'='8.0','maxColLen'='8','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-03' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PxruDCfvd++EBgJbAswHAj9hcgOSPEcGP0Tf/ouVYhPfkDfzUm17AgIcTgOP5KIGsqm3Am/Ii/6epDYDf+AQ= 
+-- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-03' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PgaOnjASAnPDu//////8BwfPgSP+i5ViAxKHO/P////8BgIjfnQTA44A8gJ2G1///////AcSq3Y7//////wH84vzz/f////8BhYzE6vz/////AfyQ+MsH/4aiEoChh/v//////wHBvOTP//////8B 
 ALTER TABLE default.add_part_test PARTITION (ds='2010-01-03') UPDATE STATISTICS FOR COLUMN key SET('avgColLen'='6.0','maxColLen'='6','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-03' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8Pwoy4S4DjsC2Cy/cxvYTEDsGjtQqBy7Yi/8DaQb+/pBPAjbjoAYHXgA2/h9yDAcKsjyi+usGNAcHK9T/CzrU/ 
+-- BIT VECTORS PRESENT FOR default.add_part_test PARTITION ds='2010-01-03' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PxLrgqgHA37++Bv2T79H6/////wGAkZX+/v////8BwYzG8AWApP7O+f////8BgdfK4wT/m6bn+/////8B/9jt3wKC8sjC/f////8BvuyTzgPB1Mbz/P////8Bv5KKwgTBi8Ph+f////8BgIaQ5QM= 
 
 
 
@@ -418,9 +418,9 @@ ALTER TABLE add_part_test_db.add_part_test UPDATE STATISTICS SET('numRows'='0','
 ALTER TABLE add_part_test_db.add_part_test ADD IF NOT EXISTS PARTITION (ds='2010-01-01');
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS SET('numRows'='19','rawDataSize'='267' );
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN key SET('avgColLen'='5.526315789473684','maxColLen'='6','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZXdNICf8TvAo4ELgLO2SMXF/BS72uELgOLCnwGAj9Y4wJOCQMKT9CX+vqIBw+fKPr3LlKsBwIHHF8DX2CmF7e4T/JG0AYKY6Bb+o9oQ 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTga///AODuuFlwpGjgAL7r+CB+/////8BgPGY2AGB8bqnA8TDyvT6/////wG75PK0BMDg56b6/////wGAn/E7wM3HswOA1rnX/P////8BguujpwOB4qzYAv6j2hD/wYu4+v////8BgIKhwAGAge7KA8Cop9b//////wE= 
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN value SET('avgColLen'='7.526315789473684','maxColLen'='8','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZnEIYCNq4gBgKCIGoD61AHBjs4N/7WjogGBquoE/9ScS4HyxCf/keJOxMnVP4GwwUn7+oEgwNzHBsCeqgOAmb1QguH/Cb7p83LA3Z9B 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTwq6o+gLE0trKAvuXwdz6/////wGAp4ikAcCYgKYEgKv42f3/////AcLt7oMD/orRm///////AcDeotcBwOvPh/r/////AYDyz7kGwM+kvvz/////AYD90bn+/////wGBytzd/v////8Bv9fU1v//////AYDRh8UEwf6S/v3/////Ab+aqtIChMGNvP7/////AQ== 
 
 
 
@@ -543,13 +543,13 @@ ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-02') UPDATE ST
 ALTER TABLE add_part_test_db.add_part_test ADD IF NOT EXISTS PARTITION (ds='2010-01-03');
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-03') UPDATE STATISTICS SET('numRows'='15','rawDataSize'='225' );
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN value SET('avgColLen'='7.526315789473684','maxColLen'='8','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZnEIYCNq4gBgKCIGoD61AHBjs4N/7WjogGBquoE/9ScS4HyxCf/keJOxMnVP4GwwUn7+oEgwNzHBsCeqgOAmb1QguH/Cb7p83LA3Z9B 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTwq6o+gLE0trKAvuXwdz6/////wGAp4ikAcCYgKYEgKv42f3/////AcLt7oMD/orRm///////AcDeotcBwOvPh/r/////AYDyz7kGwM+kvvz/////AYD90bn+/////wGBytzd/v////8Bv9fU1v//////AYDRh8UEwf6S/v3/////Ab+aqtIChMGNvP7/////AQ== 
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN key SET('avgColLen'='5.526315789473684','maxColLen'='6','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZXdNICf8TvAo4ELgLO2SMXF/BS72uELgOLCnwGAj9Y4wJOCQMKT9CX+vqIBw+fKPr3LlKsBwIHHF8DX2CmF7e4T/JG0AYKY6Bb+o9oQ 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTga///AODuuFlwpGjgAL7r+CB+/////8BgPGY2AGB8bqnA8TDyvT6/////wG75PK0BMDg56b6/////wGAn/E7wM3HswOA1rnX/P////8BguujpwOB4qzYAv6j2hD/wYu4+v////8BgIKhwAGAge7KA8Cop9b//////wE= 
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-03') UPDATE STATISTICS FOR COLUMN value SET('avgColLen'='8.0','maxColLen'='8','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-03' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PxruDCfvd++EBgJbAswHAj9hcgOSPEcGP0Tf/ouVYhPfkDfzUm17AgIcTgOP5KIGsqm3Am/Ii/6epDYDf+AQ= 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-03' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PgaOnjASAnPDu//////8BwfPgSP+i5ViAxKHO/P////8BgIjfnQTA44A8gJ2G1///////AcSq3Y7//////wH84vzz/f////8BhYzE6vz/////AfyQ+MsH/4aiEoChh/v//////wHBvOTP//////8B 
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-03') UPDATE STATISTICS FOR COLUMN key SET('avgColLen'='6.0','maxColLen'='6','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-03' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8Pwoy4S4DjsC2Cy/cxvYTEDsGjtQqBy7Yi/8DaQb+/pBPAjbjoAYHXgA2/h9yDAcKsjyi+usGNAcHK9T/CzrU/ 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-03' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PxLrgqgHA37++Bv2T79H6/////wGAkZX+/v////8BwYzG8AWApP7O+f////8BgdfK4wT/m6bn+/////8B/9jt3wKC8sjC/f////8BvuyTzgPB1Mbz/P////8Bv5KKwgTBi8Ph+f////8BgIaQ5QM= 
 
 
 
@@ -645,13 +645,13 @@ ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-02') UPDATE ST
 ALTER TABLE add_part_test_db.add_part_test ADD IF NOT EXISTS PARTITION (ds='2010-01-03');
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-03') UPDATE STATISTICS SET('numRows'='15','rawDataSize'='225' );
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN value SET('avgColLen'='7.526315789473684','maxColLen'='8','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZnEIYCNq4gBgKCIGoD61AHBjs4N/7WjogGBquoE/9ScS4HyxCf/keJOxMnVP4GwwUn7+oEgwNzHBsCeqgOAmb1QguH/Cb7p83LA3Z9B 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTwq6o+gLE0trKAvuXwdz6/////wGAp4ikAcCYgKYEgKv42f3/////AcLt7oMD/orRm///////AcDeotcBwOvPh/r/////AYDyz7kGwM+kvvz/////AYD90bn+/////wGBytzd/v////8Bv9fU1v//////AYDRh8UEwf6S/v3/////Ab+aqtIChMGNvP7/////AQ== 
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-01') UPDATE STATISTICS FOR COLUMN key SET('avgColLen'='5.526315789473684','maxColLen'='6','numNulls'='0','numDVs'='19' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTgZXdNICf8TvAo4ELgLO2SMXF/BS72uELgOLCnwGAj9Y4wJOCQMKT9CX+vqIBw+fKPr3LlKsBwIHHF8DX2CmF7e4T/JG0AYKY6Bb+o9oQ 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-01' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBMTga///AODuuFlwpGjgAL7r+CB+/////8BgPGY2AGB8bqnA8TDyvT6/////wG75PK0BMDg56b6/////wGAn/E7wM3HswOA1rnX/P////8BguujpwOB4qzYAv6j2hD/wYu4+v////8BgIKhwAGAge7KA8Cop9b//////wE= 
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-03') UPDATE STATISTICS FOR COLUMN value SET('avgColLen'='8.0','maxColLen'='8','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-03' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PxruDCfvd++EBgJbAswHAj9hcgOSPEcGP0Tf/ouVYhPfkDfzUm17AgIcTgOP5KIGsqm3Am/Ii/6epDYDf+AQ= 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-03' FOR COLUMN value BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PgaOnjASAnPDu//////8BwfPgSP+i5ViAxKHO/P////8BgIjfnQTA44A8gJ2G1///////AcSq3Y7//////wH84vzz/f////8BhYzE6vz/////AfyQ+MsH/4aiEoChh/v//////wHBvOTP//////8B 
 ALTER TABLE add_part_test_db.add_part_test PARTITION (ds='2010-01-03') UPDATE STATISTICS FOR COLUMN key SET('avgColLen'='6.0','maxColLen'='6','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-03' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8Pwoy4S4DjsC2Cy/cxvYTEDsGjtQqBy7Yi/8DaQb+/pBPAjbjoAYHXgA2/h9yDAcKsjyi+usGNAcHK9T/CzrU/ 
+-- BIT VECTORS PRESENT FOR add_part_test_db.add_part_test PARTITION ds='2010-01-03' FOR COLUMN key BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PxLrgqgHA37++Bv2T79H6/////wGAkZX+/v////8BwYzG8AWApP7O+f////8BgdfK4wT/m6bn+/////8B/9jt3wKC8sjC/f////8BvuyTzgPB1Mbz/P////8Bv5KKwgTBi8Ph+f////8BgIaQ5QM= 
 
 
 
@@ -899,65 +899,65 @@ ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Tennis') UPDATE
 -- ALTER TABLE db_bdpbase.default_partition_test ADD IF NOT EXISTS PARTITION (sports='__HIVE_DEFAULT_PARTITION__');
 -- ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='__HIVE_DEFAULT_PARTITION__') UPDATE STATISTICS SET('numRows'='6','rawDataSize'='247' );
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Tennis') UPDATE STATISTICS FOR COLUMN lastname SET('avgColLen'='6.625','maxColLen'='10','numNulls'='0','numDVs'='16' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQwqCZNL+hzCfCq8sS//G4Z//Igh+Av5g6g5jedr2g+gbE5OIS/ZXolwHB4+gmgdGQUb3CjB6Cx8R2/vCZUcaC9hQ= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQw9jy4wbApZ6a/v////8B/sPU3fv/////AcCHp9kGgN/fv/r/////AYLFxPn+/////wGBkrK3Av2Ry8cCgc676Pv/////Ab/A89YBxOTiEvzixO/+/////wHD55ygA77R9+T6/////wHFq+mVB7vOpY39/////wE= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Tennis') UPDATE STATISTICS FOR COLUMN id SET('lowValue'='1007','highValue'='1086','numNulls'='0','numDVs'='16' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQgsirL7/48YUBwInYJYLsnAq+rqJAwuW8X77azDPAtbA6wI+oAsSgqUz8v41KwIuXPIGM9zK/tfErgbSuJv/R0gg= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQgsirL7+NuZgFgJSyrf7/////AcDw1/3//////wGAw9/iAoGurff//////wH//tG+/v////8BhMDytf//////Abya/vb+/////wHCpbPM//////8B/v+D1v7/////AcD2p9r//////wGApJdwwLKYgQTByo7U//////8BwdS26vv/////AQ== 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Tennis') UPDATE STATISTICS FOR COLUMN firstname SET('avgColLen'='5.875','maxColLen'='10','numNulls'='0','numDVs'='16' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQgs6IDMDD0h/Avf/gAYHX+Bz+5Kk6w7ikD/2kzCGBw4ol/8ulC4LylJoBvpSVecDR9AXAj+MDhpLjD/rmkgKBx/W+AQ== 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQgp+Lswf/6/Gw+/////8BgM2YkAPB0+LF/f////8B/8ulC8DngZ0CgJ+o9v//////AcDR9AWBwp7N+v////8BwZT4/QH/qIfj//////8BgP+t//3/////Ab+a5YgDxoiV3QK8+K/t/v////8Bgdruk/7/////AQ== 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Tennis') UPDATE STATISTICS FOR COLUMN country SET('avgColLen'='9.5625','maxColLen'='27','numNulls'='0','numDVs'='16' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQgZe0VsP97SW+mrkRxManffz0xjvAi6/iAb/L3gaA9d4BgKrvFcPQvQH9lawjwMHuIYLolCr+3eM+wMr+kwHBp+Ri 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQweClxwTAto6P/P////8Bg5qv8gO9nZOuAYWnjJT8/////wH7y9SkAoD13gGBtJOV/v////8BgqrYtf7/////Af3z25EEgbjb3wK/2Jud//////8BgZbmgvr/////Af+XtN4Dga/pvP//////AcH6mY8B 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Tennis') UPDATE STATISTICS FOR COLUMN city SET('avgColLen'='9.5625','maxColLen'='18','numNulls'='0','numDVs'='16' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQweyPIYCenSjA+bAFwJzvJICSgjyB2vovv+e98gHBg6FVv4+kJsC21wuAtsEYgITSacL2+CL/gYsyv6zyA4C7hoUB 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Tennis' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBAQgfSH0gPAg7CJAoCl9ljC0YLK//////8B/picz/7/////AcDlwtP7/////wHAl84twIbP+v//////AYCoomaApeWJBoG1lab6/////wH/sNr5AoDjqJr8/////wHBz+68BcCH7fb9/////wH/+7xK 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Basketball') UPDATE STATISTICS FOR COLUMN lastname SET('avgColLen'='6.2','maxColLen'='8','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PwtzJS4HWiIcBvubhfcG5hga/gIwlg5ObZsHx3x+8x6s9wOOwfMGM2jq/pMwLgN+XIcDKw1uAmZYhwN6AEQ== 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PgZ/tvgSA18jgAoGZwtb+/////wH/zaeIAcDWpIP//////wGC/43R+/////8B/5/ogwGDhYerAfz89K4DgL6l8v7/////AYDwwZj//////wHAlpaV/f////8BgLqSK8GJg9D9/////wHCiZiWAw== 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Basketball') UPDATE STATISTICS FOR COLUMN id SET('lowValue'='1001','highValue'='1097','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PgdqlYcDMpyaAzclyhImqVPydRcDlhnaB4u0Zv/vMLIC25x2GqtMQvsDAWrzYkyaApdafAcKXpUfAxuFQ 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PgYCNxQOA2pic/f////8BxuPc2AP8m7G4A7+Ix+z7/////wG/xNKo/f////8BgLCJswSAxK+U/f////8BgPmo2gHE6pNr/pSPjQK+4MTY+v////8BgIiW4ASEgZT0+/////8B/OCGvQE= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Basketball') UPDATE STATISTICS FOR COLUMN firstname SET('avgColLen'='6.466666666666667','maxColLen'='9','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PwYD+FsDL+AOC+7wFvvyplwHAydEMgJnvHIGU3CeApeAWw8foVvyik4cCwI6wAoC/34cBwO+2mAHAsYgEgu/rLA== 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PgbilpAeC7+ssvtnsxfj/////AcCW6PAFwLLw9f7/////AcHwo4v9/////wH/nYz3AoGH1J/9/////wH/7Jv7/f////8BxNrM2wK85uvN/v////8BgJnvHMCdv9b//////wGAw7/oBcLAloD5/////wE= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Basketball') UPDATE STATISTICS FOR COLUMN country SET('avgColLen'='8.666666666666666','maxColLen'='16','numNulls'='0','numDVs'='14' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4OwbKHJIDWpA/AicoqgdXDIf/81IYBgPnGIoT/7Au98aUnwOqQK//QmzHEwKwWvJG0TIDT8XGAvOBg 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4OhdzCtAL8jYW5A8Ce5MX6/////wHAicoqgNKYqAGA+cYigKy/jwGB3qTH/f////8BgNG/hwLDkchH/YOnjf//////Af/knsj9/////wHA+9/oBICtjo7//////wE= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Basketball') UPDATE STATISTICS FOR COLUMN city SET('avgColLen'='9.733333333333333','maxColLen'='26','numNulls'='0','numDVs'='15' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8Pg4qShgHAnsES/vPoZ8GR/Uq/35UjgN3eiwHA/9AbgLalKMXU3Qb8xrmYAb/cmUPAiv9nwMjAVsHUtQmCz5UO 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Basketball' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA8PgZjVoAbAiv9ng+yLbv3bzYP8/////wGFitRK/MrIowP/zYSG+/////8BwvzCl/7/////Af+jp8UBv+6Ctf//////AYGf/9wDv6/ZgQLCvb65+f////8BvsGr/QKAtqUo 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Football') UPDATE STATISTICS FOR COLUMN lastname SET('avgColLen'='5.6521739130434785','maxColLen'='8','numNulls'='0','numDVs'='23' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBcXgbeNBsGzzAa/6L3KAYDEvBrAkZgDw660G/2CxwiB4qEh/+PjJMHGy23/2K0IwLLuBoCvmBHDqrYlvtmWBf/R1F3B4asm/9PccYDm5UCB0gvBl4oVv8joB//GohE= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBcXgqW6lwS/7cK2AsGpjOz7/////wGCm5fW//////8BvbT96wTA5rbf/P////8Bgoq+hwO/6qXp/P////8B/8GzqP7/////AcCqq+L//////wGA5PWu/v////8Bwa37xwa/u+SQ/P////8Bwcrsrf3/////Ab+2k+ADgNahiAHAyNff/v////8BwNftnP7/////AYDDkyfB/tKCA4DswM8Bgoeop/3/////Af3g8/oB 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Football') UPDATE STATISTICS FOR COLUMN id SET('lowValue'='1006','highValue'='1100','numNulls'='0','numDVs'='23' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBcXwaGOJcCG/geAndhQwOWwJoKHvAL+pZRUgJ2xH8P2iwn9oMwKgK7oGYC3z0iAl6UNwdOdQYL29i69zrZ5wJ+NIMHylbkBgIivKcSpmBO9wrAGv7r5DL+c8TXAzbEZ 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBcXgaCXhwXA1P+S/f////8Bg93J8wG91quf/P////8Bg8OW9gG9v/KA//////8Bhbns+AW7mZtJwM2xGcCm2JD7/////wHAzv2WAsDMyob9/////wHCpeL4/v////8Bv4iY4wW/56Sb+f////8BgLbX1QHB2tTlBP+Sqp36/////wGA9fLJAcGhkpcBgIXC0QPBxYbz//////8B/uGZ+vv/////AQ== 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Football') UPDATE STATISTICS FOR COLUMN firstname SET('avgColLen'='5.782608695652174','maxColLen'='9','numNulls'='0','numDVs'='23' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBcXwoOrLcDDvzrA+50D/5e3LoKK0Qb+55RWwI+gCYGexA2/g6MVgLChRIPl00v9/5sHwYqsEL+X0gnCvtZEvt7xI4D5icoBwO+PJoL28SWA+oIkwOT+P7635A+AwpUc 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBcXwbS80wPA08+OBMDEmZT6/////wHA7fi1BMLU84kBvs2zyfr/////AcDRiGfCgsLrA4DDgsb9/////wG+ipqK/v////8BwMjJowWC5Jyw//////8Bv5j19Pn/////AYDBosL//////wHA9t7fAb/QhPkDgJCxk/v/////AYKK0Qb+ra2ZAoOA5Pj//////wH9vuKJAcH15av8/////wGA1v/hAg== 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Football') UPDATE STATISTICS FOR COLUMN country SET('avgColLen'='10.826086956521738','maxColLen'='33','numNulls'='0','numDVs'='22' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBYWwfrFBoOK2xH/nPAQ/ui8kAGAr99HwIqwCMHyiwH/t5scgMfIP4GP/FGDhfgVvOntAYKIgxTA2t8Gwd6PL76d9zrAttBiweapRv6JlEOB+JIDwZKZGf7280Q= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBYWw66T/gX/gadGwYr4n/3/////AYG57zXAkP/9+/////8BvbWmigfB/KHo+v////8BwYzq0gS/zsX3/f////8B//i05Pz/////AcG9m/4D//vz0fz/////AcCqpx3AxKqpAcCF+PACgIGGwPv/////AYSQlM0B/fqH6v//////Af+1/M38/////wGCp8si/pO8vQKC4MSEAQ== 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Football') UPDATE STATISTICS FOR COLUMN city SET('avgColLen'='8.782608695652174','maxColLen'='20','numNulls'='0','numDVs'='23' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBcXgYTdXcGyu2v/iN4PguGcML7L4wmBi8UFgIXPVr/M2RqA9tANgbekGsGM9gf+p+8OgOf1TcDusYMBgsCKJb7Pw0zA34ATgeWSToHExzb+p8w9wOY6wdGkBMCF3Qo= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Football' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBcXw7/xvgW/vaexAoD6oqj6/////wHBqdfw//////8BvuPJ1P7/////AYCN2LgDwaXjsv3/////Af+IxJcGwbyujvv/////Af+ttFnBqYmkA7+Yrqb7/////wHAgr+LBIGHpJP9/////wH/iY3oAYDAj7/8/////wGAie6wAYD20A3Cw5oi/ozl0QKAl+LVAcHRpASBoNS9//////8B 
 -- ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='__HIVE_DEFAULT_PARTITION__') UPDATE STATISTICS FOR COLUMN lastname SET('avgColLen'='6.333333333333333','maxColLen'='8','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwq3YGf+6xOABgNDxgwHBtvulAYOcuZgB/KvM/AE= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGgbePuQfB9sjg+P////8Bw93qogW83dm9/P////8BwYbtqQK/yYTa/v////8B 
 -- ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='__HIVE_DEFAULT_PARTITION__') UPDATE STATISTICS FOR COLUMN id SET('lowValue'='1005','highValue'='1098','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwpjJWP/R3EDA+qZ5gKng4AHAzIc9wIH6KQ== 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGgeXMkgKAqeDgAYDOgWfAjve+/P////8Bga6jv///////Af/B69cD 
 -- ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='__HIVE_DEFAULT_PARTITION__') UPDATE STATISTICS FOR COLUMN firstname SET('avgColLen'='7.0','maxColLen'='9','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwe3GFoDQpwXB2quPAYCG7znBtecs/6up+gQ= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwe3GFsGq05QBv6XU8P7/////AYHCq/AGwJ7v2Pr/////AcG15yw= 
 -- ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='__HIVE_DEFAULT_PARTITION__') UPDATE STATISTICS FOR COLUMN country SET('avgColLen'='9.333333333333334','maxColLen'='15','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwYisM4HBvsACv7+qRMKE/Eu/ucfmAr/e9Qs= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwaXO9gaA4928+f////8BgoXl0AP/u9nv/v////8BwP3t9gP/wbzN/P////8B 
 -- ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='__HIVE_DEFAULT_PARTITION__') UPDATE STATISTICS FOR COLUMN city SET('avgColLen'='10.5','maxColLen'='17','numNulls'='0','numDVs'='6' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGgb7shwHA47jBAcLU7Xu+9fE7gKzqhAHBrpp+ 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='__HIVE_DEFAULT_PARTITION__' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoAYGwaGlyQKAyt+3AYCs6oQBwt6jv/7/////Af/P9r4C//fig/v/////AQ== 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Cricket') UPDATE STATISTICS FOR COLUMN lastname SET('avgColLen'='6.642857142857143','maxColLen'='10','numNulls'='0','numDVs'='14' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4OgoXoAv+tv2eBvOFvhYj5A/3fnjL97PUrgLHfJYD5+VGC9uAv/9aawwH/5cE2wdyMHoG1tsEBvtWbJQ== 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4Oh/eB3gH6kIqEBoDm49H7/////wGBzfvyAcDCzlTC2eaU/P////8B/q3H8v3/////Af+bxdoFgJL6jPv/////AYG84W//1I1igqC6pwH+kKX+/v////8Bwr362gQ= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Cricket') UPDATE STATISTICS FOR COLUMN id SET('lowValue'='1002','highValue'='1099','numNulls'='0','numDVs'='14' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4OgqC6QMDhgB6/5MkWgaCkT8Gl6hHBqJC3Af3zgdcBgOWQKcHygjGAqr9J/7b9BYCB5gaA81HAr65J 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4Owp+5vgXAgIGC+/////8B/6frowTArIixAcCvrknA3Jmv//////8BgIHmBoGA38n6/////wHAhO5lgs76yAG+9dT6Ar+cjO36/////wGAx7GYBML+3Mj8/////wE= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Cricket') UPDATE STATISTICS FOR COLUMN firstname SET('avgColLen'='5.285714285714286','maxColLen'='9','numNulls'='0','numDVs'='14' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4Og/GxPb+shzmAgJIEgezEjwGCibMXvP6rWYDq0AjAufxPgPGQDIHw+lGB28gmwumyTLziu2XAmYe4AQ== 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4OwbS80wOB6fyi/f////8B/4eU6QKB+P2a/f////8Bw7z4qQT8+8KdAsKaipb9/////wH/pLfZ//////8Bg/367/3/////Af72zOj//////wG+8a95gvbxuf3/////Ab7LzcwFwNTv8Pz/////AQ== 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Cricket') UPDATE STATISTICS FOR COLUMN country SET('avgColLen'='9.714285714285714','maxColLen'='18','numNulls'='0','numDVs'='14' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4Oge6eEYK1syL+v+RxxZLMZb/mvymC+cA1/N6NMr+Dxxa/zeUbgKag1gGBnYsTv4aNP4Db2KsBgIfwCQ== 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4OwanPogfEsvOR+/////8B/M6b8AKCibP3/f////8Bvprl2gLB+fLA//////8B/7zUlv7/////AcXwxLz+/////wG7+JuG/v////8BgPWXlAHB1KGNAv/45vkDwvKSh/n/////AYSysbYC 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Cricket') UPDATE STATISTICS FOR COLUMN city SET('avgColLen'='9.5','maxColLen'='18','numNulls'='0','numDVs'='14' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4OxNGgLP2X9QOB3uU3gPqsI//H7A2B7vRqv/idFoCrxB6A1JnuAcC/kS2Bz/PeAoC/vjm/u+0DxPKMBg== 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Cricket' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoA4Owv2KsweAxJ3Y+f////8Bv7aO5QaAo7XI+v////8BwM6p9/3/////AcCGkuoBwYfi6f//////Ab/3+6ICxPu9zwP90YX2//////8BgpXXv/j/////Af3c9qcEgZnkk/z/////Af/BmTE= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Badminton') UPDATE STATISTICS FOR COLUMN lastname SET('avgColLen'='6.269230769230769','maxColLen'='9','numNulls'='0','numDVs'='26' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBoaw7/TBb7IiwLAqpc1guT6HYH+7wT+1/gIg6DoW7zrmyXAqbZFgMO4LMLuhGa+3oQmwLWoCIL8kQXAhuE9wPf/T77a3V3A6cYGwP2mAsCRpxmA6fgigMvYBIG7lRG/1okGgOiHJsGA/YsB 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN lastname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBoaw5bxWsDKgKgE/pbs5vz/////AYDw18AEguubl/3/////AcHBj579/////wH9pu6ABYKuotL+/////wH+x+S0//////8BgMj+2QLAjorG+f////8BwJm1pwLBgbeMBL/BgaD8/////wHAuJDKA4CXh93//////wHBuPXl+v////8B//SC/wWAweCB//////8BwMTBhv7/////AYC+l/cBwI3g1fr/////AYTay4cBvtbOsAL//sj+A8Hd+ZH4/////wE= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Badminton') UPDATE STATISTICS FOR COLUMN id SET('lowValue'='1004','highValue'='1094','numNulls'='0','numDVs'='26' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBoawr/bO7+AhAiEneMx/PeySYK5/AmAnf4mwOW/Q/7Z9AvA9phvgPvRGoDSpBmA9PAPgYHVL7/QhBPAhbctgJXQFYDTmASAyqgkgL2uL4GK9Rq/mcwugLSoHMDChBWA54k2gKmhGoHCmzg= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN id BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBoahd3Cdf32590G/6SLj/3/////AYCykT7Av92e/f////8BwYfGqwP/9oKWAYD4z638/////wGBwrxzv+i89wHA0Niv/f////8BgLL2rgGAstnL+/////8BguuQrAH+1vPaBMG99/D5/////wH//4P6BcDSr2WAnKXH/P////8BgKfB3P3/////AYCTgJEEgqb8+Pv/////AcCCvmq+0O7IAoDBhvb+/////wHA0dlC 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Badminton') UPDATE STATISTICS FOR COLUMN firstname SET('avgColLen'='5.615384615384615','maxColLen'='8','numNulls'='0','numDVs'='25' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBkZwYydOMGjqzT/gJUCge/NAcDH7X2GqedV/IGibr2RqwaBs44DwrPHF/20wwGAkOg0gNLgRICg/y/A6tgJgPGmJYDLzxODvuIivbrfDIDWr07A9qYBgPrdVIDQmQmAwuEFwMLuOg== 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN firstname BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBkZyJCAxAK5lvTQBMDlqKP5/////wHAl7CAA8CbmRzA8faZ/f////8Bgf/q/f//////Ab/LlfIGgNTwqvz/////AcDcuH6Ay4aWAoDC4QXA6L+q/f////8BwPv+XoDLzxPAzvF9waDs/Pz/////AcCQvbL+/////wHAuJKC//////8Bv8CUgAXAzNZPw+WL8vz/////AYD4gCH9tourAcPksWU= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Badminton') UPDATE STATISTICS FOR COLUMN country SET('avgColLen'='10.038461538461538','maxColLen'='44','numNulls'='0','numDVs'='26' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBoahOSiAr6LiUe/p4gNgNayTcDNpQ2B6J1Iv8HkDMD3xgLAuL8/wLrZaMTj0hvAl4ACwI6CMf/Yn0m9mgSAlOY/gK2HH4DlgQzAv5UshI3VFv6v8B3B6O8nv+DxDL6vuSiB5osW/8wt 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN country BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBoahbLBzAP85PKJ/f////8BwLe62gLD4vSXAYGN3q0B/6Xhi/r/////Ab2osqUFwqq+oQH+tdPa+v////8BgPenYoCwhkKAndeXA4Sn15/+/////wH+le6UAr/epnP/7bOp+v////8BgKHJV4DwkcACg4u68wGB85+S/f////8B/JyLowOAs7kWgYmk8fr/////Af/OrLoDgO721P//////AYGQ3sD7/////wE= 
 ALTER TABLE db_bdpbase.default_partition_test PARTITION (sports='Badminton') UPDATE STATISTICS FOR COLUMN city SET('avgColLen'='7.961538461538462','maxColLen'='15','numNulls'='0','numDVs'='26' );
--- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBoagrWZAv/9s07Bs+0B//2kJsD8PIKP1SP+2PIEgfG2EoDcziH/jeLHAcD+zy2Bw8wOgLrAXL+8myOA1LEOwfzSIIK3mAO9rYMCwY+1R4PVp1CB3L4ngfaAFfqJzAHA/JA/wZrqAb/2q0E= 
+-- BIT VECTORS PRESENT FOR db_bdpbase.default_partition_test PARTITION sports='Badminton' FOR COLUMN city BUT THEY ARE NOT SUPPORTED YET.THE BASE64 VALUE FOR THE BITVECTOR IS SExMoBoagcnkoQHDmv3pA/6E55gChOm3qP//////AbzE6Yj7/////wH/jeLHAYC7qMgEgO/pvP//////AYDl7q35/////wHAnoCTBsDeqIT+/////wGArM7x//////8BwdCEL//10sL+/////wGB/Yxrv/G7V8HV1cT7/////wGA/62HA4C7sfsBwJT/rPr/////AYCFgrIBgbbW6P//////Ab707dv//////wGEkeKsBYLSvzy6mZuX+v////8B 
 
 
 
diff --git a/ql/src/test/results/clientpositive/llap/prepare_plan.q.out b/ql/src/test/results/clientpositive/llap/prepare_plan.q.out
index 41bc2c5..ec38f3f 100644
--- a/ql/src/test/results/clientpositive/llap/prepare_plan.q.out
+++ b/ql/src/test/results/clientpositive/llap/prepare_plan.q.out
@@ -412,16 +412,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: avg(ctinyint)
                         keys: ctinyint (type: tinyint)
-                        minReductionHashAggr: 0.9040293
+                        minReductionHashAggr: 0.9062271
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 10352 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 10116 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 10352 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 10116 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: struct<count:bigint,sum:double,input:tinyint>)
             Execution mode: llap
             LLAP IO: all inputs
@@ -433,21 +433,21 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col1 (type: double)
                   outputColumnNames: _col1
-                  Statistics: Num rows: 131 Data size: 1048 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1024 Basic stats: COMPLETE Column stats: COMPLETE
                   Filter Operator
                     predicate: (_col1 < $4) (type: boolean)
-                    Statistics: Num rows: 43 Data size: 344 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 42 Data size: 336 Basic stats: COMPLETE Column stats: COMPLETE
                     Select Operator
                       expressions: _col1 (type: double)
                       outputColumnNames: _col0
-                      Statistics: Num rows: 43 Data size: 344 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 42 Data size: 336 Basic stats: COMPLETE Column stats: COMPLETE
                       File Output Operator
                         compressed: false
-                        Statistics: Num rows: 43 Data size: 344 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 42 Data size: 336 Basic stats: COMPLETE Column stats: COMPLETE
                         table:
                             input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                             output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -497,16 +497,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: avg(ctinyint)
                         keys: ctinyint (type: tinyint)
-                        minReductionHashAggr: 0.95746756
+                        minReductionHashAggr: 0.95844156
                         mode: hash
                         outputColumnNames: _col0, _col1
-                        Statistics: Num rows: 131 Data size: 10352 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 10116 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 10352 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 10116 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: struct<count:bigint,sum:double,input:tinyint>)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -518,21 +518,21 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1
-                Statistics: Num rows: 131 Data size: 1444 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1412 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col1 (type: double)
                   outputColumnNames: _col1
-                  Statistics: Num rows: 131 Data size: 1048 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1024 Basic stats: COMPLETE Column stats: COMPLETE
                   Filter Operator
                     predicate: (_col1 < 0) (type: boolean)
-                    Statistics: Num rows: 43 Data size: 344 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 42 Data size: 336 Basic stats: COMPLETE Column stats: COMPLETE
                     Select Operator
                       expressions: _col1 (type: double)
                       outputColumnNames: _col0
-                      Statistics: Num rows: 43 Data size: 344 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 42 Data size: 336 Basic stats: COMPLETE Column stats: COMPLETE
                       File Output Operator
                         compressed: false
-                        Statistics: Num rows: 43 Data size: 344 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 42 Data size: 336 Basic stats: COMPLETE Column stats: COMPLETE
                         table:
                             input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                             output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -1111,16 +1111,16 @@ STAGE PLANS:
                       Group By Operator
                         aggregations: min(ctinyint), max(cbigint)
                         keys: ctinyint (type: tinyint)
-                        minReductionHashAggr: 0.9680176
+                        minReductionHashAggr: 0.96875
                         mode: hash
                         outputColumnNames: _col0, _col1, _col2
-                        Statistics: Num rows: 131 Data size: 1968 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 1924 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
                           sort order: +
                           Map-reduce partition columns: _col0 (type: tinyint)
-                          Statistics: Num rows: 131 Data size: 1968 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 1924 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: tinyint), _col2 (type: bigint)
             Execution mode: llap
             LLAP IO: all inputs
@@ -1132,14 +1132,14 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 131 Data size: 1968 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1924 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col1 (type: tinyint), _col2 (type: bigint)
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1572 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1536 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
-                    Statistics: Num rows: 131 Data size: 1572 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 1536 Basic stats: COMPLETE Column stats: COMPLETE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
diff --git a/ql/src/test/results/clientpositive/llap/vector_left_outer_join.q.out b/ql/src/test/results/clientpositive/llap/vector_left_outer_join.q.out
index fcb4647..e538862 100644
--- a/ql/src/test/results/clientpositive/llap/vector_left_outer_join.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_left_outer_join.q.out
@@ -65,7 +65,7 @@ STAGE PLANS:
                           1 _col0 (type: tinyint)
                         input vertices:
                           1 Reducer 4
-                        Statistics: Num rows: 1302989 Data size: 10423912 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 1333768 Data size: 10670144 Basic stats: COMPLETE Column stats: COMPLETE
                         Group By Operator
                           aggregations: count()
                           minReductionHashAggr: 0.99
diff --git a/ql/src/test/results/clientpositive/llap/vector_llap_text_1.q.out b/ql/src/test/results/clientpositive/llap/vector_llap_text_1.q.out
index 2159f0d..bcb6797 100644
--- a/ql/src/test/results/clientpositive/llap/vector_llap_text_1.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_llap_text_1.q.out
@@ -208,7 +208,7 @@ STAGE PLANS:
                 TableScan
                   alias: b
                   filterExpr: key is not null (type: boolean)
-                  probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.292
+                  probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_29_container, bigKeyColName:key, smallTablePos:0, keyRatio:0.306
                   Statistics: Num rows: 500 Data size: 47500 Basic stats: COMPLETE Column stats: COMPLETE
                   TableScan Vectorization:
                       native: true
diff --git a/ql/src/test/results/clientpositive/llap/vectorization_div0.q.out b/ql/src/test/results/clientpositive/llap/vectorization_div0.q.out
index c5cdb49..cf04ee0 100644
--- a/ql/src/test/results/clientpositive/llap/vectorization_div0.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorization_div0.q.out
@@ -736,12 +736,12 @@ STAGE PLANS:
                         native: true
                         predicateExpression: FilterExprOrExpr(children: FilterLongColGreaterLongScalar(col 2:int, val 500000000), FilterDoubleColGreaterDoubleScalar(col 5:double, val 1.0E9), FilterLongColEqualLongScalar(col 0:tinyint, val 0))
                     predicate: ((cint > 500000000) or (cdouble > 1.0E9D) or (ctinyint = 0Y)) (type: boolean)
-                    Statistics: Num rows: 3378 Data size: 60552 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 3380 Data size: 60576 Basic stats: COMPLETE Column stats: COMPLETE
                     Top N Key Operator
                       sort order: +++++++++
                       keys: cint (type: int), cbigint (type: bigint), ctinyint (type: tinyint), (UDFToDouble(cint) / UDFToDouble((cint - 528534767))) (type: double), (UDFToDouble(cbigint) / UDFToDouble((cbigint - 1018195815L))) (type: double), (UDFToDouble(ctinyint) / UDFToDouble(ctinyint)) (type: double), (cint % (cint - 528534767)) (type: int), (cbigint % (cbigint - 1018195815L)) (type: bigint), (ctinyint % ctinyint) (type: tinyint)
                       null sort order: zzzzzzzzz
-                      Statistics: Num rows: 3378 Data size: 60552 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 3380 Data size: 60576 Basic stats: COMPLETE Column stats: COMPLETE
                       top n: 100
                       Top N Key Vectorization:
                           className: VectorTopNKeyOperator
@@ -755,7 +755,7 @@ STAGE PLANS:
                             native: true
                             projectedOutputColumnNums: [2, 3, 0, 18, 20, 22, 19, 25, 15]
                             selectExpressions: DoubleColDivideDoubleColumn(col 14:double, col 16:double)(children: CastLongToDouble(col 2:int) -> 14:double, CastLongToDouble(col 15:int)(children: LongColSubtractLongScalar(col 2:int, val 528534767) -> 15:int) -> 16:double) -> 18:double, DoubleColDivideDoubleColumn(col 14:double, col 16:double)(children: CastLongToDouble(col 3:bigint) -> 14:double, CastLongToDouble(col 15:bigint)(children: LongColSubtractLongScalar(col 3:bigint, val 101819 [...]
-                        Statistics: Num rows: 3378 Data size: 161792 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 3380 Data size: 161872 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: int), _col1 (type: bigint), _col2 (type: tinyint), _col3 (type: double), _col4 (type: double), _col5 (type: double), _col6 (type: int), _col7 (type: bigint), _col8 (type: tinyint)
                           null sort order: zzzzzzzzz
@@ -764,7 +764,7 @@ STAGE PLANS:
                               className: VectorReduceSinkObjectHashOperator
                               native: true
                               nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                          Statistics: Num rows: 3378 Data size: 161792 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 3380 Data size: 161872 Basic stats: COMPLETE Column stats: COMPLETE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
             Map Vectorization:
@@ -792,7 +792,7 @@ STAGE PLANS:
                     className: VectorSelectOperator
                     native: true
                     projectedOutputColumnNums: [0, 1, 2, 3, 4, 5, 6, 7, 8]
-                Statistics: Num rows: 3378 Data size: 161792 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 3380 Data size: 161872 Basic stats: COMPLETE Column stats: COMPLETE
                 Limit
                   Number of rows: 100
                   Limit Vectorization:
diff --git a/ql/src/test/results/clientpositive/llap/vectorization_input_format_excludes.q.out b/ql/src/test/results/clientpositive/llap/vectorization_input_format_excludes.q.out
index fbfb7c3..b3b14ad 100644
--- a/ql/src/test/results/clientpositive/llap/vectorization_input_format_excludes.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorization_input_format_excludes.q.out
@@ -188,16 +188,16 @@ STAGE PLANS:
                     Group By Operator
                       aggregations: max(_col1), min(_col2), count(_col3), sum(_col4), count(_col4), sum(_col6), sum(_col5), count(_col5)
                       keys: _col0 (type: tinyint)
-                      minReductionHashAggr: 0.9893392
+                      minReductionHashAggr: 0.9895833
                       mode: hash
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                      Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: tinyint)
                         null sort order: z
                         sort order: +
                         Map-reduce partition columns: _col0 (type: tinyint)
-                        Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                         value expressions: _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), _col4 (type: double), _col5 (type: bigint), _col6 (type: double), _col7 (type: double), _col8 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs (cache only)
@@ -224,14 +224,14 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col0 (type: tinyint), _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), (_col4 / _col5) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / _col8), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
-                  Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
-                    Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -530,16 +530,16 @@ STAGE PLANS:
                     Group By Operator
                       aggregations: max(_col1), min(_col2), count(_col3), sum(_col4), count(_col4), sum(_col6), sum(_col5), count(_col5)
                       keys: _col0 (type: tinyint)
-                      minReductionHashAggr: 0.9893392
+                      minReductionHashAggr: 0.9895833
                       mode: hash
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                      Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: tinyint)
                         null sort order: z
                         sort order: +
                         Map-reduce partition columns: _col0 (type: tinyint)
-                        Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                         value expressions: _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), _col4 (type: double), _col5 (type: bigint), _col6 (type: double), _col7 (type: double), _col8 (type: bigint)
             Execution mode: llap
             LLAP IO: all inputs (cache only)
@@ -561,14 +561,14 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col0 (type: tinyint), _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), (_col4 / _col5) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / _col8), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
-                  Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
-                    Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -872,16 +872,16 @@ STAGE PLANS:
                     Group By Operator
                       aggregations: max(_col1), min(_col2), count(_col3), sum(_col4), count(_col4), sum(_col6), sum(_col5), count(_col5)
                       keys: _col0 (type: tinyint)
-                      minReductionHashAggr: 0.9893392
+                      minReductionHashAggr: 0.9895833
                       mode: hash
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                      Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: tinyint)
                         null sort order: z
                         sort order: +
                         Map-reduce partition columns: _col0 (type: tinyint)
-                        Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                         value expressions: _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), _col4 (type: double), _col5 (type: bigint), _col6 (type: double), _col7 (type: double), _col8 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs (cache only)
@@ -908,14 +908,14 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col0 (type: tinyint), _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), (_col4 / _col5) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / _col8), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
-                  Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
-                    Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -1262,16 +1262,16 @@ STAGE PLANS:
                     Group By Operator
                       aggregations: max(_col1), min(_col2), count(_col3), sum(_col4), count(_col4), sum(_col6), sum(_col5), count(_col5)
                       keys: _col0 (type: tinyint)
-                      minReductionHashAggr: 0.9893392
+                      minReductionHashAggr: 0.9895833
                       mode: hash
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                      Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: tinyint)
                         null sort order: z
                         sort order: +
                         Map-reduce partition columns: _col0 (type: tinyint)
-                        Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                         value expressions: _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), _col4 (type: double), _col5 (type: bigint), _col6 (type: double), _col7 (type: double), _col8 (type: bigint)
             Execution mode: llap
             LLAP IO: all inputs
@@ -1293,14 +1293,14 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col0 (type: tinyint), _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), (_col4 / _col5) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / _col8), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
-                  Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
-                    Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
diff --git a/ql/src/test/results/clientpositive/llap/vectorization_limit.q.out b/ql/src/test/results/clientpositive/llap/vectorization_limit.q.out
index 3b874f7..675f499 100644
--- a/ql/src/test/results/clientpositive/llap/vectorization_limit.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorization_limit.q.out
@@ -333,10 +333,10 @@ STAGE PLANS:
                             vectorProcessingMode: HASH
                             projectedOutputColumnNums: [0, 1]
                         keys: _col0 (type: tinyint)
-                        minReductionHashAggr: 0.9893392
+                        minReductionHashAggr: 0.9895833
                         mode: hash
                         outputColumnNames: _col0, _col1, _col2
-                        Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
@@ -348,7 +348,7 @@ STAGE PLANS:
                               native: true
                               nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                               valueColumns: 1:double, 2:bigint
-                          Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                           value expressions: _col1 (type: double), _col2 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs
@@ -396,12 +396,12 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                 Top N Key Operator
                   sort order: ++
                   keys: _col0 (type: tinyint), (_col1 / _col2) (type: double)
                   null sort order: zz
-                  Statistics: Num rows: 131 Data size: 2360 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 2304 Basic stats: COMPLETE Column stats: COMPLETE
                   top n: 20
                   Top N Key Vectorization:
                       className: VectorTopNKeyOperator
@@ -415,7 +415,7 @@ STAGE PLANS:
                         native: true
                         projectedOutputColumnNums: [0, 4]
                         selectExpressions: DoubleColDivideLongColumn(col 1:double, col 2:bigint) -> 4:double
-                    Statistics: Num rows: 131 Data size: 1048 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 1020 Basic stats: COMPLETE Column stats: COMPLETE
                     Reduce Output Operator
                       key expressions: _col0 (type: tinyint), _col1 (type: double)
                       null sort order: zz
@@ -425,7 +425,7 @@ STAGE PLANS:
                           keyColumns: 0:tinyint, 4:double
                           native: true
                           nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                      Statistics: Num rows: 131 Data size: 1048 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 128 Data size: 1020 Basic stats: COMPLETE Column stats: COMPLETE
         Reducer 3 
             Execution mode: vectorized, llap
             Reduce Vectorization:
@@ -449,7 +449,7 @@ STAGE PLANS:
                     className: VectorSelectOperator
                     native: true
                     projectedOutputColumnNums: [0, 1]
-                Statistics: Num rows: 131 Data size: 1048 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1020 Basic stats: COMPLETE Column stats: COMPLETE
                 Limit
                   Number of rows: 20
                   Limit Vectorization:
@@ -562,10 +562,10 @@ STAGE PLANS:
                             vectorProcessingMode: HASH
                             projectedOutputColumnNums: []
                         keys: ctinyint (type: tinyint)
-                        minReductionHashAggr: 0.9893392
+                        minReductionHashAggr: 0.9895833
                         mode: hash
                         outputColumnNames: _col0
-                        Statistics: Num rows: 131 Data size: 264 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 256 Basic stats: COMPLETE Column stats: COMPLETE
                         Reduce Output Operator
                           key expressions: _col0 (type: tinyint)
                           null sort order: z
@@ -577,7 +577,7 @@ STAGE PLANS:
                               native: true
                               nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
                               partitionColumns: 0:tinyint
-                          Statistics: Num rows: 131 Data size: 264 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 128 Data size: 256 Basic stats: COMPLETE Column stats: COMPLETE
             Execution mode: vectorized, llap
             LLAP IO: all inputs
             Map Vectorization:
@@ -622,7 +622,7 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0
-                Statistics: Num rows: 131 Data size: 264 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 256 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col0 (type: tinyint)
                   outputColumnNames: _col0
@@ -817,12 +817,12 @@ STAGE PLANS:
                   keys: _col0 (type: tinyint)
                   mode: complete
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                   Top N Key Operator
                     sort order: ++
                     keys: _col0 (type: tinyint), _col1 (type: bigint)
                     null sort order: zz
-                    Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
                     top n: 20
                     Top N Key Vectorization:
                         className: VectorTopNKeyOperator
@@ -837,7 +837,7 @@ STAGE PLANS:
                           keyColumns: 0:tinyint, 1:bigint
                           native: true
                           nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, hive.execution.engine tez IN [tez, spark] IS true, No PTF TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true
-                      Statistics: Num rows: 131 Data size: 1312 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 128 Data size: 1280 Basic stats: COMPLETE Column stats: COMPLETE
         Reducer 3 
             Execution mode: vectorized, llap
             Reduce Vectorization:
@@ -861,7 +861,7 @@ STAGE PLANS:
                     className: VectorSelectOperator
                     native: true
                     projectedOutputColumnNums: [0, 1]
-                Statistics: Num rows: 131 Data size: 1048 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 1020 Basic stats: COMPLETE Column stats: COMPLETE
                 Limit
                   Number of rows: 20
                   Limit Vectorization:
diff --git a/ql/src/test/results/clientpositive/llap/vectorized_distinct_gby.q.out b/ql/src/test/results/clientpositive/llap/vectorized_distinct_gby.q.out
index 7be6c7a..7e968d0 100644
--- a/ql/src/test/results/clientpositive/llap/vectorized_distinct_gby.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorized_distinct_gby.q.out
@@ -477,10 +477,10 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3
-                Statistics: Num rows: 131 Data size: 26596 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 25988 Basic stats: COMPLETE Column stats: COMPLETE
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 131 Data size: 26596 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 25988 Basic stats: COMPLETE Column stats: COMPLETE
                   table:
                       input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                       output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
diff --git a/ql/src/test/results/clientpositive/llap/vectorized_nested_mapjoin.q.out b/ql/src/test/results/clientpositive/llap/vectorized_nested_mapjoin.q.out
index bed3845..1c13637 100644
--- a/ql/src/test/results/clientpositive/llap/vectorized_nested_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorized_nested_mapjoin.q.out
@@ -29,7 +29,7 @@ STAGE PLANS:
                 TableScan
                   alias: v3
                   filterExpr: csmallint is not null (type: boolean)
-                  probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:csmallint, smallTablePos:1, keyRatio:0.010579427083333334
+                  probeDecodeDetails: cacheKey:HASH_MAP_MAPJOIN_49_container, bigKeyColName:csmallint, smallTablePos:1, keyRatio:0.010335286458333334
                   Statistics: Num rows: 12288 Data size: 36700 Basic stats: COMPLETE Column stats: COMPLETE
                   Filter Operator
                     predicate: csmallint is not null (type: boolean)
@@ -57,7 +57,7 @@ STAGE PLANS:
                           outputColumnNames: _col3
                           input vertices:
                             1 Map 3
-                          Statistics: Num rows: 782315 Data size: 6244648 Basic stats: COMPLETE Column stats: COMPLETE
+                          Statistics: Num rows: 800795 Data size: 6392488 Basic stats: COMPLETE Column stats: COMPLETE
                           Group By Operator
                             aggregations: sum(_col3)
                             minReductionHashAggr: 0.99
diff --git a/ql/src/test/results/clientpositive/llap/vectorized_parquet.q.out b/ql/src/test/results/clientpositive/llap/vectorized_parquet.q.out
index 90e9e7d..8f98380 100644
--- a/ql/src/test/results/clientpositive/llap/vectorized_parquet.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorized_parquet.q.out
@@ -158,16 +158,16 @@ STAGE PLANS:
                     Group By Operator
                       aggregations: max(_col1), min(_col2), count(_col3), sum(_col4), count(_col4), sum(_col6), sum(_col5), count(_col5)
                       keys: _col0 (type: tinyint)
-                      minReductionHashAggr: 0.9893392
+                      minReductionHashAggr: 0.9895833
                       mode: hash
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                      Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                      Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                       Reduce Output Operator
                         key expressions: _col0 (type: tinyint)
                         null sort order: z
                         sort order: +
                         Map-reduce partition columns: _col0 (type: tinyint)
-                        Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                        Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                         value expressions: _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), _col4 (type: double), _col5 (type: bigint), _col6 (type: double), _col7 (type: double), _col8 (type: bigint)
             Execution mode: vectorized, llap
             LLAP IO: all inputs (cache only)
@@ -194,14 +194,14 @@ STAGE PLANS:
                 keys: KEY._col0 (type: tinyint)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-                Statistics: Num rows: 131 Data size: 7732 Basic stats: COMPLETE Column stats: COMPLETE
+                Statistics: Num rows: 128 Data size: 7556 Basic stats: COMPLETE Column stats: COMPLETE
                 Select Operator
                   expressions: _col0 (type: tinyint), _col1 (type: int), _col2 (type: smallint), _col3 (type: bigint), (_col4 / _col5) (type: double), power(((_col6 - ((_col7 * _col7) / _col8)) / _col8), 0.5) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
-                  Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                  Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                   File Output Operator
                     compressed: false
-                    Statistics: Num rows: 131 Data size: 4588 Basic stats: COMPLETE Column stats: COMPLETE
+                    Statistics: Num rows: 128 Data size: 4484 Basic stats: COMPLETE Column stats: COMPLETE
                     table:
                         input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                         output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
diff --git a/ql/src/test/results/clientpositive/tez/tez_tag.q.out b/ql/src/test/results/clientpositive/tez/tez_tag.q.out
index ecbac7a..a78eaa1 100644
--- a/ql/src/test/results/clientpositive/tez/tez_tag.q.out
+++ b/ql/src/test/results/clientpositive/tez/tez_tag.q.out
@@ -309,19 +309,19 @@ Stage-0
               <-Reducer 2 [SIMPLE_EDGE]
                 SHUFFLE [RS_21]
                   PartitionCols:_col1
-                  Merge Join Operator [MERGEJOIN_39] (rows=146 width=184)
+                  Merge Join Operator [MERGEJOIN_39] (rows=153 width=184)
                     Conds:FIL_35._col0=DUMMY_STORE_40._col0(Inner),Output:["_col1"]
                   <-Dummy Store [DUMMY_STORE_40]
-                      Group By Operator [GBY_13] (rows=146 width=4)
+                      Group By Operator [GBY_13] (rows=153 width=4)
                         Output:["_col0"],keys:KEY._col0
-                  <-Filter Operator [FIL_35] (rows=146 width=188)
+                  <-Filter Operator [FIL_35] (rows=153 width=188)
                       predicate:_col1 is not null
-                      Group By Operator [GBY_5] (rows=146 width=188)
+                      Group By Operator [GBY_5] (rows=153 width=188)
                         Output:["_col0","_col1"],aggregations:["min(VALUE._col0)"],keys:KEY._col0
                       <-Map 1 [SIMPLE_EDGE]
                         SHUFFLE [RS_4]
                           PartitionCols:_col0
-                          Group By Operator [GBY_3] (rows=146 width=188)
+                          Group By Operator [GBY_3] (rows=153 width=188)
                             Output:["_col0","_col1"],aggregations:["min(value)"],keys:key
                             Filter Operator [FIL_36] (rows=242 width=95)
                               predicate:key is not null
@@ -330,7 +330,7 @@ Stage-0
                       <-Map 5 [SIMPLE_EDGE]
                         SHUFFLE [RS_12]
                           PartitionCols:_col0
-                          Group By Operator [GBY_11] (rows=146 width=4)
+                          Group By Operator [GBY_11] (rows=153 width=4)
                             Output:["_col0"],keys:key
                             Filter Operator [FIL_37] (rows=242 width=4)
                               predicate:key is not null
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HLLConstants.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HLLConstants.java
index 3a1d076..7a726aa 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HLLConstants.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HLLConstants.java
@@ -26,9 +26,6 @@ public class HLLConstants {
   public static final int MIN_P_VALUE = 4;
   public static final int MAX_P_VALUE = 16;
 
-  // number of entries to store before being merged to sparse map
-  public static final int TEMP_LIST_DEFAULT_SIZE = 1024;
-
   // constants for SPARSE encoding
   public static final int P_PRIME_VALUE = 25;
   public static final int Q_PRIME_VALUE = 6;
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HLLSparseRegister.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HLLSparseRegister.java
index d5ac54a..d53c614 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HLLSparseRegister.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HLLSparseRegister.java
@@ -20,16 +20,12 @@ package org.apache.hadoop.hive.common.ndv.hll;
 
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.TreeMap;
 
-public class HLLSparseRegister implements HLLRegister {
+import java.util.HashMap;
 
-  private TreeMap<Integer,Byte> sparseMap;
+public class HLLSparseRegister implements HLLRegister {
 
-  // for a better insertion performance values are added to temporary unsorted
-  // list which will be merged to sparse map after a threshold
-  private int[] tempList;
-  private int tempListIdx;
+  private Map<Integer, Byte> sparseMap;
 
   // number of register bits
   private final int p;
@@ -47,9 +43,7 @@ public class HLLSparseRegister implements HLLRegister {
 
   public HLLSparseRegister(int p, int pp, int qp) {
     this.p = p;
-    this.sparseMap = new TreeMap<>();
-    this.tempList = new int[HLLConstants.TEMP_LIST_DEFAULT_SIZE];
-    this.tempListIdx = 0;
+    this.sparseMap = new HashMap<>();
     this.pPrime = pp;
     this.qPrime = qp;
     this.mask = ((1 << pPrime) - 1) ^ ((1 << p) - 1);
@@ -60,65 +54,43 @@ public class HLLSparseRegister implements HLLRegister {
   public boolean add(long hashcode) {
     boolean updated = false;
 
-    // fill the temp list before merging to sparse map
-    if (tempListIdx < tempList.length) {
-      int encodedHash = encodeHash(hashcode);
-      tempList[tempListIdx++] = encodedHash;
-      updated = true;
+    int encodedHash = encodeHash(hashcode);
+
+    int key = encodedHash & pPrimeMask;
+    byte value = (byte) (encodedHash >>> pPrime);
+    byte nr = 0;
+    // if MSB is set to 1 then next qPrime MSB bits contains the value of
+    // number of zeroes.
+    // if MSB is set to 0 then number of zeroes is contained within pPrime - p
+    // bits.
+    if (encodedHash < 0) {
+      nr = (byte) (value & qPrimeMask);
     } else {
-      updated = mergeTempListToSparseMap();
-    }
-
-    return updated;
-  }
-
-  /**
-   * Adds temp list to sparse map. The key for sparse map entry is the register
-   * index determined by pPrime and value is the number of trailing zeroes.
-   * @return
-   */
-  private boolean mergeTempListToSparseMap() {
-    boolean updated = false;
-    for (int i = 0; i < tempListIdx; i++) {
-      int encodedHash = tempList[i];
-      int key = encodedHash & pPrimeMask;
-      byte value = (byte) (encodedHash >>> pPrime);
-      byte nr = 0;
-      // if MSB is set to 1 then next qPrime MSB bits contains the value of
-      // number of zeroes.
-      // if MSB is set to 0 then number of zeroes is contained within pPrime - p
-      // bits.
-      if (encodedHash < 0) {
-        nr = (byte) (value & qPrimeMask);
-      } else {
-        nr = (byte) (Integer.numberOfTrailingZeros(encodedHash >>> p) + 1);
-      }
-      updated = set(key, nr);
+      nr = (byte) (Integer.numberOfTrailingZeros(encodedHash >>> p) + 1);
     }
+    updated = set(key, nr);
 
-    // reset temp list index
-    tempListIdx = 0;
     return updated;
   }
 
   /**
    * <pre>
    * <b>Input:</b> 64 bit hashcode
-   * 
+   *
    * |---------w-------------| |------------p'----------|
    * 10101101.......1010101010 10101010101 01010101010101
    *                                       |------p-----|
-   *                                       
+   *
    * <b>Output:</b> 32 bit int
-   * 
+   *
    * |b| |-q'-|  |------------p'----------|
    *  1  010101  01010101010 10101010101010
    *                         |------p-----|
-   *                    
-   * 
+   *
+   *
    * The default values of p', q' and b are 25, 6, 1 (total 32 bits) respectively.
    * This function will return an int encoded in the following format
-   * 
+   *
    * p  - LSB p bits represent the register index
    * p' - LSB p' bits are used for increased accuracy in estimation
    * q' - q' bits after p' are left as such from the hashcode if b = 0 else
@@ -148,8 +120,8 @@ public class HLLSparseRegister implements HLLRegister {
     }
   }
 
-  public int getSize() {
-    return sparseMap.size() + tempListIdx;
+  public boolean isSizeGreaterThan(int s) {
+    return sparseMap.size() > s;
   }
 
   public void merge(HLLRegister hllRegister) {
@@ -177,14 +149,7 @@ public class HLLSparseRegister implements HLLRegister {
     return false;
   }
 
-  public TreeMap<Integer,Byte> getSparseMap() {
-    return getMergedSparseMap();
-  }
-
-  private TreeMap<Integer,Byte> getMergedSparseMap() {
-    if (tempListIdx != 0) {
-      mergeTempListToSparseMap();
-    }
+  public Map<Integer, Byte> getSparseMap() {
     return sparseMap;
   }
 
@@ -195,7 +160,7 @@ public class HLLSparseRegister implements HLLRegister {
       byte lr = entry.getValue(); // this can be a max of 65, never > 127
       if (lr != 0) {
         // should be a no-op for sparse
-        dest.add((long) ((1 << (p + lr - 1)) | idx));
+        dest.add((1L << (p + lr - 1)) | idx);
       }
     }
   }
@@ -231,15 +196,8 @@ public class HLLSparseRegister implements HLLRegister {
       return false;
     }
     HLLSparseRegister other = (HLLSparseRegister) obj;
-    boolean result = p == other.p && pPrime == other.pPrime && qPrime == other.qPrime
-        && tempListIdx == other.tempListIdx;
+    boolean result = p == other.p && pPrime == other.pPrime && qPrime == other.qPrime;
     if (result) {
-      for (int i = 0; i < tempListIdx; i++) {
-        if (tempList[i] != other.tempList[i]) {
-          return false;
-        }
-      }
-
       result = result && sparseMap.equals(other.sparseMap);
     }
     return result;
@@ -251,9 +209,6 @@ public class HLLSparseRegister implements HLLRegister {
     hashcode += 31 * p;
     hashcode += 31 * pPrime;
     hashcode += 31 * qPrime;
-    for (int i = 0; i < tempListIdx; i++) {
-      hashcode += 31 * tempList[tempListIdx];
-    }
     hashcode += sparseMap.hashCode();
     return hashcode;
   }
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HyperLogLog.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HyperLogLog.java
index b23ebc3..8295bba 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HyperLogLog.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HyperLogLog.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hive.common.ndv.hll;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 import java.util.Map;
 import java.util.TreeMap;
@@ -30,17 +29,19 @@ import org.apache.hadoop.hive.common.type.HiveDecimal;
 import org.apache.hadoop.hive.ql.util.JavaDataModel;
 import org.apache.hive.common.util.Murmur3;
 
+import com.google.common.annotations.VisibleForTesting;
+
 /**
  * <pre>
  * This is an implementation of the following variants of hyperloglog (HLL)
- * algorithm 
+ * algorithm
  * Original  - Original HLL algorithm from Flajolet et. al from
  *             http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf
  * HLLNoBias - Google's implementation of bias correction based on lookup table
  *             http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/40671.pdf
  * HLL++     - Google's implementation of HLL++ algorithm that uses SPARSE registers
  *             http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/40671.pdf
- * 
+ *
  * Following are the constructor parameters that determines which algorithm is
  * used
  * <b>numRegisterIndexBits</b> - number of LSB hashcode bits to be used as register index.
@@ -194,7 +195,7 @@ public class HyperLogLog implements NumDistinctValueEstimator {
     } else if (hashBits <= 64) {
       alphaMM = 0.709f;
     } else {
-      alphaMM = 0.7213f / (float) (1 + 1.079f / m);
+      alphaMM = 0.7213f / (1 + 1.079f / m);
     }
 
     // For efficiency alpha is multiplied by m^2
@@ -262,7 +263,7 @@ public class HyperLogLog implements NumDistinctValueEstimator {
 
       // if size of sparse map excess the threshold convert the sparse map to
       // dense register and switch to DENSE encoding
-      if (sparseRegister.getSize() > encodingSwitchThreshold) {
+      if (sparseRegister.isSizeGreaterThan(encodingSwitchThreshold)) {
         encoding = EncodingType.DENSE;
         denseRegister = sparseToDenseRegister(sparseRegister);
         sparseRegister = null;
@@ -390,7 +391,7 @@ public class HyperLogLog implements NumDistinctValueEstimator {
   }
 
   private long linearCount(int mVal, long numZeros) {
-    return (long) (Math.round(mVal * Math.log(mVal / ((double) numZeros))));
+    return (Math.round(mVal * Math.log(mVal / ((double) numZeros))));
   }
 
   // refer paper
@@ -463,7 +464,7 @@ public class HyperLogLog implements NumDistinctValueEstimator {
       sparseRegister.merge(hll.getHLLSparseRegister());
       // if after merge the sparse switching threshold is exceeded then change
       // to dense encoding
-      if (sparseRegister.getSize() > encodingSwitchThreshold) {
+      if (sparseRegister.isSizeGreaterThan(encodingSwitchThreshold)) {
         encoding = EncodingType.DENSE;
         denseRegister = sparseToDenseRegister(sparseRegister);
         sparseRegister = null;
@@ -485,7 +486,7 @@ public class HyperLogLog implements NumDistinctValueEstimator {
 
   /**
    * Reduces the accuracy of the HLL provided to a smaller size
-   * @param p0 
+   * @param p0
    *         - new p size for the new HyperLogLog (smaller or no change)
    * @return reduced (or same) HyperLogLog instance
    */
@@ -670,4 +671,9 @@ public class HyperLogLog implements NumDistinctValueEstimator {
     return o instanceof HyperLogLog;
   }
 
+  @VisibleForTesting
+  public int getEncodingSwitchThreshold() {
+    return encodingSwitchThreshold;
+  }
+
 }
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HyperLogLogUtils.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HyperLogLogUtils.java
index a50d085..7850737 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HyperLogLogUtils.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/ndv/hll/HyperLogLogUtils.java
@@ -25,8 +25,6 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.Arrays;
 import java.util.Map;
-import java.util.TreeMap;
-
 import org.apache.hadoop.hive.common.ndv.hll.HyperLogLog.EncodingType;
 
 /**
@@ -38,24 +36,24 @@ public class HyperLogLogUtils {
 
   /**
    * HyperLogLog is serialized using the following format
-   * 
+   *
    * <pre>
-   * |-4 byte-|------varlong----|varint (optional)|----------|  
+   * |-4 byte-|------varlong----|varint (optional)|----------|
    * ---------------------------------------------------------
    * | header | estimated-count | register-length | register |
    * ---------------------------------------------------------
-   * 
+   *
    * <b>4 byte header</b> is encoded like below
    * 3 bytes - HLL magic string to identify serialized stream
    * 4 bits  - p (number of bits to be used as register index)
    * 1       - spare bit (not used)
    * 3 bits  - encoding (000 - sparse, 001..110 - n bit packing, 111 - no bit packing)
-   * 
+   *
    * Followed by header are 3 fields that are required for reconstruction
    * of hyperloglog
    * Estimated count - variable length long to store last computed estimated count.
    *                   This is just for quick lookup without deserializing registers
-   * Register length - number of entries in the register (required only for 
+   * Register length - number of entries in the register (required only for
    *                   for sparse representation. For bit-packing, the register
    *                   length can be found from p)
    * </pre>
@@ -104,7 +102,7 @@ public class HyperLogLogUtils {
       byte[] register = hll.getHLLDenseRegister().getRegister();
       bitpackHLLRegister(out, register, bitWidth);
     } else if (enc.equals(EncodingType.SPARSE)) {
-      TreeMap<Integer, Byte> sparseMap = hll.getHLLSparseRegister().getSparseMap();
+      Map<Integer, Byte> sparseMap = hll.getHLLSparseRegister().getSparseMap();
 
       // write the number of elements in sparse map (required for
       // reconstruction)
diff --git a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/common/ndv/hll/TestHyperLogLog.java b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/common/ndv/hll/TestHyperLogLog.java
index e014fb5..bed550a 100644
--- a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/common/ndv/hll/TestHyperLogLog.java
+++ b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/common/ndv/hll/TestHyperLogLog.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hive.common.ndv.hll;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.apache.hadoop.hive.common.ndv.hll.HyperLogLog.EncodingType;
 import org.apache.hadoop.hive.metastore.annotation.MetastoreUnitTest;
@@ -49,27 +50,27 @@ public class TestHyperLogLog {
     double threshold = size > 40000 ? longRangeTolerance : shortRangeTolerance;
     double delta = threshold * size / 100;
     double delta4 = threshold * (4*size) / 100;
-    assertEquals((double) size, (double) hll.count(), delta);
-    assertEquals((double) size, (double) hll2.count(), delta);
+    assertEquals(size, hll.count(), delta);
+    assertEquals(size, hll2.count(), delta);
 
     // merge
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
     // merge should update registers and hence the count
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
     // new merge
     hll.merge(hll3);
-    assertEquals((double) 3 * size, (double) hll.count(), delta);
+    assertEquals((double) 3 * size, hll.count(), delta);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
-    // valid merge -- register set size gets bigger (also 4k items 
+    // valid merge -- register set size gets bigger (also 4k items
     hll.merge(hll4);
-    assertEquals((double) 4 * size, (double) hll.count(), delta4);
+    assertEquals((double) 4 * size, hll.count(), delta4);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
     // invalid merge -- smaller register merge to bigger
@@ -95,27 +96,27 @@ public class TestHyperLogLog {
     double threshold = size > 40000 ? longRangeTolerance : shortRangeTolerance;
     double delta = threshold * size / 100;
     double delta4 = threshold * (4*size) / 100;
-    assertEquals((double) size, (double) hll.count(), delta);
-    assertEquals((double) size, (double) hll2.count(), delta);
+    assertEquals(size, hll.count(), delta);
+    assertEquals(size, hll2.count(), delta);
 
     // merge
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.SPARSE, hll.getEncoding());
 
     // merge should update registers and hence the count
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.SPARSE, hll.getEncoding());
 
     // new merge
     hll.merge(hll3);
-    assertEquals((double) 3 * size, (double) hll.count(), delta);
+    assertEquals((double) 3 * size, hll.count(), delta);
     assertEquals(EncodingType.SPARSE, hll.getEncoding());
 
     // valid merge -- register set size gets bigger & dense automatically
     hll.merge(hll4);
-    assertEquals((double) 4 * size, (double) hll.count(), delta4);
+    assertEquals((double) 4 * size, hll.count(), delta4);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
     // invalid merge -- smaller register merge to bigger
@@ -140,27 +141,27 @@ public class TestHyperLogLog {
     }
     double threshold = size > 40000 ? longRangeTolerance : shortRangeTolerance;
     double delta = threshold * size / 100;
-    assertEquals((double) size, (double) hll.count(), delta);
-    assertEquals((double) size, (double) hll2.count(), delta);
+    assertEquals(size, hll.count(), delta);
+    assertEquals(size, hll2.count(), delta);
 
     // sparse-sparse merge
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.SPARSE, hll.getEncoding());
 
     // merge should update registers and hence the count
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.SPARSE, hll.getEncoding());
 
     // sparse-dense merge
     hll.merge(hll3);
-    assertEquals((double) 3 * size, (double) hll.count(), delta);
+    assertEquals((double) 3 * size, hll.count(), delta);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
     // merge should convert hll2 to DENSE
     hll2.merge(hll4);
-    assertEquals((double) 2 * size, (double) hll2.count(), delta);
+    assertEquals((double) 2 * size, hll2.count(), delta);
     assertEquals(EncodingType.DENSE, hll2.getEncoding());
 
     // invalid merge -- smaller register merge to bigger
@@ -185,27 +186,27 @@ public class TestHyperLogLog {
     }
     double threshold = size > 40000 ? longRangeTolerance : shortRangeTolerance;
     double delta = threshold * size / 100;
-    assertEquals((double) size, (double) hll.count(), delta);
-    assertEquals((double) size, (double) hll2.count(), delta);
+    assertEquals(size, hll.count(), delta);
+    assertEquals(size, hll2.count(), delta);
 
     // sparse-sparse merge
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
     // merge should update registers and hence the count
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
     // sparse-dense merge
     hll.merge(hll3);
-    assertEquals((double) 3 * size, (double) hll.count(), delta);
+    assertEquals((double) 3 * size, hll.count(), delta);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
     // merge should convert hll3 to DENSE
     hll3.merge(hll4);
-    assertEquals((double) 2 * size, (double) hll3.count(), delta);
+    assertEquals((double) 2 * size, hll3.count(), delta);
     assertEquals(EncodingType.DENSE, hll3.getEncoding());
 
     // invalid merge -- smaller register merge to bigger
@@ -231,27 +232,27 @@ public class TestHyperLogLog {
     }
     double threshold = size > 40000 ? longRangeTolerance : shortRangeTolerance;
     double delta = threshold * size / 100;
-    assertEquals((double) size, (double) hll.count(), delta);
-    assertEquals((double) size, (double) hll2.count(), delta);
+    assertEquals(size, hll.count(), delta);
+    assertEquals(size, hll2.count(), delta);
 
     // sparse-sparse merge
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.SPARSE, hll.getEncoding());
 
     // merge should update registers and hence the count
     hll.merge(hll2);
-    assertEquals((double) 2 * size, (double) hll.count(), delta);
+    assertEquals((double) 2 * size, hll.count(), delta);
     assertEquals(EncodingType.SPARSE, hll.getEncoding());
 
     // sparse-sparse overload to dense
     hll.merge(hll3);
-    assertEquals((double) 3 * size, (double) hll.count(), delta);
+    assertEquals((double) 3 * size, hll.count(), delta);
     assertEquals(EncodingType.DENSE, hll.getEncoding());
 
     // merge should convert hll2 to DENSE
     hll2.merge(hll4);
-    assertEquals((double) 2 * size, (double) hll2.count(), delta);
+    assertEquals((double) 2 * size, hll2.count(), delta);
     assertEquals(EncodingType.DENSE, hll2.getEncoding());
 
     // invalid merge -- smaller register merge to bigger
@@ -268,7 +269,7 @@ public class TestHyperLogLog {
     }
     double threshold = size > 40000 ? longRangeTolerance : shortRangeTolerance;
     double delta = threshold * size / 100;
-    assertEquals((double) size, (double) hll.count(), delta);
+    assertEquals(size, hll.count(), delta);
   }
 
   @Test
@@ -296,7 +297,7 @@ public class TestHyperLogLog {
               .squash(small.getNumRegisterIndexBits());
           assertEquals(small.count(), mush.count(), 0);
           double delta = Math.ceil(small.getStandardError()*size);
-          assertEquals((double) size, (double) mush.count(), delta);
+          assertEquals(size, mush.count(), delta);
         }
       }
     }
@@ -316,7 +317,7 @@ public class TestHyperLogLog {
     }
 
     p14HLL.squash(p10HLL.getNumRegisterIndexBits());
-    assertEquals((double) size, p14HLL.count(), longRangeTolerance * size / 100.0);
+    assertEquals(size, p14HLL.count(), longRangeTolerance * size / 100.0);
   }
 
   @Test
@@ -333,6 +334,35 @@ public class TestHyperLogLog {
     }
 
     p14HLL.squash(p10HLL.getNumRegisterIndexBits());
-    assertEquals((double) size, p14HLL.count(), longRangeTolerance * size / 100.0);
+    assertEquals(size, p14HLL.count(), longRangeTolerance * size / 100.0);
   }
+
+  @Test
+  public void testAbletoRetainAccuracyUpToSwitchThreshold70() {
+    testRetainAccuracy(70);
+  }
+
+  @Test
+  public void testAbletoRetainAccuracyUpToSwitchThresholdMaxPer2() {
+    int maxThreshold = HyperLogLog.builder().setSizeOptimized().build().getEncodingSwitchThreshold();
+    testRetainAccuracy(maxThreshold / 2);
+  }
+
+  @Test
+  public void testAbletoRetainAccuracyUpToSwitchThresholdMax() {
+    int maxThreshold = HyperLogLog.builder().setSizeOptimized().build().getEncodingSwitchThreshold();
+    testRetainAccuracy(maxThreshold);
+  }
+
+  private void testRetainAccuracy(int numElements) {
+    HyperLogLog h = HyperLogLog.builder().setSizeOptimized().build();
+    assertTrue(numElements <= h.getEncodingSwitchThreshold());
+    for (int ia = 0; ia <= 10; ia++) {
+      for (int i = 1; i <= numElements; i++) {
+        h.addLong(i);
+      }
+    }
+    assertEquals(numElements, h.estimateNumDistinctValues());
+  }
+
 }