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

zhangbutao 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 b16af6c033c HIVE-28520: Upgrade to datasketches 2.0.0 (#5444)
b16af6c033c is described below

commit b16af6c033cce2e41ab93a7f112eff0b3febfa86
Author: Butao Zhang <[email protected]>
AuthorDate: Thu May 29 21:41:47 2025 +0800

    HIVE-28520: Upgrade to datasketches 2.0.0 (#5444)
---
 pom.xml                                            |    2 +-
 .../org/apache/hadoop/hive/ql/ddl/ShowUtils.java   |    3 +-
 .../calcite/stats/FilterSelectivityEstimator.java  |   17 +-
 .../stats/annotation/StatsRulesProcFactory.java    |    2 +-
 .../clientpositive/llap/compute_kll_sketch.q.out   | 1050 +++++++++++---------
 .../sketches_materialized_view_cume_dist.q.out     |  308 +++---
 .../llap/sketches_materialized_view_ntile.q.out    |   74 +-
 .../llap/sketches_materialized_view_rank.q.out     |  306 +++---
 .../llap/sketches_rewrite_cume_dist.q.out          |  264 ++---
 .../sketches_rewrite_cume_dist_partition_by.q.out  |   96 +-
 .../llap/sketches_rewrite_ntile.q.out              |   50 +-
 .../llap/sketches_rewrite_ntile_partition_by.q.out |   30 +-
 .../llap/sketches_rewrite_rank.q.out               |  252 ++---
 .../llap/sketches_rewrite_rank_partition_by.q.out  |   86 +-
 .../common/histogram/KllHistogramEstimator.java    |    4 +-
 .../hadoop/hive/common/histogram/kll/KllUtils.java |    3 +-
 .../hadoop/hive/metastore/StatisticsTestUtils.java |    6 +-
 .../hive/metastore/client/TestPartitionStat.java   |    6 +-
 standalone-metastore/pom.xml                       |    2 +-
 19 files changed, 1327 insertions(+), 1234 deletions(-)

diff --git a/pom.xml b/pom.xml
index f4fc2b09541..31e4ed0727d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -220,7 +220,7 @@
     <rs-api.version>2.0.1</rs-api.version>
     <json-path.version>2.9.0</json-path.version>
     <janino.version>3.1.12</janino.version>
-    <datasketches.version>1.2.0</datasketches.version>
+    <datasketches.version>2.0.0</datasketches.version>
     <spotbugs.version>4.8.6</spotbugs.version>
     <validation-api.version>1.1.0.Final</validation-api.version>
     
<aws-secretsmanager-caching.version>1.0.1</aws-secretsmanager-caching.version>
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/ShowUtils.java 
b/ql/src/java/org/apache/hadoop/hive/ql/ddl/ShowUtils.java
index 0d52c852895..386bfd97748 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/ShowUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/ShowUtils.java
@@ -23,6 +23,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.apache.datasketches.kll.KllFloatsSketch;
 import org.apache.datasketches.memory.Memory;
+import org.apache.datasketches.quantilescommon.QuantileSearchCriteria;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
@@ -257,7 +258,7 @@ private static String convertHistogram(byte[] buffer, 
ColumnStatisticsData._Fiel
     final KllFloatsSketch kll = KllFloatsSketch.heapify(Memory.wrap(buffer));
     // to keep the visualization compact, we print only the quartiles (Q1, Q2 
and Q3),
     // as min and max are displayed as separate statistics already
-    final float[] quantiles = kll.getQuantiles(new double[]{ 0.25, 0.5, 0.75 
});
+    final float[] quantiles = kll.getQuantiles(new double[]{ 0.25, 0.5, 0.75 
},  QuantileSearchCriteria.EXCLUSIVE);
 
     Function<Float, Object> converter;
 
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/stats/FilterSelectivityEstimator.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/stats/FilterSelectivityEstimator.java
index 9bc6cad909d..e51b042853a 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/stats/FilterSelectivityEstimator.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/stats/FilterSelectivityEstimator.java
@@ -42,6 +42,7 @@
 import org.apache.calcite.util.ImmutableBitSet;
 import org.apache.datasketches.kll.KllFloatsSketch;
 import org.apache.datasketches.memory.Memory;
+import org.apache.datasketches.quantilescommon.QuantileSearchCriteria;
 import org.apache.hadoop.hive.ql.optimizer.calcite.HiveCalciteUtil;
 import org.apache.hadoop.hive.ql.optimizer.calcite.HiveConfPlannerContext;
 import org.apache.hadoop.hive.ql.optimizer.calcite.RelOptHiveTable;
@@ -489,7 +490,7 @@ public Double visitLiteral(RexLiteral literal) {
 
   private static double rangedSelectivity(KllFloatsSketch kll, float val1, 
float val2) {
     float[] splitPoints = new float[] { val1, val2 };
-    double[] boundaries = kll.getCDF(splitPoints);
+    double[] boundaries = kll.getCDF(splitPoints, 
QuantileSearchCriteria.EXCLUSIVE);
     return boundaries[1] - boundaries[0];
   }
 
@@ -500,7 +501,7 @@ private static double rangedSelectivity(KllFloatsSketch 
kll, float val1, float v
    * @return the selectivity of a predicate "column &gt; value" in the range 
[0, 1]
    */
   public static double greaterThanSelectivity(KllFloatsSketch kll, float 
value) {
-    float max = kll.getMaxValue();
+    float max = kll.getMaxItem();
     if (value > max) {
       return 0;
     }
@@ -518,10 +519,10 @@ public static double 
greaterThanSelectivity(KllFloatsSketch kll, float value) {
    * @return the selectivity of a predicate "column &gt;= value" in the range 
[0, 1]
    */
   public static double greaterThanOrEqualSelectivity(KllFloatsSketch kll, 
float value) {
-    if (value > kll.getMaxValue()) {
+    if (value > kll.getMaxItem()) {
       return 0;
     }
-    return rangedSelectivity(kll, value, Math.nextUp(kll.getMaxValue()));
+    return rangedSelectivity(kll, value, Math.nextUp(kll.getMaxItem()));
   }
 
   /**
@@ -531,10 +532,10 @@ public static double 
greaterThanOrEqualSelectivity(KllFloatsSketch kll, float va
    * @return the selectivity of a predicate "column &lt;= value" in the range 
[0, 1]
    */
   public static double lessThanOrEqualSelectivity(KllFloatsSketch kll, float 
value) {
-    if (value < kll.getMinValue()) {
+    if (value < kll.getMinItem()) {
       return 0;
     }
-    return kll.getCDF(new float[] { Math.nextUp(value) })[0];
+    return kll.getCDF(new float[] { Math.nextUp(value) }, 
QuantileSearchCriteria.EXCLUSIVE)[0];
   }
 
   /**
@@ -544,14 +545,14 @@ public static double 
lessThanOrEqualSelectivity(KllFloatsSketch kll, float value
    * @return the selectivity of a predicate "column &lt; value" in the range 
[0, 1]
    */
   public static double lessThanSelectivity(KllFloatsSketch kll, float value) {
-    float min = kll.getMinValue();
+    float min = kll.getMinItem();
     if (value < min) {
       return 0;
     }
     if (Double.compare(value, min) == 0 || Double.compare(Math.nextUp(value), 
min) == 0) {
       return 0;
     }
-    return kll.getCDF(new float[] { value })[0];
+    return kll.getCDF(new float[] { value }, 
QuantileSearchCriteria.EXCLUSIVE)[0];
   }
 
   /**
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/stats/annotation/StatsRulesProcFactory.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/stats/annotation/StatsRulesProcFactory.java
index 6a579c3a55e..10a974ebe47 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/stats/annotation/StatsRulesProcFactory.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/stats/annotation/StatsRulesProcFactory.java
@@ -37,7 +37,7 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import org.apache.calcite.rel.metadata.RelMdUtil;
-import org.apache.datasketches.SketchesArgumentException;
+import org.apache.datasketches.common.SketchesArgumentException;
 import org.apache.datasketches.kll.KllFloatsSketch;
 import org.apache.datasketches.memory.Memory;
 import org.apache.hadoop.hive.common.ndv.NumDistinctValueEstimator;
diff --git a/ql/src/test/results/clientpositive/llap/compute_kll_sketch.q.out 
b/ql/src/test/results/clientpositive/llap/compute_kll_sketch.q.out
index b463c5ed5c8..83ad6d7fa57 100644
--- a/ql/src/test/results/clientpositive/llap/compute_kll_sketch.q.out
+++ b/ql/src/test/results/clientpositive/llap/compute_kll_sketch.q.out
@@ -7,22 +7,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -64.0
-   Max Value            : 62.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -64.0
+   Max Item               : 62.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (ctinyint as 
float))) from alltypesorc
@@ -34,22 +37,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -64.0
-   Max Value            : 62.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -64.0
+   Max Item               : 62.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (ctinyint as 
float), 200)) from alltypesorc
@@ -61,22 +67,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -64.0
-   Max Value            : 62.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -64.0
+   Max Item               : 62.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (ctinyint as 
float))) from alltypesorc
@@ -88,22 +97,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -64.0
-   Max Value            : 62.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -64.0
+   Max Item               : 62.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (ctinyint as 
float), 300)) from alltypesorc
@@ -115,22 +127,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 300
-   min K                : 300
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 0.896%
-   Epsison PMF          : 1.127%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 5
-   Sorted               : false
-   Buffer Capacity Items: 781
-   Retained Items       : 769
-   Storage Bytes        : 3124
-   Min Value            : -64.0
-   Max Value            : 62.0
+### KllKllFloatsSketch Summary:
+   K                      : 300
+   Dynamic min K          : 300
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 0.896%
+   Epsilon PMF            : 1.127%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 5
+   Level 0 Sorted         : false
+   Capacity Items         : 781
+   Retained Items         : 769
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 3176
+   Compact Storage Bytes  : 3124
+   Min Item               : -64.0
+   Max Item               : 62.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (ctinyint as 
float), 300)) from alltypesorc
@@ -142,22 +157,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 300
-   min K                : 300
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 0.896%
-   Epsison PMF          : 1.127%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 5
-   Sorted               : false
-   Buffer Capacity Items: 781
-   Retained Items       : 769
-   Storage Bytes        : 3124
-   Min Value            : -64.0
-   Max Value            : 62.0
+### KllKllFloatsSketch Summary:
+   K                      : 300
+   Dynamic min K          : 300
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 0.896%
+   Epsilon PMF            : 1.127%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 5
+   Level 0 Sorted         : false
+   Capacity Items         : 781
+   Retained Items         : 769
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 3176
+   Compact Storage Bytes  : 3124
+   Min Item               : -64.0
+   Max Item               : 62.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (csmallint as 
float), 200)) from alltypesorc
@@ -169,22 +187,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9174
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 536
-   Storage Bytes        : 2196
-   Min Value            : -16379.0
-   Max Value            : 16376.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9174
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 536
+   Free Space             : 11
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2196
+   Min Item               : -16379.0
+   Max Item               : 16376.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (csmallint as 
float))) from alltypesorc
@@ -196,22 +217,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9174
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 536
-   Storage Bytes        : 2196
-   Min Value            : -16379.0
-   Max Value            : 16376.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9174
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 536
+   Free Space             : 11
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2196
+   Min Item               : -16379.0
+   Max Item               : 16376.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (csmallint as 
float), 200)) from alltypesorc
@@ -223,22 +247,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9174
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 536
-   Storage Bytes        : 2196
-   Min Value            : -16379.0
-   Max Value            : 16376.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9174
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 536
+   Free Space             : 11
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2196
+   Min Item               : -16379.0
+   Max Item               : 16376.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (csmallint as 
float))) from alltypesorc
@@ -250,22 +277,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9174
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 536
-   Storage Bytes        : 2196
-   Min Value            : -16379.0
-   Max Value            : 16376.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9174
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 536
+   Free Space             : 11
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2196
+   Min Item               : -16379.0
+   Max Item               : 16376.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cint as float), 
200)) from alltypesorc
@@ -277,22 +307,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -1.07327936E9
-   Max Value            : 1.07368058E9
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -1.07327936E9
+   Max Item               : 1.07368058E9
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cint as float))) 
from alltypesorc
@@ -304,22 +337,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -1.07327936E9
-   Max Value            : 1.07368058E9
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -1.07327936E9
+   Max Item               : 1.07368058E9
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cint as float), 
200)) from alltypesorc
@@ -331,22 +367,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -1.07327936E9
-   Max Value            : 1.07368058E9
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -1.07327936E9
+   Max Item               : 1.07368058E9
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cint as float))) 
from alltypesorc
@@ -358,22 +397,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -1.07327936E9
-   Max Value            : 1.07368058E9
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -1.07327936E9
+   Max Item               : 1.07368058E9
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cbigint as float), 
200)) from alltypesorc
@@ -385,22 +427,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -2.14731162E9
-   Max Value            : 2.14549837E9
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -2.14731162E9
+   Max Item               : 2.14549837E9
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cbigint as 
float))) from alltypesorc
@@ -412,22 +457,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -2.14731162E9
-   Max Value            : 2.14549837E9
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -2.14731162E9
+   Max Item               : 2.14549837E9
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cbigint as float), 
200)) from alltypesorc
@@ -439,22 +487,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -2.14731162E9
-   Max Value            : 2.14549837E9
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -2.14731162E9
+   Max Item               : 2.14549837E9
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cbigint as 
float))) from alltypesorc
@@ -466,22 +517,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -2.14731162E9
-   Max Value            : 2.14549837E9
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -2.14731162E9
+   Max Item               : 2.14549837E9
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cfloat, 200)) from 
alltypesorc
@@ -493,22 +547,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -64.0
-   Max Value            : 79.553
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -64.0
+   Max Item               : 79.553
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cfloat)) from alltypesorc
@@ -520,22 +577,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -64.0
-   Max Value            : 79.553
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -64.0
+   Max Item               : 79.553
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cfloat, 200)) from 
alltypesorc
@@ -547,22 +607,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -64.0
-   Max Value            : 79.553
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -64.0
+   Max Item               : 79.553
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cfloat)) from alltypesorc
@@ -574,22 +637,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9173
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 535
-   Storage Bytes        : 2192
-   Min Value            : -64.0
-   Max Value            : 79.553
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9173
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 535
+   Free Space             : 12
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2192
+   Min Item               : -64.0
+   Max Item               : 79.553
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cdouble as float), 
200)) from alltypesorc
@@ -601,22 +667,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9174
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 536
-   Storage Bytes        : 2196
-   Min Value            : -16379.0
-   Max Value            : 9763216.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9174
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 536
+   Free Space             : 11
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2196
+   Min Item               : -16379.0
+   Max Item               : 9763216.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cdouble as 
float))) from alltypesorc
@@ -628,22 +697,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9174
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 536
-   Storage Bytes        : 2196
-   Min Value            : -16379.0
-   Max Value            : 9763216.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9174
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 536
+   Free Space             : 11
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2196
+   Min Item               : -16379.0
+   Max Item               : 9763216.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cdouble as float), 
200)) from alltypesorc
@@ -655,22 +727,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9174
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 536
-   Storage Bytes        : 2196
-   Min Value            : -16379.0
-   Max Value            : 9763216.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9174
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 536
+   Free Space             : 11
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2196
+   Min Item               : -16379.0
+   Max Item               : 9763216.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (cdouble as 
float))) from alltypesorc
@@ -682,22 +757,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 9174
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 6
-   Sorted               : false
-   Buffer Capacity Items: 547
-   Retained Items       : 536
-   Storage Bytes        : 2196
-   Min Value            : -16379.0
-   Max Value            : 9763216.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 9174
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 6
+   Level 0 Sorted         : false
+   Capacity Items         : 547
+   Retained Items         : 536
+   Free Space             : 11
+   ReadOnly               : false
+   Updatable Storage Bytes: 2244
+   Compact Storage Bytes  : 2196
+   Min Item               : -16379.0
+   Max Item               : 9763216.0
 ### End sketch summary
 
 PREHOOK: query: create table test_compute_kll (key1 int, key2 int)
@@ -728,22 +806,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@test_compute_kll
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 250000
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 11
-   Sorted               : false
-   Buffer Capacity Items: 601
-   Retained Items       : 598
-   Storage Bytes        : 2464
-   Min Value            : 0.0
-   Max Value            : 498.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 250000
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 11
+   Level 0 Sorted         : false
+   Capacity Items         : 601
+   Retained Items         : 598
+   Free Space             : 3
+   ReadOnly               : false
+   Updatable Storage Bytes: 2480
+   Compact Storage Bytes  : 2464
+   Min Item               : 0.0
+   Max Item               : 498.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (key2 as float))) 
from test_compute_kll
@@ -755,22 +836,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@test_compute_kll
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 250000
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 11
-   Sorted               : false
-   Buffer Capacity Items: 601
-   Retained Items       : 598
-   Storage Bytes        : 2464
-   Min Value            : 0.0
-   Max Value            : 498.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 250000
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 11
+   Level 0 Sorted         : false
+   Capacity Items         : 601
+   Retained Items         : 598
+   Free Space             : 3
+   ReadOnly               : false
+   Updatable Storage Bytes: 2480
+   Compact Storage Bytes  : 2464
+   Min Item               : 0.0
+   Max Item               : 498.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (key1 as float))) 
from test_compute_kll
@@ -782,22 +866,25 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@test_compute_kll
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 250000
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 11
-   Sorted               : false
-   Buffer Capacity Items: 601
-   Retained Items       : 598
-   Storage Bytes        : 2464
-   Min Value            : 0.0
-   Max Value            : 498.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 250000
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 11
+   Level 0 Sorted         : false
+   Capacity Items         : 601
+   Retained Items         : 598
+   Free Space             : 3
+   ReadOnly               : false
+   Updatable Storage Bytes: 2480
+   Compact Storage Bytes  : 2464
+   Min Item               : 0.0
+   Max Item               : 498.0
 ### End sketch summary
 
 PREHOOK: query: select ds_kll_stringify(ds_kll_sketch(cast (key2 as float))) 
from test_compute_kll
@@ -809,21 +896,24 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@test_compute_kll
 #### A masked pattern was here ####
 
-### KLL sketch summary:
-   K                    : 200
-   min K                : 200
-   M                    : 8
-   N                    : 250000
-   Epsilon              : 1.329%
-   Epsison PMF          : 1.652%
-   Empty                : false
-   Estimation Mode      : true
-   Levels               : 11
-   Sorted               : false
-   Buffer Capacity Items: 601
-   Retained Items       : 598
-   Storage Bytes        : 2464
-   Min Value            : 0.0
-   Max Value            : 498.0
+### KllKllFloatsSketch Summary:
+   K                      : 200
+   Dynamic min K          : 200
+   M                      : 8
+   N                      : 250000
+   Epsilon                : 1.329%
+   Epsilon PMF            : 1.652%
+   Empty                  : false
+   Estimation Mode        : true
+   Levels                 : 11
+   Level 0 Sorted         : false
+   Capacity Items         : 601
+   Retained Items         : 598
+   Free Space             : 3
+   ReadOnly               : false
+   Updatable Storage Bytes: 2480
+   Compact Storage Bytes  : 2464
+   Min Item               : 0.0
+   Max Item               : 498.0
 ### End sketch summary
 
diff --git 
a/ql/src/test/results/clientpositive/llap/sketches_materialized_view_cume_dist.q.out
 
b/ql/src/test/results/clientpositive/llap/sketches_materialized_view_cume_dist.q.out
index 723901d0d25..b09f1fbfb2a 100644
--- 
a/ql/src/test/results/clientpositive/llap/sketches_materialized_view_cume_dist.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/sketches_materialized_view_cume_dist.q.out
@@ -177,28 +177,28 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@mv_1
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-rewrite; mv matching   1       0.0
-rewrite; mv matching   1       0.0
-rewrite; mv matching   2       0.09090909090909091
-rewrite; mv matching   3       0.13636363636363635
-rewrite; mv matching   4       0.18181818181818182
-rewrite; mv matching   5       0.22727272727272727
-rewrite; mv matching   6       0.2727272727272727
-rewrite; mv matching   6       0.2727272727272727
-rewrite; mv matching   6       0.2727272727272727
-rewrite; mv matching   7       0.4090909090909091
-rewrite; mv matching   7       0.4090909090909091
-rewrite; mv matching   8       0.5
-rewrite; mv matching   8       0.5
-rewrite; mv matching   9       0.5909090909090909
-rewrite; mv matching   9       0.5909090909090909
-rewrite; mv matching   10      0.6818181818181818
-rewrite; mv matching   10      0.6818181818181818
-rewrite; mv matching   11      0.7727272727272727
-rewrite; mv matching   12      0.8181818181818182
-rewrite; mv matching   13      0.8636363636363636
-rewrite; mv matching   14      0.9090909090909091
-rewrite; mv matching   15      0.9545454545454546
+rewrite; mv matching   1       0.09090909090909091
+rewrite; mv matching   1       0.09090909090909091
+rewrite; mv matching   2       0.13636363636363635
+rewrite; mv matching   3       0.18181818181818182
+rewrite; mv matching   4       0.22727272727272727
+rewrite; mv matching   5       0.2727272727272727
+rewrite; mv matching   6       0.4090909090909091
+rewrite; mv matching   6       0.4090909090909091
+rewrite; mv matching   6       0.4090909090909091
+rewrite; mv matching   7       0.5
+rewrite; mv matching   7       0.5
+rewrite; mv matching   8       0.5909090909090909
+rewrite; mv matching   8       0.5909090909090909
+rewrite; mv matching   9       0.6818181818181818
+rewrite; mv matching   9       0.6818181818181818
+rewrite; mv matching   10      0.7727272727272727
+rewrite; mv matching   10      0.7727272727272727
+rewrite; mv matching   11      0.8181818181818182
+rewrite; mv matching   12      0.8636363636363636
+rewrite; mv matching   13      0.9090909090909091
+rewrite; mv matching   14      0.9545454545454546
+rewrite; mv matching   15      1.0
 PREHOOK: query: explain
 select 'no rewrite; no mv matching', id, cume_dist() over (order by id) from 
sketch_input order by id
 PREHOOK: type: QUERY
@@ -466,50 +466,50 @@ POSTHOOK: query: select 'rewrite; no mv matching', id, 
cume_dist() over (order b
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-rewrite; no mv matching        1       0.0
-rewrite; no mv matching        1       0.0
-rewrite; no mv matching        1       0.0
-rewrite; no mv matching        1       0.0
-rewrite; no mv matching        2       0.09090909090909091
-rewrite; no mv matching        2       0.09090909090909091
-rewrite; no mv matching        3       0.13636363636363635
-rewrite; no mv matching        3       0.13636363636363635
-rewrite; no mv matching        4       0.18181818181818182
-rewrite; no mv matching        4       0.18181818181818182
-rewrite; no mv matching        5       0.22727272727272727
-rewrite; no mv matching        5       0.22727272727272727
-rewrite; no mv matching        6       0.2727272727272727
-rewrite; no mv matching        6       0.2727272727272727
-rewrite; no mv matching        6       0.2727272727272727
-rewrite; no mv matching        6       0.2727272727272727
-rewrite; no mv matching        6       0.2727272727272727
-rewrite; no mv matching        6       0.2727272727272727
-rewrite; no mv matching        7       0.4090909090909091
-rewrite; no mv matching        7       0.4090909090909091
-rewrite; no mv matching        7       0.4090909090909091
-rewrite; no mv matching        7       0.4090909090909091
-rewrite; no mv matching        8       0.5
-rewrite; no mv matching        8       0.5
-rewrite; no mv matching        8       0.5
-rewrite; no mv matching        8       0.5
-rewrite; no mv matching        9       0.5909090909090909
-rewrite; no mv matching        9       0.5909090909090909
-rewrite; no mv matching        9       0.5909090909090909
-rewrite; no mv matching        9       0.5909090909090909
-rewrite; no mv matching        10      0.6818181818181818
-rewrite; no mv matching        10      0.6818181818181818
-rewrite; no mv matching        10      0.6818181818181818
-rewrite; no mv matching        10      0.6818181818181818
-rewrite; no mv matching        11      0.7727272727272727
-rewrite; no mv matching        11      0.7727272727272727
-rewrite; no mv matching        12      0.8181818181818182
-rewrite; no mv matching        12      0.8181818181818182
-rewrite; no mv matching        13      0.8636363636363636
-rewrite; no mv matching        13      0.8636363636363636
-rewrite; no mv matching        14      0.9090909090909091
-rewrite; no mv matching        14      0.9090909090909091
-rewrite; no mv matching        15      0.9545454545454546
-rewrite; no mv matching        15      0.9545454545454546
+rewrite; no mv matching        1       0.09090909090909091
+rewrite; no mv matching        1       0.09090909090909091
+rewrite; no mv matching        1       0.09090909090909091
+rewrite; no mv matching        1       0.09090909090909091
+rewrite; no mv matching        2       0.13636363636363635
+rewrite; no mv matching        2       0.13636363636363635
+rewrite; no mv matching        3       0.18181818181818182
+rewrite; no mv matching        3       0.18181818181818182
+rewrite; no mv matching        4       0.22727272727272727
+rewrite; no mv matching        4       0.22727272727272727
+rewrite; no mv matching        5       0.2727272727272727
+rewrite; no mv matching        5       0.2727272727272727
+rewrite; no mv matching        6       0.4090909090909091
+rewrite; no mv matching        6       0.4090909090909091
+rewrite; no mv matching        6       0.4090909090909091
+rewrite; no mv matching        6       0.4090909090909091
+rewrite; no mv matching        6       0.4090909090909091
+rewrite; no mv matching        6       0.4090909090909091
+rewrite; no mv matching        7       0.5
+rewrite; no mv matching        7       0.5
+rewrite; no mv matching        7       0.5
+rewrite; no mv matching        7       0.5
+rewrite; no mv matching        8       0.5909090909090909
+rewrite; no mv matching        8       0.5909090909090909
+rewrite; no mv matching        8       0.5909090909090909
+rewrite; no mv matching        8       0.5909090909090909
+rewrite; no mv matching        9       0.6818181818181818
+rewrite; no mv matching        9       0.6818181818181818
+rewrite; no mv matching        9       0.6818181818181818
+rewrite; no mv matching        9       0.6818181818181818
+rewrite; no mv matching        10      0.7727272727272727
+rewrite; no mv matching        10      0.7727272727272727
+rewrite; no mv matching        10      0.7727272727272727
+rewrite; no mv matching        10      0.7727272727272727
+rewrite; no mv matching        11      0.8181818181818182
+rewrite; no mv matching        11      0.8181818181818182
+rewrite; no mv matching        12      0.8636363636363636
+rewrite; no mv matching        12      0.8636363636363636
+rewrite; no mv matching        13      0.9090909090909091
+rewrite; no mv matching        13      0.9090909090909091
+rewrite; no mv matching        14      0.9545454545454546
+rewrite; no mv matching        14      0.9545454545454546
+rewrite; no mv matching        15      1.0
+rewrite; no mv matching        15      1.0
 PREHOOK: query: explain
 alter materialized view mv_1 rebuild
 PREHOOK: type: ALTER_MATERIALIZED_VIEW_REBUILD
@@ -848,50 +848,50 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@mv_1
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-rewrite; mv matching   1       0.0
-rewrite; mv matching   1       0.0
-rewrite; mv matching   1       0.0
-rewrite; mv matching   1       0.0
-rewrite; mv matching   2       0.09090909090909091
-rewrite; mv matching   2       0.09090909090909091
-rewrite; mv matching   3       0.13636363636363635
-rewrite; mv matching   3       0.13636363636363635
-rewrite; mv matching   4       0.18181818181818182
-rewrite; mv matching   4       0.18181818181818182
-rewrite; mv matching   5       0.22727272727272727
-rewrite; mv matching   5       0.22727272727272727
-rewrite; mv matching   6       0.2727272727272727
-rewrite; mv matching   6       0.2727272727272727
-rewrite; mv matching   6       0.2727272727272727
-rewrite; mv matching   6       0.2727272727272727
-rewrite; mv matching   6       0.2727272727272727
-rewrite; mv matching   6       0.2727272727272727
-rewrite; mv matching   7       0.4090909090909091
-rewrite; mv matching   7       0.4090909090909091
-rewrite; mv matching   7       0.4090909090909091
-rewrite; mv matching   7       0.4090909090909091
-rewrite; mv matching   8       0.5
-rewrite; mv matching   8       0.5
-rewrite; mv matching   8       0.5
-rewrite; mv matching   8       0.5
-rewrite; mv matching   9       0.5909090909090909
-rewrite; mv matching   9       0.5909090909090909
-rewrite; mv matching   9       0.5909090909090909
-rewrite; mv matching   9       0.5909090909090909
-rewrite; mv matching   10      0.6818181818181818
-rewrite; mv matching   10      0.6818181818181818
-rewrite; mv matching   10      0.6818181818181818
-rewrite; mv matching   10      0.6818181818181818
-rewrite; mv matching   11      0.7727272727272727
-rewrite; mv matching   11      0.7727272727272727
-rewrite; mv matching   12      0.8181818181818182
-rewrite; mv matching   12      0.8181818181818182
-rewrite; mv matching   13      0.8636363636363636
-rewrite; mv matching   13      0.8636363636363636
-rewrite; mv matching   14      0.9090909090909091
-rewrite; mv matching   14      0.9090909090909091
-rewrite; mv matching   15      0.9545454545454546
-rewrite; mv matching   15      0.9545454545454546
+rewrite; mv matching   1       0.09090909090909091
+rewrite; mv matching   1       0.09090909090909091
+rewrite; mv matching   1       0.09090909090909091
+rewrite; mv matching   1       0.09090909090909091
+rewrite; mv matching   2       0.13636363636363635
+rewrite; mv matching   2       0.13636363636363635
+rewrite; mv matching   3       0.18181818181818182
+rewrite; mv matching   3       0.18181818181818182
+rewrite; mv matching   4       0.22727272727272727
+rewrite; mv matching   4       0.22727272727272727
+rewrite; mv matching   5       0.2727272727272727
+rewrite; mv matching   5       0.2727272727272727
+rewrite; mv matching   6       0.4090909090909091
+rewrite; mv matching   6       0.4090909090909091
+rewrite; mv matching   6       0.4090909090909091
+rewrite; mv matching   6       0.4090909090909091
+rewrite; mv matching   6       0.4090909090909091
+rewrite; mv matching   6       0.4090909090909091
+rewrite; mv matching   7       0.5
+rewrite; mv matching   7       0.5
+rewrite; mv matching   7       0.5
+rewrite; mv matching   7       0.5
+rewrite; mv matching   8       0.5909090909090909
+rewrite; mv matching   8       0.5909090909090909
+rewrite; mv matching   8       0.5909090909090909
+rewrite; mv matching   8       0.5909090909090909
+rewrite; mv matching   9       0.6818181818181818
+rewrite; mv matching   9       0.6818181818181818
+rewrite; mv matching   9       0.6818181818181818
+rewrite; mv matching   9       0.6818181818181818
+rewrite; mv matching   10      0.7727272727272727
+rewrite; mv matching   10      0.7727272727272727
+rewrite; mv matching   10      0.7727272727272727
+rewrite; mv matching   10      0.7727272727272727
+rewrite; mv matching   11      0.8181818181818182
+rewrite; mv matching   11      0.8181818181818182
+rewrite; mv matching   12      0.8636363636363636
+rewrite; mv matching   12      0.8636363636363636
+rewrite; mv matching   13      0.9090909090909091
+rewrite; mv matching   13      0.9090909090909091
+rewrite; mv matching   14      0.9545454545454546
+rewrite; mv matching   14      0.9545454545454546
+rewrite; mv matching   15      1.0
+rewrite; mv matching   15      1.0
 PREHOOK: query: explain
 select 'rewrite; mv matching', category, id, cume_dist() over (partition by 
category order by id) from sketch_input order by category,id
 PREHOOK: type: QUERY
@@ -1002,50 +1002,50 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@mv_1
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-rewrite; mv matching   a       1       0.0
-rewrite; mv matching   a       1       0.0
-rewrite; mv matching   a       1       0.0
-rewrite; mv matching   a       1       0.0
-rewrite; mv matching   a       2       0.18181818181818182
-rewrite; mv matching   a       2       0.18181818181818182
-rewrite; mv matching   a       3       0.2727272727272727
-rewrite; mv matching   a       3       0.2727272727272727
-rewrite; mv matching   a       4       0.36363636363636365
-rewrite; mv matching   a       4       0.36363636363636365
-rewrite; mv matching   a       5       0.45454545454545453
-rewrite; mv matching   a       5       0.45454545454545453
-rewrite; mv matching   a       6       0.5454545454545454
-rewrite; mv matching   a       6       0.5454545454545454
-rewrite; mv matching   a       7       0.6363636363636364
-rewrite; mv matching   a       7       0.6363636363636364
-rewrite; mv matching   a       8       0.7272727272727273
-rewrite; mv matching   a       8       0.7272727272727273
-rewrite; mv matching   a       9       0.8181818181818182
-rewrite; mv matching   a       9       0.8181818181818182
-rewrite; mv matching   a       10      0.9090909090909091
-rewrite; mv matching   a       10      0.9090909090909091
-rewrite; mv matching   b       6       0.0
-rewrite; mv matching   b       6       0.0
-rewrite; mv matching   b       6       0.0
-rewrite; mv matching   b       6       0.0
-rewrite; mv matching   b       7       0.18181818181818182
-rewrite; mv matching   b       7       0.18181818181818182
-rewrite; mv matching   b       8       0.2727272727272727
-rewrite; mv matching   b       8       0.2727272727272727
-rewrite; mv matching   b       9       0.36363636363636365
-rewrite; mv matching   b       9       0.36363636363636365
-rewrite; mv matching   b       10      0.45454545454545453
-rewrite; mv matching   b       10      0.45454545454545453
-rewrite; mv matching   b       11      0.5454545454545454
-rewrite; mv matching   b       11      0.5454545454545454
-rewrite; mv matching   b       12      0.6363636363636364
-rewrite; mv matching   b       12      0.6363636363636364
-rewrite; mv matching   b       13      0.7272727272727273
-rewrite; mv matching   b       13      0.7272727272727273
-rewrite; mv matching   b       14      0.8181818181818182
-rewrite; mv matching   b       14      0.8181818181818182
-rewrite; mv matching   b       15      0.9090909090909091
-rewrite; mv matching   b       15      0.9090909090909091
+rewrite; mv matching   a       1       0.18181818181818182
+rewrite; mv matching   a       1       0.18181818181818182
+rewrite; mv matching   a       1       0.18181818181818182
+rewrite; mv matching   a       1       0.18181818181818182
+rewrite; mv matching   a       2       0.2727272727272727
+rewrite; mv matching   a       2       0.2727272727272727
+rewrite; mv matching   a       3       0.36363636363636365
+rewrite; mv matching   a       3       0.36363636363636365
+rewrite; mv matching   a       4       0.45454545454545453
+rewrite; mv matching   a       4       0.45454545454545453
+rewrite; mv matching   a       5       0.5454545454545454
+rewrite; mv matching   a       5       0.5454545454545454
+rewrite; mv matching   a       6       0.6363636363636364
+rewrite; mv matching   a       6       0.6363636363636364
+rewrite; mv matching   a       7       0.7272727272727273
+rewrite; mv matching   a       7       0.7272727272727273
+rewrite; mv matching   a       8       0.8181818181818182
+rewrite; mv matching   a       8       0.8181818181818182
+rewrite; mv matching   a       9       0.9090909090909091
+rewrite; mv matching   a       9       0.9090909090909091
+rewrite; mv matching   a       10      1.0
+rewrite; mv matching   a       10      1.0
+rewrite; mv matching   b       6       0.18181818181818182
+rewrite; mv matching   b       6       0.18181818181818182
+rewrite; mv matching   b       6       0.18181818181818182
+rewrite; mv matching   b       6       0.18181818181818182
+rewrite; mv matching   b       7       0.2727272727272727
+rewrite; mv matching   b       7       0.2727272727272727
+rewrite; mv matching   b       8       0.36363636363636365
+rewrite; mv matching   b       8       0.36363636363636365
+rewrite; mv matching   b       9       0.45454545454545453
+rewrite; mv matching   b       9       0.45454545454545453
+rewrite; mv matching   b       10      0.5454545454545454
+rewrite; mv matching   b       10      0.5454545454545454
+rewrite; mv matching   b       11      0.6363636363636364
+rewrite; mv matching   b       11      0.6363636363636364
+rewrite; mv matching   b       12      0.7272727272727273
+rewrite; mv matching   b       12      0.7272727272727273
+rewrite; mv matching   b       13      0.8181818181818182
+rewrite; mv matching   b       13      0.8181818181818182
+rewrite; mv matching   b       14      0.9090909090909091
+rewrite; mv matching   b       14      0.9090909090909091
+rewrite; mv matching   b       15      1.0
+rewrite; mv matching   b       15      1.0
 PREHOOK: query: drop materialized view mv_1
 PREHOOK: type: DROP_MATERIALIZED_VIEW
 PREHOOK: Input: default@mv_1
diff --git 
a/ql/src/test/results/clientpositive/llap/sketches_materialized_view_ntile.q.out
 
b/ql/src/test/results/clientpositive/llap/sketches_materialized_view_ntile.q.out
index 57807528e42..eed5ef3f6ae 100644
--- 
a/ql/src/test/results/clientpositive/llap/sketches_materialized_view_ntile.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/sketches_materialized_view_ntile.q.out
@@ -184,18 +184,18 @@ rewrite; mv matching      1       1
 rewrite; mv matching   2       1
 rewrite; mv matching   3       1
 rewrite; mv matching   4       1
-rewrite; mv matching   5       1
+rewrite; mv matching   5       2
 rewrite; mv matching   6       2
 rewrite; mv matching   6       2
 rewrite; mv matching   6       2
 rewrite; mv matching   7       2
 rewrite; mv matching   7       2
-rewrite; mv matching   8       2
-rewrite; mv matching   8       2
+rewrite; mv matching   8       3
+rewrite; mv matching   8       3
 rewrite; mv matching   9       3
 rewrite; mv matching   9       3
-rewrite; mv matching   10      3
-rewrite; mv matching   10      3
+rewrite; mv matching   10      4
+rewrite; mv matching   10      4
 rewrite; mv matching   11      4
 rewrite; mv matching   12      4
 rewrite; mv matching   13      4
@@ -480,8 +480,8 @@ rewrite; no mv matching     3       1
 rewrite; no mv matching        3       1
 rewrite; no mv matching        4       1
 rewrite; no mv matching        4       1
-rewrite; no mv matching        5       1
-rewrite; no mv matching        5       1
+rewrite; no mv matching        5       2
+rewrite; no mv matching        5       2
 rewrite; no mv matching        6       2
 rewrite; no mv matching        6       2
 rewrite; no mv matching        6       2
@@ -492,18 +492,18 @@ rewrite; no mv matching   7       2
 rewrite; no mv matching        7       2
 rewrite; no mv matching        7       2
 rewrite; no mv matching        7       2
-rewrite; no mv matching        8       2
-rewrite; no mv matching        8       2
-rewrite; no mv matching        8       2
-rewrite; no mv matching        8       2
+rewrite; no mv matching        8       3
+rewrite; no mv matching        8       3
+rewrite; no mv matching        8       3
+rewrite; no mv matching        8       3
 rewrite; no mv matching        9       3
 rewrite; no mv matching        9       3
 rewrite; no mv matching        9       3
 rewrite; no mv matching        9       3
-rewrite; no mv matching        10      3
-rewrite; no mv matching        10      3
-rewrite; no mv matching        10      3
-rewrite; no mv matching        10      3
+rewrite; no mv matching        10      4
+rewrite; no mv matching        10      4
+rewrite; no mv matching        10      4
+rewrite; no mv matching        10      4
 rewrite; no mv matching        11      4
 rewrite; no mv matching        11      4
 rewrite; no mv matching        12      4
@@ -864,8 +864,8 @@ rewrite; mv matching        3       1
 rewrite; mv matching   3       1
 rewrite; mv matching   4       1
 rewrite; mv matching   4       1
-rewrite; mv matching   5       1
-rewrite; mv matching   5       1
+rewrite; mv matching   5       2
+rewrite; mv matching   5       2
 rewrite; mv matching   6       2
 rewrite; mv matching   6       2
 rewrite; mv matching   6       2
@@ -876,18 +876,18 @@ rewrite; mv matching      7       2
 rewrite; mv matching   7       2
 rewrite; mv matching   7       2
 rewrite; mv matching   7       2
-rewrite; mv matching   8       2
-rewrite; mv matching   8       2
-rewrite; mv matching   8       2
-rewrite; mv matching   8       2
+rewrite; mv matching   8       3
+rewrite; mv matching   8       3
+rewrite; mv matching   8       3
+rewrite; mv matching   8       3
 rewrite; mv matching   9       3
 rewrite; mv matching   9       3
 rewrite; mv matching   9       3
 rewrite; mv matching   9       3
-rewrite; mv matching   10      3
-rewrite; mv matching   10      3
-rewrite; mv matching   10      3
-rewrite; mv matching   10      3
+rewrite; mv matching   10      4
+rewrite; mv matching   10      4
+rewrite; mv matching   10      4
+rewrite; mv matching   10      4
 rewrite; mv matching   11      4
 rewrite; mv matching   11      4
 rewrite; mv matching   12      4
@@ -1014,20 +1014,20 @@ rewrite; mv matching    a       1       1
 rewrite; mv matching   a       1       1
 rewrite; mv matching   a       1       1
 rewrite; mv matching   a       1       1
-rewrite; mv matching   a       2       1
-rewrite; mv matching   a       2       1
+rewrite; mv matching   a       2       2
+rewrite; mv matching   a       2       2
 rewrite; mv matching   a       3       2
 rewrite; mv matching   a       3       2
 rewrite; mv matching   a       4       2
 rewrite; mv matching   a       4       2
-rewrite; mv matching   a       5       2
-rewrite; mv matching   a       5       2
+rewrite; mv matching   a       5       3
+rewrite; mv matching   a       5       3
 rewrite; mv matching   a       6       3
 rewrite; mv matching   a       6       3
 rewrite; mv matching   a       7       3
 rewrite; mv matching   a       7       3
-rewrite; mv matching   a       8       3
-rewrite; mv matching   a       8       3
+rewrite; mv matching   a       8       4
+rewrite; mv matching   a       8       4
 rewrite; mv matching   a       9       4
 rewrite; mv matching   a       9       4
 rewrite; mv matching   a       10      4
@@ -1036,20 +1036,20 @@ rewrite; mv matching    b       6       1
 rewrite; mv matching   b       6       1
 rewrite; mv matching   b       6       1
 rewrite; mv matching   b       6       1
-rewrite; mv matching   b       7       1
-rewrite; mv matching   b       7       1
+rewrite; mv matching   b       7       2
+rewrite; mv matching   b       7       2
 rewrite; mv matching   b       8       2
 rewrite; mv matching   b       8       2
 rewrite; mv matching   b       9       2
 rewrite; mv matching   b       9       2
-rewrite; mv matching   b       10      2
-rewrite; mv matching   b       10      2
+rewrite; mv matching   b       10      3
+rewrite; mv matching   b       10      3
 rewrite; mv matching   b       11      3
 rewrite; mv matching   b       11      3
 rewrite; mv matching   b       12      3
 rewrite; mv matching   b       12      3
-rewrite; mv matching   b       13      3
-rewrite; mv matching   b       13      3
+rewrite; mv matching   b       13      4
+rewrite; mv matching   b       13      4
 rewrite; mv matching   b       14      4
 rewrite; mv matching   b       14      4
 rewrite; mv matching   b       15      4
diff --git 
a/ql/src/test/results/clientpositive/llap/sketches_materialized_view_rank.q.out 
b/ql/src/test/results/clientpositive/llap/sketches_materialized_view_rank.q.out
index 26a22927882..bfc3ac7dfd6 100644
--- 
a/ql/src/test/results/clientpositive/llap/sketches_materialized_view_rank.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/sketches_materialized_view_rank.q.out
@@ -179,27 +179,27 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@mv_1
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-rewrite; mv matching   1       1
-rewrite; mv matching   1       1
-rewrite; mv matching   2       3
-rewrite; mv matching   3       4
-rewrite; mv matching   4       5
-rewrite; mv matching   5       6
-rewrite; mv matching   6       7
-rewrite; mv matching   6       7
-rewrite; mv matching   6       7
-rewrite; mv matching   7       10
-rewrite; mv matching   7       10
-rewrite; mv matching   8       12
-rewrite; mv matching   8       12
-rewrite; mv matching   9       14
-rewrite; mv matching   9       14
-rewrite; mv matching   10      16
-rewrite; mv matching   10      16
-rewrite; mv matching   11      18
-rewrite; mv matching   12      19
-rewrite; mv matching   13      20
-rewrite; mv matching   14      21
+rewrite; mv matching   1       3
+rewrite; mv matching   1       3
+rewrite; mv matching   2       4
+rewrite; mv matching   3       5
+rewrite; mv matching   4       6
+rewrite; mv matching   5       7
+rewrite; mv matching   6       10
+rewrite; mv matching   6       10
+rewrite; mv matching   6       10
+rewrite; mv matching   7       12
+rewrite; mv matching   7       12
+rewrite; mv matching   8       14
+rewrite; mv matching   8       14
+rewrite; mv matching   9       16
+rewrite; mv matching   9       16
+rewrite; mv matching   10      18
+rewrite; mv matching   10      18
+rewrite; mv matching   11      19
+rewrite; mv matching   12      20
+rewrite; mv matching   13      21
+rewrite; mv matching   14      22
 rewrite; mv matching   15      22
 PREHOOK: query: explain
 select 'no rewrite; no mv matching', id, rank() over (order by id) from 
sketch_input order by id
@@ -470,50 +470,50 @@ POSTHOOK: query: select 'rewrite; no mv matching', id, 
rank() over (order by id)
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-rewrite; no mv matching        1       1
-rewrite; no mv matching        1       1
-rewrite; no mv matching        1       1
-rewrite; no mv matching        1       1
-rewrite; no mv matching        2       5
-rewrite; no mv matching        2       5
-rewrite; no mv matching        3       7
-rewrite; no mv matching        3       7
-rewrite; no mv matching        4       9
-rewrite; no mv matching        4       9
-rewrite; no mv matching        5       11
-rewrite; no mv matching        5       11
-rewrite; no mv matching        6       13
-rewrite; no mv matching        6       13
-rewrite; no mv matching        6       13
-rewrite; no mv matching        6       13
-rewrite; no mv matching        6       13
-rewrite; no mv matching        6       13
-rewrite; no mv matching        7       19
-rewrite; no mv matching        7       19
-rewrite; no mv matching        7       19
-rewrite; no mv matching        7       19
-rewrite; no mv matching        8       23
-rewrite; no mv matching        8       23
-rewrite; no mv matching        8       23
-rewrite; no mv matching        8       23
-rewrite; no mv matching        9       27
-rewrite; no mv matching        9       27
-rewrite; no mv matching        9       27
-rewrite; no mv matching        9       27
-rewrite; no mv matching        10      31
-rewrite; no mv matching        10      31
-rewrite; no mv matching        10      31
-rewrite; no mv matching        10      31
-rewrite; no mv matching        11      35
-rewrite; no mv matching        11      35
-rewrite; no mv matching        12      37
-rewrite; no mv matching        12      37
-rewrite; no mv matching        13      39
-rewrite; no mv matching        13      39
-rewrite; no mv matching        14      41
-rewrite; no mv matching        14      41
-rewrite; no mv matching        15      43
-rewrite; no mv matching        15      43
+rewrite; no mv matching        1       5
+rewrite; no mv matching        1       5
+rewrite; no mv matching        1       5
+rewrite; no mv matching        1       5
+rewrite; no mv matching        2       7
+rewrite; no mv matching        2       7
+rewrite; no mv matching        3       9
+rewrite; no mv matching        3       9
+rewrite; no mv matching        4       11
+rewrite; no mv matching        4       11
+rewrite; no mv matching        5       13
+rewrite; no mv matching        5       13
+rewrite; no mv matching        6       19
+rewrite; no mv matching        6       19
+rewrite; no mv matching        6       19
+rewrite; no mv matching        6       19
+rewrite; no mv matching        6       19
+rewrite; no mv matching        6       19
+rewrite; no mv matching        7       23
+rewrite; no mv matching        7       23
+rewrite; no mv matching        7       23
+rewrite; no mv matching        7       23
+rewrite; no mv matching        8       27
+rewrite; no mv matching        8       27
+rewrite; no mv matching        8       27
+rewrite; no mv matching        8       27
+rewrite; no mv matching        9       31
+rewrite; no mv matching        9       31
+rewrite; no mv matching        9       31
+rewrite; no mv matching        9       31
+rewrite; no mv matching        10      35
+rewrite; no mv matching        10      35
+rewrite; no mv matching        10      35
+rewrite; no mv matching        10      35
+rewrite; no mv matching        11      37
+rewrite; no mv matching        11      37
+rewrite; no mv matching        12      39
+rewrite; no mv matching        12      39
+rewrite; no mv matching        13      41
+rewrite; no mv matching        13      41
+rewrite; no mv matching        14      43
+rewrite; no mv matching        14      43
+rewrite; no mv matching        15      44
+rewrite; no mv matching        15      44
 PREHOOK: query: explain
 alter materialized view mv_1 rebuild
 PREHOOK: type: ALTER_MATERIALIZED_VIEW_REBUILD
@@ -854,50 +854,50 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@mv_1
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-rewrite; mv matching   1       1
-rewrite; mv matching   1       1
-rewrite; mv matching   1       1
-rewrite; mv matching   1       1
-rewrite; mv matching   2       5
-rewrite; mv matching   2       5
-rewrite; mv matching   3       7
-rewrite; mv matching   3       7
-rewrite; mv matching   4       9
-rewrite; mv matching   4       9
-rewrite; mv matching   5       11
-rewrite; mv matching   5       11
-rewrite; mv matching   6       13
-rewrite; mv matching   6       13
-rewrite; mv matching   6       13
-rewrite; mv matching   6       13
-rewrite; mv matching   6       13
-rewrite; mv matching   6       13
-rewrite; mv matching   7       19
-rewrite; mv matching   7       19
-rewrite; mv matching   7       19
-rewrite; mv matching   7       19
-rewrite; mv matching   8       23
-rewrite; mv matching   8       23
-rewrite; mv matching   8       23
-rewrite; mv matching   8       23
-rewrite; mv matching   9       27
-rewrite; mv matching   9       27
-rewrite; mv matching   9       27
-rewrite; mv matching   9       27
-rewrite; mv matching   10      31
-rewrite; mv matching   10      31
-rewrite; mv matching   10      31
-rewrite; mv matching   10      31
-rewrite; mv matching   11      35
-rewrite; mv matching   11      35
-rewrite; mv matching   12      37
-rewrite; mv matching   12      37
-rewrite; mv matching   13      39
-rewrite; mv matching   13      39
-rewrite; mv matching   14      41
-rewrite; mv matching   14      41
-rewrite; mv matching   15      43
-rewrite; mv matching   15      43
+rewrite; mv matching   1       5
+rewrite; mv matching   1       5
+rewrite; mv matching   1       5
+rewrite; mv matching   1       5
+rewrite; mv matching   2       7
+rewrite; mv matching   2       7
+rewrite; mv matching   3       9
+rewrite; mv matching   3       9
+rewrite; mv matching   4       11
+rewrite; mv matching   4       11
+rewrite; mv matching   5       13
+rewrite; mv matching   5       13
+rewrite; mv matching   6       19
+rewrite; mv matching   6       19
+rewrite; mv matching   6       19
+rewrite; mv matching   6       19
+rewrite; mv matching   6       19
+rewrite; mv matching   6       19
+rewrite; mv matching   7       23
+rewrite; mv matching   7       23
+rewrite; mv matching   7       23
+rewrite; mv matching   7       23
+rewrite; mv matching   8       27
+rewrite; mv matching   8       27
+rewrite; mv matching   8       27
+rewrite; mv matching   8       27
+rewrite; mv matching   9       31
+rewrite; mv matching   9       31
+rewrite; mv matching   9       31
+rewrite; mv matching   9       31
+rewrite; mv matching   10      35
+rewrite; mv matching   10      35
+rewrite; mv matching   10      35
+rewrite; mv matching   10      35
+rewrite; mv matching   11      37
+rewrite; mv matching   11      37
+rewrite; mv matching   12      39
+rewrite; mv matching   12      39
+rewrite; mv matching   13      41
+rewrite; mv matching   13      41
+rewrite; mv matching   14      43
+rewrite; mv matching   14      43
+rewrite; mv matching   15      44
+rewrite; mv matching   15      44
 WARNING: Comparing bigint and double may result in loss of information.
 PREHOOK: query: explain
 select 'rewrite; mv matching', category, id, rank() over (partition by 
category order by id) from sketch_input order by category,id
@@ -1014,50 +1014,50 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@mv_1
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-rewrite; mv matching   a       1       1
-rewrite; mv matching   a       1       1
-rewrite; mv matching   a       1       1
-rewrite; mv matching   a       1       1
-rewrite; mv matching   a       2       5
-rewrite; mv matching   a       2       5
-rewrite; mv matching   a       3       7
-rewrite; mv matching   a       3       7
-rewrite; mv matching   a       4       9
-rewrite; mv matching   a       4       9
-rewrite; mv matching   a       5       11
-rewrite; mv matching   a       5       11
-rewrite; mv matching   a       6       13
-rewrite; mv matching   a       6       13
-rewrite; mv matching   a       7       15
-rewrite; mv matching   a       7       15
-rewrite; mv matching   a       8       17
-rewrite; mv matching   a       8       17
-rewrite; mv matching   a       9       19
-rewrite; mv matching   a       9       19
-rewrite; mv matching   a       10      21
-rewrite; mv matching   a       10      21
-rewrite; mv matching   b       6       1
-rewrite; mv matching   b       6       1
-rewrite; mv matching   b       6       1
-rewrite; mv matching   b       6       1
-rewrite; mv matching   b       7       5
-rewrite; mv matching   b       7       5
-rewrite; mv matching   b       8       7
-rewrite; mv matching   b       8       7
-rewrite; mv matching   b       9       9
-rewrite; mv matching   b       9       9
-rewrite; mv matching   b       10      11
-rewrite; mv matching   b       10      11
-rewrite; mv matching   b       11      13
-rewrite; mv matching   b       11      13
-rewrite; mv matching   b       12      15
-rewrite; mv matching   b       12      15
-rewrite; mv matching   b       13      17
-rewrite; mv matching   b       13      17
-rewrite; mv matching   b       14      19
-rewrite; mv matching   b       14      19
-rewrite; mv matching   b       15      21
-rewrite; mv matching   b       15      21
+rewrite; mv matching   a       1       5
+rewrite; mv matching   a       1       5
+rewrite; mv matching   a       1       5
+rewrite; mv matching   a       1       5
+rewrite; mv matching   a       2       7
+rewrite; mv matching   a       2       7
+rewrite; mv matching   a       3       9
+rewrite; mv matching   a       3       9
+rewrite; mv matching   a       4       11
+rewrite; mv matching   a       4       11
+rewrite; mv matching   a       5       13
+rewrite; mv matching   a       5       13
+rewrite; mv matching   a       6       15
+rewrite; mv matching   a       6       15
+rewrite; mv matching   a       7       17
+rewrite; mv matching   a       7       17
+rewrite; mv matching   a       8       19
+rewrite; mv matching   a       8       19
+rewrite; mv matching   a       9       21
+rewrite; mv matching   a       9       21
+rewrite; mv matching   a       10      22
+rewrite; mv matching   a       10      22
+rewrite; mv matching   b       6       5
+rewrite; mv matching   b       6       5
+rewrite; mv matching   b       6       5
+rewrite; mv matching   b       6       5
+rewrite; mv matching   b       7       7
+rewrite; mv matching   b       7       7
+rewrite; mv matching   b       8       9
+rewrite; mv matching   b       8       9
+rewrite; mv matching   b       9       11
+rewrite; mv matching   b       9       11
+rewrite; mv matching   b       10      13
+rewrite; mv matching   b       10      13
+rewrite; mv matching   b       11      15
+rewrite; mv matching   b       11      15
+rewrite; mv matching   b       12      17
+rewrite; mv matching   b       12      17
+rewrite; mv matching   b       13      19
+rewrite; mv matching   b       13      19
+rewrite; mv matching   b       14      21
+rewrite; mv matching   b       14      21
+rewrite; mv matching   b       15      22
+rewrite; mv matching   b       15      22
 PREHOOK: query: drop materialized view mv_1
 PREHOOK: type: DROP_MATERIALIZED_VIEW
 PREHOOK: Input: default@mv_1
diff --git 
a/ql/src/test/results/clientpositive/llap/sketches_rewrite_cume_dist.q.out 
b/ql/src/test/results/clientpositive/llap/sketches_rewrite_cume_dist.q.out
index 288359372fc..cc2a0bbb2ee 100644
--- a/ql/src/test/results/clientpositive/llap/sketches_rewrite_cume_dist.q.out
+++ b/ql/src/test/results/clientpositive/llap/sketches_rewrite_cume_dist.q.out
@@ -69,28 +69,28 @@ order by id
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      0.09090909090909091     0.0
-1      0.09090909090909091     0.0
-2      0.13636363636363635     0.09090909090909091
-3      0.18181818181818182     0.13636363636363635
-4      0.22727272727272727     0.18181818181818182
-5      0.2727272727272727      0.22727272727272727
-6      0.4090909090909091      0.2727272727272727
-6      0.4090909090909091      0.2727272727272727
-6      0.4090909090909091      0.2727272727272727
-7      0.5     0.4090909090909091
-7      0.5     0.4090909090909091
-8      0.5909090909090909      0.5
-8      0.5909090909090909      0.5
-9      0.6818181818181818      0.5909090909090909
-9      0.6818181818181818      0.5909090909090909
-10     0.7727272727272727      0.6818181818181818
-10     0.7727272727272727      0.6818181818181818
-11     0.8181818181818182      0.7727272727272727
-12     0.8636363636363636      0.8181818181818182
-13     0.9090909090909091      0.8636363636363636
-14     0.9545454545454546      0.9090909090909091
-15     1.0     0.9545454545454546
+1      0.09090909090909091     0.09090909090909091
+1      0.09090909090909091     0.09090909090909091
+2      0.13636363636363635     0.13636363636363635
+3      0.18181818181818182     0.18181818181818182
+4      0.22727272727272727     0.22727272727272727
+5      0.2727272727272727      0.2727272727272727
+6      0.4090909090909091      0.4090909090909091
+6      0.4090909090909091      0.4090909090909091
+6      0.4090909090909091      0.4090909090909091
+7      0.5     0.5
+7      0.5     0.5
+8      0.5909090909090909      0.5909090909090909
+8      0.5909090909090909      0.5909090909090909
+9      0.6818181818181818      0.6818181818181818
+9      0.6818181818181818      0.6818181818181818
+10     0.7727272727272727      0.7727272727272727
+10     0.7727272727272727      0.7727272727272727
+11     0.8181818181818182      0.8181818181818182
+12     0.8636363636363636      0.8636363636363636
+13     0.9090909090909091      0.9090909090909091
+14     0.9545454545454546      0.9545454545454546
+15     1.0     1.0
 Warning: Shuffle Join MERGEJOIN[17][tables = [$hdt$_0, $hdt$_1]] in Stage 
'Reducer 2' is a cross product
 PREHOOK: query: explain
 select id,'rewrite',cume_dist() over (order by id) from sketch_input order by 
id
@@ -219,28 +219,28 @@ POSTHOOK: query: select id,'rewrite',cume_dist() over 
(order by id) from sketch_
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      rewrite 0.0
-1      rewrite 0.0
-2      rewrite 0.09090909090909091
-3      rewrite 0.13636363636363635
-4      rewrite 0.18181818181818182
-5      rewrite 0.22727272727272727
-6      rewrite 0.2727272727272727
-6      rewrite 0.2727272727272727
-6      rewrite 0.2727272727272727
-7      rewrite 0.4090909090909091
-7      rewrite 0.4090909090909091
-8      rewrite 0.5
-8      rewrite 0.5
-9      rewrite 0.5909090909090909
-9      rewrite 0.5909090909090909
-10     rewrite 0.6818181818181818
-10     rewrite 0.6818181818181818
-11     rewrite 0.7727272727272727
-12     rewrite 0.8181818181818182
-13     rewrite 0.8636363636363636
-14     rewrite 0.9090909090909091
-15     rewrite 0.9545454545454546
+1      rewrite 0.09090909090909091
+1      rewrite 0.09090909090909091
+2      rewrite 0.13636363636363635
+3      rewrite 0.18181818181818182
+4      rewrite 0.22727272727272727
+5      rewrite 0.2727272727272727
+6      rewrite 0.4090909090909091
+6      rewrite 0.4090909090909091
+6      rewrite 0.4090909090909091
+7      rewrite 0.5
+7      rewrite 0.5
+8      rewrite 0.5909090909090909
+8      rewrite 0.5909090909090909
+9      rewrite 0.6818181818181818
+9      rewrite 0.6818181818181818
+10     rewrite 0.7727272727272727
+10     rewrite 0.7727272727272727
+11     rewrite 0.8181818181818182
+12     rewrite 0.8636363636363636
+13     rewrite 0.9090909090909091
+14     rewrite 0.9545454545454546
+15     rewrite 1.0
 Warning: Shuffle Join MERGEJOIN[21][tables = [$hdt$_0, $hdt$_1]] in Stage 
'Reducer 2' is a cross product
 PREHOOK: query: explain
 select id,'rewrite',count(id) over ()*cume_dist() over (order by id) from 
sketch_input order by id
@@ -404,28 +404,28 @@ POSTHOOK: query: select id,'rewrite',count(id) over 
()*cume_dist() over (order b
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      rewrite 0.0
-1      rewrite 0.0
-2      rewrite 2.0
-3      rewrite 3.0
-4      rewrite 4.0
-5      rewrite 5.0
-6      rewrite 6.0
-6      rewrite 6.0
-6      rewrite 6.0
-7      rewrite 9.0
-7      rewrite 9.0
-8      rewrite 11.0
-8      rewrite 11.0
-9      rewrite 13.0
-9      rewrite 13.0
-10     rewrite 14.999999999999998
-10     rewrite 14.999999999999998
-11     rewrite 17.0
-12     rewrite 18.0
-13     rewrite 19.0
-14     rewrite 20.0
-15     rewrite 21.0
+1      rewrite 2.0
+1      rewrite 2.0
+2      rewrite 3.0
+3      rewrite 4.0
+4      rewrite 5.0
+5      rewrite 6.0
+6      rewrite 9.0
+6      rewrite 9.0
+6      rewrite 9.0
+7      rewrite 11.0
+7      rewrite 11.0
+8      rewrite 13.0
+8      rewrite 13.0
+9      rewrite 14.999999999999998
+9      rewrite 14.999999999999998
+10     rewrite 17.0
+10     rewrite 17.0
+11     rewrite 18.0
+12     rewrite 19.0
+13     rewrite 20.0
+14     rewrite 21.0
+15     rewrite 22.0
 PREHOOK: query: insert into sketch_input values (null,'a'),(null,'b')
 PREHOOK: type: QUERY
 PREHOOK: Input: _dummy_database@_dummy_table
@@ -566,28 +566,28 @@ POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
 NULL   rewrite 0.0
 NULL   rewrite 0.0
-1      rewrite 0.0
-1      rewrite 0.0
-2      rewrite 0.09090909090909091
-3      rewrite 0.13636363636363635
-4      rewrite 0.18181818181818182
-5      rewrite 0.22727272727272727
-6      rewrite 0.2727272727272727
-6      rewrite 0.2727272727272727
-6      rewrite 0.2727272727272727
-7      rewrite 0.4090909090909091
-7      rewrite 0.4090909090909091
-8      rewrite 0.5
-8      rewrite 0.5
-9      rewrite 0.5909090909090909
-9      rewrite 0.5909090909090909
-10     rewrite 0.6818181818181818
-10     rewrite 0.6818181818181818
-11     rewrite 0.7727272727272727
-12     rewrite 0.8181818181818182
-13     rewrite 0.8636363636363636
-14     rewrite 0.9090909090909091
-15     rewrite 0.9545454545454546
+1      rewrite 0.09090909090909091
+1      rewrite 0.09090909090909091
+2      rewrite 0.13636363636363635
+3      rewrite 0.18181818181818182
+4      rewrite 0.22727272727272727
+5      rewrite 0.2727272727272727
+6      rewrite 0.4090909090909091
+6      rewrite 0.4090909090909091
+6      rewrite 0.4090909090909091
+7      rewrite 0.5
+7      rewrite 0.5
+8      rewrite 0.5909090909090909
+8      rewrite 0.5909090909090909
+9      rewrite 0.6818181818181818
+9      rewrite 0.6818181818181818
+10     rewrite 0.7727272727272727
+10     rewrite 0.7727272727272727
+11     rewrite 0.8181818181818182
+12     rewrite 0.8636363636363636
+13     rewrite 0.9090909090909091
+14     rewrite 0.9545454545454546
+15     rewrite 1.0
 Warning: Shuffle Join MERGEJOIN[17][tables = [$hdt$_0, $hdt$_1]] in Stage 
'Reducer 2' is a cross product
 PREHOOK: query: explain
 select id,'rewrite',cume_dist() over (order by id nulls last) from 
sketch_input order by id nulls last
@@ -716,28 +716,28 @@ POSTHOOK: query: select id,'rewrite',cume_dist() over 
(order by id nulls last) f
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      rewrite 0.0
-1      rewrite 0.0
-2      rewrite 0.09090909090909091
-3      rewrite 0.13636363636363635
-4      rewrite 0.18181818181818182
-5      rewrite 0.22727272727272727
-6      rewrite 0.2727272727272727
-6      rewrite 0.2727272727272727
-6      rewrite 0.2727272727272727
-7      rewrite 0.4090909090909091
-7      rewrite 0.4090909090909091
-8      rewrite 0.5
-8      rewrite 0.5
-9      rewrite 0.5909090909090909
-9      rewrite 0.5909090909090909
-10     rewrite 0.6818181818181818
-10     rewrite 0.6818181818181818
-11     rewrite 0.7727272727272727
-12     rewrite 0.8181818181818182
-13     rewrite 0.8636363636363636
-14     rewrite 0.9090909090909091
-15     rewrite 0.9545454545454546
+1      rewrite 0.09090909090909091
+1      rewrite 0.09090909090909091
+2      rewrite 0.13636363636363635
+3      rewrite 0.18181818181818182
+4      rewrite 0.22727272727272727
+5      rewrite 0.2727272727272727
+6      rewrite 0.4090909090909091
+6      rewrite 0.4090909090909091
+6      rewrite 0.4090909090909091
+7      rewrite 0.5
+7      rewrite 0.5
+8      rewrite 0.5909090909090909
+8      rewrite 0.5909090909090909
+9      rewrite 0.6818181818181818
+9      rewrite 0.6818181818181818
+10     rewrite 0.7727272727272727
+10     rewrite 0.7727272727272727
+11     rewrite 0.8181818181818182
+12     rewrite 0.8636363636363636
+13     rewrite 0.9090909090909091
+14     rewrite 0.9545454545454546
+15     rewrite 1.0
 NULL   rewrite 1.0
 NULL   rewrite 1.0
 Warning: Shuffle Join MERGEJOIN[16][tables = [$hdt$_0, $hdt$_1]] in Stage 
'Reducer 2' is a cross product
@@ -749,27 +749,27 @@ POSTHOOK: query: select id,cume_dist() over (order by id) 
from sketch_input orde
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      0.0
-1      0.0
-2      0.09090909090909091
-3      0.13636363636363635
-4      0.18181818181818182
-5      0.22727272727272727
-6      0.2727272727272727
-6      0.2727272727272727
-6      0.2727272727272727
-7      0.4090909090909091
-7      0.4090909090909091
-8      0.5
-8      0.5
-9      0.5909090909090909
-9      0.5909090909090909
-10     0.6818181818181818
-10     0.6818181818181818
-11     0.7727272727272727
-12     0.8181818181818182
-13     0.8636363636363636
-14     0.9090909090909091
-15     0.9545454545454546
+1      0.09090909090909091
+1      0.09090909090909091
+2      0.13636363636363635
+3      0.18181818181818182
+4      0.22727272727272727
+5      0.2727272727272727
+6      0.4090909090909091
+6      0.4090909090909091
+6      0.4090909090909091
+7      0.5
+7      0.5
+8      0.5909090909090909
+8      0.5909090909090909
+9      0.6818181818181818
+9      0.6818181818181818
+10     0.7727272727272727
+10     0.7727272727272727
+11     0.8181818181818182
+12     0.8636363636363636
+13     0.9090909090909091
+14     0.9545454545454546
+15     1.0
 NULL   1.0
 NULL   1.0
diff --git 
a/ql/src/test/results/clientpositive/llap/sketches_rewrite_cume_dist_partition_by.q.out
 
b/ql/src/test/results/clientpositive/llap/sketches_rewrite_cume_dist_partition_by.q.out
index ac90339391f..f5f15bd8cc7 100644
--- 
a/ql/src/test/results/clientpositive/llap/sketches_rewrite_cume_dist_partition_by.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/sketches_rewrite_cume_dist_partition_by.q.out
@@ -40,28 +40,28 @@ order by category,id
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      a       0.18181818181818182     0.0
-1      a       0.18181818181818182     0.0
-2      a       0.2727272727272727      0.18181818181818182
-3      a       0.36363636363636365     0.2727272727272727
-4      a       0.45454545454545453     0.36363636363636365
-5      a       0.5454545454545454      0.45454545454545453
-6      a       0.6363636363636364      0.5454545454545454
-7      a       0.7272727272727273      0.6363636363636364
-8      a       0.8181818181818182      0.7272727272727273
-9      a       0.9090909090909091      0.8181818181818182
-10     a       1.0     0.9090909090909091
-6      b       0.18181818181818182     0.0
-6      b       0.18181818181818182     0.0
-7      b       0.2727272727272727      0.18181818181818182
-8      b       0.36363636363636365     0.2727272727272727
-9      b       0.45454545454545453     0.36363636363636365
-10     b       0.5454545454545454      0.45454545454545453
-11     b       0.6363636363636364      0.5454545454545454
-12     b       0.7272727272727273      0.6363636363636364
-13     b       0.8181818181818182      0.7272727272727273
-14     b       0.9090909090909091      0.8181818181818182
-15     b       1.0     0.9090909090909091
+1      a       0.18181818181818182     0.18181818181818182
+1      a       0.18181818181818182     0.18181818181818182
+2      a       0.2727272727272727      0.2727272727272727
+3      a       0.36363636363636365     0.36363636363636365
+4      a       0.45454545454545453     0.45454545454545453
+5      a       0.5454545454545454      0.5454545454545454
+6      a       0.6363636363636364      0.6363636363636364
+7      a       0.7272727272727273      0.7272727272727273
+8      a       0.8181818181818182      0.8181818181818182
+9      a       0.9090909090909091      0.9090909090909091
+10     a       1.0     1.0
+6      b       0.18181818181818182     0.18181818181818182
+6      b       0.18181818181818182     0.18181818181818182
+7      b       0.2727272727272727      0.2727272727272727
+8      b       0.36363636363636365     0.36363636363636365
+9      b       0.45454545454545453     0.45454545454545453
+10     b       0.5454545454545454      0.5454545454545454
+11     b       0.6363636363636364      0.6363636363636364
+12     b       0.7272727272727273      0.7272727272727273
+13     b       0.8181818181818182      0.8181818181818182
+14     b       0.9090909090909091      0.9090909090909091
+15     b       1.0     1.0
 PREHOOK: query: explain
 select id,'rewrite',cume_dist() over (partition by category order by id) from 
sketch_input order by category,id
 PREHOOK: type: QUERY
@@ -189,29 +189,29 @@ POSTHOOK: query: select id,'rewrite',cume_dist() over 
(partition by category ord
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      rewrite 0.0
-1      rewrite 0.0
-2      rewrite 0.18181818181818182
-3      rewrite 0.2727272727272727
-4      rewrite 0.36363636363636365
-5      rewrite 0.45454545454545453
-6      rewrite 0.5454545454545454
-7      rewrite 0.6363636363636364
-8      rewrite 0.7272727272727273
-9      rewrite 0.8181818181818182
-10     rewrite 0.9090909090909091
-6      rewrite 0.0
-6      rewrite 0.0
-7      rewrite 0.18181818181818182
-8      rewrite 0.2727272727272727
-9      rewrite 0.36363636363636365
-10     rewrite 0.45454545454545453
-11     rewrite 0.5454545454545454
-12     rewrite 0.6363636363636364
-13     rewrite 0.7272727272727273
-14     rewrite 0.8181818181818182
-15     rewrite 0.9090909090909091
-1      rewrite 0.0
-2      rewrite 0.25
-10     rewrite 0.5
-13     rewrite 0.75
+1      rewrite 0.18181818181818182
+1      rewrite 0.18181818181818182
+2      rewrite 0.2727272727272727
+3      rewrite 0.36363636363636365
+4      rewrite 0.45454545454545453
+5      rewrite 0.5454545454545454
+6      rewrite 0.6363636363636364
+7      rewrite 0.7272727272727273
+8      rewrite 0.8181818181818182
+9      rewrite 0.9090909090909091
+10     rewrite 1.0
+6      rewrite 0.18181818181818182
+6      rewrite 0.18181818181818182
+7      rewrite 0.2727272727272727
+8      rewrite 0.36363636363636365
+9      rewrite 0.45454545454545453
+10     rewrite 0.5454545454545454
+11     rewrite 0.6363636363636364
+12     rewrite 0.7272727272727273
+13     rewrite 0.8181818181818182
+14     rewrite 0.9090909090909091
+15     rewrite 1.0
+1      rewrite 0.25
+2      rewrite 0.5
+10     rewrite 0.75
+13     rewrite 1.0
diff --git 
a/ql/src/test/results/clientpositive/llap/sketches_rewrite_ntile.q.out 
b/ql/src/test/results/clientpositive/llap/sketches_rewrite_ntile.q.out
index fc06a82e53f..f5b5a34bb95 100644
--- a/ql/src/test/results/clientpositive/llap/sketches_rewrite_ntile.q.out
+++ b/ql/src/test/results/clientpositive/llap/sketches_rewrite_ntile.q.out
@@ -48,18 +48,18 @@ POSTHOOK: Input: default@sketch_input
 2      1       1
 3      1       1
 4      1       1
-5      1       1
+5      1       2
 6      2       2
 6      2       2
 6      2       2
 7      2       2
 7      2       2
-8      2       2
-8      3       2
+8      2       3
+8      3       3
 9      3       3
 9      3       3
-10     3       3
-10     3       3
+10     3       4
+10     3       4
 11     4       4
 12     4       4
 13     4       4
@@ -200,18 +200,18 @@ POSTHOOK: Input: default@sketch_input
 2      rewrite 1
 3      rewrite 1
 4      rewrite 1
-5      rewrite 1
+5      rewrite 2
 6      rewrite 2
 6      rewrite 2
 6      rewrite 2
 7      rewrite 2
 7      rewrite 2
-8      rewrite 2
-8      rewrite 2
+8      rewrite 3
+8      rewrite 3
 9      rewrite 3
 9      rewrite 3
-10     rewrite 3
-10     rewrite 3
+10     rewrite 4
+10     rewrite 4
 11     rewrite 4
 12     rewrite 4
 13     rewrite 4
@@ -364,18 +364,18 @@ NULL      rewrite 1
 2      rewrite 1
 3      rewrite 1
 4      rewrite 1
-5      rewrite 1
+5      rewrite 2
 6      rewrite 2
 6      rewrite 2
 6      rewrite 2
 7      rewrite 2
 7      rewrite 2
-8      rewrite 2
-8      rewrite 2
+8      rewrite 3
+8      rewrite 3
 9      rewrite 3
 9      rewrite 3
-10     rewrite 3
-10     rewrite 3
+10     rewrite 4
+10     rewrite 4
 11     rewrite 4
 12     rewrite 4
 13     rewrite 4
@@ -516,18 +516,18 @@ POSTHOOK: Input: default@sketch_input
 2      rewrite 1
 3      rewrite 1
 4      rewrite 1
-5      rewrite 1
+5      rewrite 2
 6      rewrite 2
 6      rewrite 2
 6      rewrite 2
 7      rewrite 2
 7      rewrite 2
-8      rewrite 2
-8      rewrite 2
+8      rewrite 3
+8      rewrite 3
 9      rewrite 3
 9      rewrite 3
-10     rewrite 3
-10     rewrite 3
+10     rewrite 4
+10     rewrite 4
 11     rewrite 4
 12     rewrite 4
 13     rewrite 4
@@ -550,18 +550,18 @@ POSTHOOK: Input: default@sketch_input
 2      1
 3      1
 4      1
-5      1
+5      2
 6      2
 6      2
 6      2
 7      2
 7      2
-8      2
-8      2
+8      3
+8      3
 9      3
 9      3
-10     3
-10     3
+10     4
+10     4
 11     4
 12     4
 13     4
diff --git 
a/ql/src/test/results/clientpositive/llap/sketches_rewrite_ntile_partition_by.q.out
 
b/ql/src/test/results/clientpositive/llap/sketches_rewrite_ntile_partition_by.q.out
index 22b0bca67c0..6e02836deeb 100644
--- 
a/ql/src/test/results/clientpositive/llap/sketches_rewrite_ntile_partition_by.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/sketches_rewrite_ntile_partition_by.q.out
@@ -80,24 +80,24 @@ POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
 1      a       1       1
 1      a       1       1
-2      a       1       1
+2      a       1       2
 3      a       2       2
 4      a       2       2
-5      a       2       2
+5      a       2       3
 6      a       3       3
 7      a       3       3
-8      a       3       3
+8      a       3       4
 9      a       4       4
 10     a       4       4
 6      b       1       1
 6      b       1       1
-7      b       1       1
+7      b       1       2
 8      b       2       2
 9      b       2       2
-10     b       2       2
+10     b       2       3
 11     b       3       3
 12     b       3       3
-13     b       3       3
+13     b       3       4
 14     b       4       4
 15     b       4       4
 WARNING: Comparing bigint and double may result in loss of information.
@@ -231,27 +231,27 @@ POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
 1      rewrite 1
 1      rewrite 1
-2      rewrite 1
+2      rewrite 2
 3      rewrite 2
 4      rewrite 2
-5      rewrite 2
+5      rewrite 3
 6      rewrite 3
 7      rewrite 3
-8      rewrite 3
+8      rewrite 4
 9      rewrite 4
 10     rewrite 4
 6      rewrite 1
 6      rewrite 1
-7      rewrite 1
+7      rewrite 2
 8      rewrite 2
 9      rewrite 2
-10     rewrite 2
+10     rewrite 3
 11     rewrite 3
 12     rewrite 3
-13     rewrite 3
+13     rewrite 4
 14     rewrite 4
 15     rewrite 4
 1      rewrite 1
-2      rewrite 1
-10     rewrite 2
-13     rewrite 3
+2      rewrite 2
+10     rewrite 3
+13     rewrite 4
diff --git 
a/ql/src/test/results/clientpositive/llap/sketches_rewrite_rank.q.out 
b/ql/src/test/results/clientpositive/llap/sketches_rewrite_rank.q.out
index 8357951d893..bf950c00dd6 100644
--- a/ql/src/test/results/clientpositive/llap/sketches_rewrite_rank.q.out
+++ b/ql/src/test/results/clientpositive/llap/sketches_rewrite_rank.q.out
@@ -43,27 +43,27 @@ order by id
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      1       1
-1      1       1
-2      3       3
-3      4       4
-4      5       5
-5      6       6
-6      7       7
-6      7       7
-6      7       7
-7      10      10
-7      10      10
-8      12      12
-8      12      12
-9      14      14
-9      14      14
-10     16      16
-10     16      16
-11     18      18
-12     19      19
-13     20      20
-14     21      21
+1      1       3
+1      1       3
+2      3       4
+3      4       5
+4      5       6
+5      6       7
+6      7       10
+6      7       10
+6      7       10
+7      10      12
+7      10      12
+8      12      14
+8      12      14
+9      14      16
+9      14      16
+10     16      18
+10     16      18
+11     18      19
+12     19      20
+13     20      21
+14     21      22
 15     22      22
 WARNING: Comparing bigint and double may result in loss of information.
 Warning: Shuffle Join MERGEJOIN[17][tables = [$hdt$_0, $hdt$_1]] in Stage 
'Reducer 2' is a cross product
@@ -195,27 +195,27 @@ POSTHOOK: query: select id,'rewrite',rank() over (order 
by id) from sketch_input
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      rewrite 1
-1      rewrite 1
-2      rewrite 3
-3      rewrite 4
-4      rewrite 5
-5      rewrite 6
-6      rewrite 7
-6      rewrite 7
-6      rewrite 7
-7      rewrite 10
-7      rewrite 10
-8      rewrite 12
-8      rewrite 12
-9      rewrite 14
-9      rewrite 14
-10     rewrite 16
-10     rewrite 16
-11     rewrite 18
-12     rewrite 19
-13     rewrite 20
-14     rewrite 21
+1      rewrite 3
+1      rewrite 3
+2      rewrite 4
+3      rewrite 5
+4      rewrite 6
+5      rewrite 7
+6      rewrite 10
+6      rewrite 10
+6      rewrite 10
+7      rewrite 12
+7      rewrite 12
+8      rewrite 14
+8      rewrite 14
+9      rewrite 16
+9      rewrite 16
+10     rewrite 18
+10     rewrite 18
+11     rewrite 19
+12     rewrite 20
+13     rewrite 21
+14     rewrite 22
 15     rewrite 22
 WARNING: Comparing bigint and double may result in loss of information.
 Warning: Shuffle Join MERGEJOIN[21][tables = [$hdt$_0, $hdt$_1]] in Stage 
'Reducer 2' is a cross product
@@ -382,27 +382,27 @@ POSTHOOK: query: select id,'rewrite',count(id) over 
()*rank() over (order by id)
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      rewrite 22
-1      rewrite 22
-2      rewrite 66
-3      rewrite 88
-4      rewrite 110
-5      rewrite 132
-6      rewrite 154
-6      rewrite 154
-6      rewrite 154
-7      rewrite 220
-7      rewrite 220
-8      rewrite 264
-8      rewrite 264
-9      rewrite 308
-9      rewrite 308
-10     rewrite 352
-10     rewrite 352
-11     rewrite 396
-12     rewrite 418
-13     rewrite 440
-14     rewrite 462
+1      rewrite 66
+1      rewrite 66
+2      rewrite 88
+3      rewrite 110
+4      rewrite 132
+5      rewrite 154
+6      rewrite 220
+6      rewrite 220
+6      rewrite 220
+7      rewrite 264
+7      rewrite 264
+8      rewrite 308
+8      rewrite 308
+9      rewrite 352
+9      rewrite 352
+10     rewrite 396
+10     rewrite 396
+11     rewrite 418
+12     rewrite 440
+13     rewrite 462
+14     rewrite 484
 15     rewrite 484
 PREHOOK: query: insert into sketch_input values (null,'a'),(null,'b')
 PREHOOK: type: QUERY
@@ -546,27 +546,27 @@ POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
 NULL   rewrite 1
 NULL   rewrite 1
-1      rewrite 1
-1      rewrite 1
-2      rewrite 3
-3      rewrite 4
-4      rewrite 5
-5      rewrite 6
-6      rewrite 7
-6      rewrite 7
-6      rewrite 7
-7      rewrite 10
-7      rewrite 10
-8      rewrite 12
-8      rewrite 12
-9      rewrite 14
-9      rewrite 14
-10     rewrite 16
-10     rewrite 16
-11     rewrite 18
-12     rewrite 19
-13     rewrite 20
-14     rewrite 21
+1      rewrite 3
+1      rewrite 3
+2      rewrite 4
+3      rewrite 5
+4      rewrite 6
+5      rewrite 7
+6      rewrite 10
+6      rewrite 10
+6      rewrite 10
+7      rewrite 12
+7      rewrite 12
+8      rewrite 14
+8      rewrite 14
+9      rewrite 16
+9      rewrite 16
+10     rewrite 18
+10     rewrite 18
+11     rewrite 19
+12     rewrite 20
+13     rewrite 21
+14     rewrite 22
 15     rewrite 22
 WARNING: Comparing bigint and double may result in loss of information.
 Warning: Shuffle Join MERGEJOIN[17][tables = [$hdt$_0, $hdt$_1]] in Stage 
'Reducer 2' is a cross product
@@ -698,27 +698,27 @@ POSTHOOK: query: select id,'rewrite',rank() over (order 
by id nulls last) from s
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      rewrite 1
-1      rewrite 1
-2      rewrite 3
-3      rewrite 4
-4      rewrite 5
-5      rewrite 6
-6      rewrite 7
-6      rewrite 7
-6      rewrite 7
-7      rewrite 10
-7      rewrite 10
-8      rewrite 12
-8      rewrite 12
-9      rewrite 14
-9      rewrite 14
-10     rewrite 16
-10     rewrite 16
-11     rewrite 18
-12     rewrite 19
-13     rewrite 20
-14     rewrite 21
+1      rewrite 3
+1      rewrite 3
+2      rewrite 4
+3      rewrite 5
+4      rewrite 6
+5      rewrite 7
+6      rewrite 10
+6      rewrite 10
+6      rewrite 10
+7      rewrite 12
+7      rewrite 12
+8      rewrite 14
+8      rewrite 14
+9      rewrite 16
+9      rewrite 16
+10     rewrite 18
+10     rewrite 18
+11     rewrite 19
+12     rewrite 20
+13     rewrite 21
+14     rewrite 22
 15     rewrite 22
 NULL   rewrite 22
 NULL   rewrite 22
@@ -732,27 +732,27 @@ POSTHOOK: query: select id,rank() over (order by id) from 
sketch_input order by
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      1
-1      1
-2      3
-3      4
-4      5
-5      6
-6      7
-6      7
-6      7
-7      10
-7      10
-8      12
-8      12
-9      14
-9      14
-10     16
-10     16
-11     18
-12     19
-13     20
-14     21
+1      3
+1      3
+2      4
+3      5
+4      6
+5      7
+6      10
+6      10
+6      10
+7      12
+7      12
+8      14
+8      14
+9      16
+9      16
+10     18
+10     18
+11     19
+12     20
+13     21
+14     22
 15     22
 NULL   22
 NULL   22
diff --git 
a/ql/src/test/results/clientpositive/llap/sketches_rewrite_rank_partition_by.q.out
 
b/ql/src/test/results/clientpositive/llap/sketches_rewrite_rank_partition_by.q.out
index 90dbb585e33..89aeb8a896f 100644
--- 
a/ql/src/test/results/clientpositive/llap/sketches_rewrite_rank_partition_by.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/sketches_rewrite_rank_partition_by.q.out
@@ -44,27 +44,27 @@ order by category,id
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      a       1       1
-1      a       1       1
-2      a       3       3
-3      a       4       4
-4      a       5       5
-5      a       6       6
-6      a       7       7
-7      a       8       8
-8      a       9       9
-9      a       10      10
+1      a       1       3
+1      a       1       3
+2      a       3       4
+3      a       4       5
+4      a       5       6
+5      a       6       7
+6      a       7       8
+7      a       8       9
+8      a       9       10
+9      a       10      11
 10     a       11      11
-6      b       1       1
-6      b       1       1
-7      b       3       3
-8      b       4       4
-9      b       5       5
-10     b       6       6
-11     b       7       7
-12     b       8       8
-13     b       9       9
-14     b       10      10
+6      b       1       3
+6      b       1       3
+7      b       3       4
+8      b       4       5
+9      b       5       6
+10     b       6       7
+11     b       7       8
+12     b       8       9
+13     b       9       10
+14     b       10      11
 15     b       11      11
 WARNING: Comparing bigint and double may result in loss of information.
 PREHOOK: query: explain
@@ -199,29 +199,29 @@ POSTHOOK: query: select id,'rewrite',rank() over 
(partition by category order by
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@sketch_input
 #### A masked pattern was here ####
-1      rewrite 1
-1      rewrite 1
-2      rewrite 3
-3      rewrite 4
-4      rewrite 5
-5      rewrite 6
-6      rewrite 7
-7      rewrite 8
-8      rewrite 9
-9      rewrite 10
+1      rewrite 3
+1      rewrite 3
+2      rewrite 4
+3      rewrite 5
+4      rewrite 6
+5      rewrite 7
+6      rewrite 8
+7      rewrite 9
+8      rewrite 10
+9      rewrite 11
 10     rewrite 11
-6      rewrite 1
-6      rewrite 1
-7      rewrite 3
-8      rewrite 4
-9      rewrite 5
-10     rewrite 6
-11     rewrite 7
-12     rewrite 8
-13     rewrite 9
-14     rewrite 10
+6      rewrite 3
+6      rewrite 3
+7      rewrite 4
+8      rewrite 5
+9      rewrite 6
+10     rewrite 7
+11     rewrite 8
+12     rewrite 9
+13     rewrite 10
+14     rewrite 11
 15     rewrite 11
-1      rewrite 1
-2      rewrite 2
-10     rewrite 3
+1      rewrite 2
+2      rewrite 3
+10     rewrite 4
 13     rewrite 4
diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/histogram/KllHistogramEstimator.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/histogram/KllHistogramEstimator.java
index 24be2cde0f8..422786d5512 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/histogram/KllHistogramEstimator.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/histogram/KllHistogramEstimator.java
@@ -30,11 +30,11 @@ public class KllHistogramEstimator {
   private final KllFloatsSketch kll;
 
   KllHistogramEstimator() {
-    this.kll = new KllFloatsSketch();
+    this.kll = KllFloatsSketch.newHeapInstance();
   }
 
   KllHistogramEstimator(int k) {
-    this.kll = new KllFloatsSketch(k);
+    this.kll = KllFloatsSketch.newHeapInstance(k);
   }
 
   KllHistogramEstimator(KllFloatsSketch kll) {
diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/histogram/kll/KllUtils.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/histogram/kll/KllUtils.java
index f683c50c5e6..57070c88b7f 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/histogram/kll/KllUtils.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/common/histogram/kll/KllUtils.java
@@ -19,6 +19,7 @@
 package org.apache.hadoop.hive.common.histogram.kll;
 
 import org.apache.datasketches.kll.KllFloatsSketch;
+import org.apache.datasketches.kll.KllSketch;
 import org.apache.datasketches.memory.Memory;
 import org.apache.hadoop.hive.ql.util.JavaDataModel;
 
@@ -100,7 +101,7 @@ public static KllFloatsSketch deserializeKll(final byte[] 
buf) {
    * @return the length of the given KLL sketch according to the given java 
data model
    */
   public static int lengthFor(JavaDataModel model, KllFloatsSketch kll) {
-    return model == null ? 
KllFloatsSketch.getMaxSerializedSizeBytes(kll.getK(), kll.getN())
+    return model == null ? 
KllFloatsSketch.getMaxSerializedSizeBytes(kll.getK(), kll.getN(), 
KllSketch.SketchType.FLOATS_SKETCH, false)
         : (int) model.lengthForByteArrayOfSize(kll.getSerializedSizeBytes());
   }
 }
diff --git 
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/StatisticsTestUtils.java
 
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/StatisticsTestUtils.java
index 356a335cf8e..a6ece7aafce 100644
--- 
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/StatisticsTestUtils.java
+++ 
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/StatisticsTestUtils.java
@@ -158,7 +158,7 @@ public static HyperLogLog createHll(double... values) {
    * @return a KLL object initialized with the given values.
    */
   public static KllFloatsSketch createKll(float... values) {
-    KllFloatsSketch kll = new KllFloatsSketch();
+    KllFloatsSketch kll = KllFloatsSketch.newHeapInstance();
     for (float value : values) {
       kll.update(value);
     }
@@ -171,7 +171,7 @@ public static KllFloatsSketch createKll(float... values) {
    * @return a KLL object initialized with the given values.
    */
   public static KllFloatsSketch createKll(double... values) {
-    KllFloatsSketch kll = new KllFloatsSketch();
+    KllFloatsSketch kll = KllFloatsSketch.newHeapInstance();
     for (double value : values) {
       kll.update(Double.valueOf(value).floatValue());
     }
@@ -184,7 +184,7 @@ public static KllFloatsSketch createKll(double... values) {
    * @return a KLL object initialized with the given values.
    */
   public static KllFloatsSketch createKll(long... values) {
-    KllFloatsSketch kll = new KllFloatsSketch();
+    KllFloatsSketch kll = KllFloatsSketch.newHeapInstance();
     for (long value : values) {
       kll.update(value);
     }
diff --git 
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/TestPartitionStat.java
 
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/TestPartitionStat.java
index 59c6fec3c49..31dd67edcd2 100644
--- 
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/TestPartitionStat.java
+++ 
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/TestPartitionStat.java
@@ -229,7 +229,7 @@ public void testUpdateStatSingle() throws Exception {
     hll.addLong(2);
     hll.addLong(3);
 
-    KllFloatsSketch kll = new KllFloatsSketch();
+    KllFloatsSketch kll = KllFloatsSketch.newHeapInstance();
     kll.update(1);
     kll.update(2);
     kll.update(3);
@@ -246,7 +246,7 @@ public void testUpdateStatMultiple() throws Exception {
     hll.addLong(2);
     hll.addLong(4);
 
-    KllFloatsSketch kll = new KllFloatsSketch();
+    KllFloatsSketch kll = KllFloatsSketch.newHeapInstance();
     kll.update(1);
     kll.update(2);
     kll.update(5);
@@ -261,7 +261,7 @@ public void testUpdateStatMultiple() throws Exception {
     hll.addLong(3);
     hll.addLong(4);
 
-    kll = new KllFloatsSketch();
+    kll = KllFloatsSketch.newHeapInstance();
     kll.update(1);
     kll.update(3);
     kll.update(5);
diff --git a/standalone-metastore/pom.xml b/standalone-metastore/pom.xml
index 15dda720a79..841e9ce3842 100644
--- a/standalone-metastore/pom.xml
+++ b/standalone-metastore/pom.xml
@@ -65,7 +65,7 @@
     <commons-lang3.version>3.12.0</commons-lang3.version>
     <commons-logging.version>1.1.3</commons-logging.version>
     <commons-dbcp2.version>2.12.0</commons-dbcp2.version>
-    <datasketches.version>1.2.0</datasketches.version>
+    <datasketches.version>2.0.0</datasketches.version>
     <datanucleus-api-jdo.version>5.2.8</datanucleus-api-jdo.version>
     <datanucleus-core.version>5.2.10</datanucleus-core.version>
     <datanucleus-jdo.version>3.2.0-release</datanucleus-jdo.version>

Reply via email to