Repository: hive
Updated Branches:
  refs/heads/master e569ef090 -> 788daf609


HIVE-20115 : Acid tables should not use footer scan for analyze (Sergey 
Shelukhin, reviewed by Eugene Koifman)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/788daf60
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/788daf60
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/788daf60

Branch: refs/heads/master
Commit: 788daf609fd9c666dcb42451539917edd4d820ad
Parents: e569ef0
Author: sergey <[email protected]>
Authored: Sat Jul 21 12:16:36 2018 -0700
Committer: sergey <[email protected]>
Committed: Sat Jul 21 12:16:36 2018 -0700

----------------------------------------------------------------------
 .../hive/ql/optimizer/GenMRTableScan1.java      |   5 +-
 .../hive/ql/parse/ProcessAnalyzeTable.java      |   5 +-
 .../hadoop/hive/ql/parse/TaskCompiler.java      |   6 +-
 .../parse/spark/SparkProcessAnalyzeTable.java   |   5 +-
 .../hive/ql/stats/BasicStatsNoJobTask.java      |   9 +
 .../queries/clientpositive/acid_no_buckets.q    |   8 +
 .../clientpositive/acid_table_stats.q.out       |  28 +--
 .../materialized_view_create_rewrite.q.out      |  58 ++---
 .../clientpositive/llap/acid_no_buckets.q.out   | 210 +++++++++++++++++--
 .../materialized_view_create_rewrite_4.q.out    |  10 +-
 .../materialized_view_create_rewrite_5.q.out    |   2 +-
 11 files changed, 279 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java
index 64f9c70..6295d7f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java
@@ -28,6 +28,7 @@ import org.apache.hadoop.hive.ql.exec.TableScanOperator;
 import org.apache.hadoop.hive.ql.exec.Task;
 import org.apache.hadoop.hive.ql.exec.TaskFactory;
 import org.apache.hadoop.hive.ql.exec.mr.MapRedTask;
+import org.apache.hadoop.hive.ql.io.AcidUtils;
 import org.apache.hadoop.hive.ql.io.orc.OrcInputFormat;
 import org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat;
 import org.apache.hadoop.hive.ql.lib.Node;
@@ -43,6 +44,7 @@ import org.apache.hadoop.hive.ql.plan.StatsWork;
 import org.apache.hadoop.hive.ql.plan.BasicStatsWork;
 import org.apache.hadoop.hive.ql.plan.MapredWork;
 import org.apache.hadoop.hive.ql.plan.OperatorDesc;
+import org.apache.hadoop.hive.ql.stats.BasicStatsNoJobTask;
 import org.apache.hadoop.mapred.InputFormat;
 
 /**
@@ -84,8 +86,7 @@ public class GenMRTableScan1 implements NodeProcessor {
 
         if (parseCtx.getQueryProperties().isAnalyzeCommand()) {
           boolean noScan = 
parseCtx.getQueryProperties().isNoScanAnalyzeCommand();
-          if (OrcInputFormat.class.isAssignableFrom(inputFormat) ||
-                  
MapredParquetInputFormat.class.isAssignableFrom(inputFormat)) {
+          if (BasicStatsNoJobTask.canUseFooterScan(table, inputFormat)) {
             // For ORC and Parquet, all the following statements are the same
             // ANALYZE TABLE T [PARTITION (...)] COMPUTE STATISTICS
             // ANALYZE TABLE T [PARTITION (...)] COMPUTE STATISTICS noscan;

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java 
b/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java
index 03cceac..31c5c4b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.Stack;
 
+import org.apache.hadoop.hive.ql.io.AcidUtils;
 import org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,6 +40,7 @@ import org.apache.hadoop.hive.ql.plan.StatsWork;
 import org.apache.hadoop.hive.ql.plan.MapWork;
 import org.apache.hadoop.hive.ql.plan.BasicStatsWork;
 import org.apache.hadoop.hive.ql.plan.TezWork;
+import org.apache.hadoop.hive.ql.stats.BasicStatsNoJobTask;
 import org.apache.hadoop.mapred.InputFormat;
 
 /**
@@ -86,8 +88,7 @@ public class ProcessAnalyzeTable implements NodeProcessor {
 
       assert alias != null;
       TezWork tezWork = context.currentTask.getWork();
-      if (OrcInputFormat.class.isAssignableFrom(inputFormat) ||
-          MapredParquetInputFormat.class.isAssignableFrom(inputFormat)) {
+      if (BasicStatsNoJobTask.canUseFooterScan(table, inputFormat)) {
         // For ORC & Parquet, all the following statements are the same
         // ANALYZE TABLE T [PARTITION (...)] COMPUTE STATISTICS
         // ANALYZE TABLE T [PARTITION (...)] COMPUTE STATISTICS noscan;

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java 
b/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java
index 49709e5..7a2a2c7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hive.ql.parse;
 
 import com.google.common.collect.Interner;
 import com.google.common.collect.Interners;
+
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.common.HiveStatsUtils;
 import org.apache.hadoop.hive.conf.HiveConf;
@@ -62,6 +63,7 @@ import org.apache.hadoop.hive.ql.plan.StatsWork;
 import org.apache.hadoop.hive.ql.plan.TableDesc;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
+import org.apache.hadoop.hive.ql.stats.BasicStatsNoJobTask;
 import org.apache.hadoop.hive.serde.serdeConstants;
 import org.apache.hadoop.hive.serde2.DefaultFetchFormatter;
 import org.apache.hadoop.hive.serde2.NoOpFetchFormatter;
@@ -381,7 +383,9 @@ public abstract class TaskCompiler {
     TableSpec tableSpec = new TableSpec(table, partitions);
     tableScan.getConf().getTableMetadata().setTableSpec(tableSpec);
 
-    if (inputFormat.equals(OrcInputFormat.class)) {
+    // Note: this should probably use BasicStatsNoJobTask.canUseFooterScan, 
but it doesn't check
+    //       Parquet for some reason. I'm keeping the existing behavior for 
now.
+    if (inputFormat.equals(OrcInputFormat.class) && 
!AcidUtils.isTransactionalTable(table)) {
       // For ORC, there is no Tez Job for table stats.
       StatsWork columnStatsWork = new StatsWork(table, parseContext.getConf());
       columnStatsWork.setFooterScan();

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java
index 28d4de7..a9ba302 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.Stack;
 
+import org.apache.hadoop.hive.ql.io.AcidUtils;
 import org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -43,6 +44,7 @@ import org.apache.hadoop.hive.ql.plan.StatsWork;
 import org.apache.hadoop.hive.ql.plan.MapWork;
 import org.apache.hadoop.hive.ql.plan.SparkWork;
 import org.apache.hadoop.hive.ql.plan.BasicStatsWork;
+import org.apache.hadoop.hive.ql.stats.BasicStatsNoJobTask;
 import org.apache.hadoop.mapred.InputFormat;
 
 import com.google.common.base.Preconditions;
@@ -96,8 +98,7 @@ public class SparkProcessAnalyzeTable implements 
NodeProcessor {
       Preconditions.checkArgument(alias != null, "AssertionError: expected 
alias to be not null");
 
       SparkWork sparkWork = context.currentTask.getWork();
-      if (OrcInputFormat.class.isAssignableFrom(inputFormat) ||
-          MapredParquetInputFormat.class.isAssignableFrom(inputFormat)) {
+      if (BasicStatsNoJobTask.canUseFooterScan(table, inputFormat)) {
         // For ORC & Parquet, all the following statements are the same
         // ANALYZE TABLE T [PARTITION (...)] COMPUTE STATISTICS
         // ANALYZE TABLE T [PARTITION (...)] COMPUTE STATISTICS noscan;

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/java/org/apache/hadoop/hive/ql/stats/BasicStatsNoJobTask.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/stats/BasicStatsNoJobTask.java 
b/ql/src/java/org/apache/hadoop/hive/ql/stats/BasicStatsNoJobTask.java
index 3128ee8..fd06098 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/stats/BasicStatsNoJobTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/stats/BasicStatsNoJobTask.java
@@ -39,6 +39,8 @@ import org.apache.hadoop.hive.ql.exec.StatsTask;
 import org.apache.hadoop.hive.ql.exec.Utilities;
 import org.apache.hadoop.hive.ql.io.AcidUtils;
 import org.apache.hadoop.hive.ql.io.StatsProvidingRecordReader;
+import org.apache.hadoop.hive.ql.io.orc.OrcInputFormat;
+import org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat;
 import org.apache.hadoop.hive.ql.metadata.Hive;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
 import org.apache.hadoop.hive.ql.metadata.Partition;
@@ -71,6 +73,8 @@ import com.google.common.collect.Multimaps;
  * faster to compute the table/partition statistics by reading the footer than 
scanning all the
  * rows. This task can be used for computing basic stats like numFiles, 
numRows, fileSize,
  * rawDataSize from ORC footer.
+ * However, this cannot be used for full ACID tables, since some of the files 
may contain updates
+ * and deletes to existing rows, so summing up the per-file row counts is 
invalid.
  **/
 public class BasicStatsNoJobTask implements IStatsProcessor {
 
@@ -86,6 +90,11 @@ public class BasicStatsNoJobTask implements IStatsProcessor {
     console = new LogHelper(LOG);
   }
 
+  public static boolean canUseFooterScan(
+      Table table, Class<? extends InputFormat> inputFormat) {
+    return (OrcInputFormat.class.isAssignableFrom(inputFormat) && 
!AcidUtils.isFullAcidTable(table))
+        || MapredParquetInputFormat.class.isAssignableFrom(inputFormat);
+  }
 
   @Override
   public void initialize(CompilationOpContext opContext) {

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/test/queries/clientpositive/acid_no_buckets.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/acid_no_buckets.q 
b/ql/src/test/queries/clientpositive/acid_no_buckets.q
index bcf9e06..552010a 100644
--- a/ql/src/test/queries/clientpositive/acid_no_buckets.q
+++ b/ql/src/test/queries/clientpositive/acid_no_buckets.q
@@ -28,8 +28,16 @@ select ds, hr, key, value from srcpart_acid where value like 
'%updated' order by
 insert into srcpart_acid PARTITION (ds='2008-04-08', hr=='11') values 
('1001','val1001'),('1002','val1002'),('1003','val1003');
 select ds, hr, key, value from srcpart_acid where cast(key as integer) > 1000 
order by ds, hr, cast(key as integer);
 
+describe formatted srcpart_acid;
+describe formatted srcpart_acid key;
+
 analyze table srcpart_acid PARTITION(ds, hr) compute statistics;
 analyze table srcpart_acid PARTITION(ds, hr) compute statistics for columns;
+
+-- make sure the stats stay the same after analyze (insert and update above 
also update stats)
+describe formatted srcpart_acid;
+describe formatted srcpart_acid key;
+
 explain delete from srcpart_acid where key in( '1001', '213', '43');
 --delete some rows from initial load, some that were updated and some that 
were inserted
 delete from srcpart_acid where key in( '1001', '213', '43');

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/test/results/clientpositive/acid_table_stats.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/acid_table_stats.q.out 
b/ql/src/test/results/clientpositive/acid_table_stats.q.out
index 841a5a4..2fe4f97 100644
--- a/ql/src/test/results/clientpositive/acid_table_stats.q.out
+++ b/ql/src/test/results/clientpositive/acid_table_stats.q.out
@@ -182,11 +182,13 @@ POSTHOOK: Input: default@acid@ds=2008-04-08
 PREHOOK: query: analyze table acid partition(ds='2008-04-08') compute 
statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@acid
+PREHOOK: Input: default@acid@ds=2008-04-08
 PREHOOK: Output: default@acid
 PREHOOK: Output: default@acid@ds=2008-04-08
 POSTHOOK: query: analyze table acid partition(ds='2008-04-08') compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@acid
+POSTHOOK: Input: default@acid@ds=2008-04-08
 POSTHOOK: Output: default@acid
 POSTHOOK: Output: default@acid@ds=2008-04-08
 PREHOOK: query: desc formatted acid partition(ds='2008-04-08')
@@ -209,10 +211,9 @@ Database:                  default
 Table:                 acid                     
 #### A masked pattern was here ####
 Partition Parameters:           
-       COLUMN_STATS_ACCURATE   {\"BASIC_STATS\":\"true\"}
        numFiles                2                   
        numRows                 1000                
-       rawDataSize             208000              
+       rawDataSize             0                   
        totalSize               4063                
 #### A masked pattern was here ####
                 
@@ -260,10 +261,10 @@ Database:                 default
 Table:                 acid                     
 #### A masked pattern was here ####
 Partition Parameters:           
-       COLUMN_STATS_ACCURATE   
{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"key\":\"true\",\"value\":\"true\"}}
+       COLUMN_STATS_ACCURATE   
{\"COLUMN_STATS\":{\"key\":\"true\",\"value\":\"true\"}}
        numFiles                2                   
        numRows                 1000                
-       rawDataSize             208000              
+       rawDataSize             0                   
        totalSize               4063                
 #### A masked pattern was here ####
                 
@@ -303,9 +304,9 @@ STAGE PLANS:
           TableScan
             alias: acid
             filterExpr: (ds = '2008-04-08') (type: boolean)
-            Statistics: Num rows: 1000 Data size: 208000 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 1000 Data size: 40630 Basic stats: COMPLETE 
Column stats: NONE
             Select Operator
-              Statistics: Num rows: 1000 Data size: 208000 Basic stats: 
COMPLETE Column stats: NONE
+              Statistics: Num rows: 1000 Data size: 40630 Basic stats: 
COMPLETE Column stats: NONE
               Group By Operator
                 aggregations: count()
                 mode: hash
@@ -390,7 +391,7 @@ Table:                      acid
 Partition Parameters:           
        numFiles                4                   
        numRows                 3000                
-       rawDataSize             208000              
+       rawDataSize             0                   
        totalSize               8118                
 #### A masked pattern was here ####
                 
@@ -407,11 +408,13 @@ Storage Desc Params:
 PREHOOK: query: analyze table acid partition(ds='2008-04-08') compute 
statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@acid
+PREHOOK: Input: default@acid@ds=2008-04-08
 PREHOOK: Output: default@acid
 PREHOOK: Output: default@acid@ds=2008-04-08
 POSTHOOK: query: analyze table acid partition(ds='2008-04-08') compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@acid
+POSTHOOK: Input: default@acid@ds=2008-04-08
 POSTHOOK: Output: default@acid
 POSTHOOK: Output: default@acid@ds=2008-04-08
 PREHOOK: query: desc formatted acid partition(ds='2008-04-08')
@@ -434,10 +437,9 @@ Database:                  default
 Table:                 acid                     
 #### A masked pattern was here ####
 Partition Parameters:           
-       COLUMN_STATS_ACCURATE   {\"BASIC_STATS\":\"true\"}
        numFiles                4                   
        numRows                 2000                
-       rawDataSize             416000              
+       rawDataSize             0                   
        totalSize               8118                
 #### A masked pattern was here ####
                 
@@ -466,9 +468,9 @@ STAGE PLANS:
           TableScan
             alias: acid
             filterExpr: (ds = '2008-04-08') (type: boolean)
-            Statistics: Num rows: 2000 Data size: 416000 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 2000 Data size: 81180 Basic stats: COMPLETE 
Column stats: NONE
             Select Operator
-              Statistics: Num rows: 2000 Data size: 416000 Basic stats: 
COMPLETE Column stats: NONE
+              Statistics: Num rows: 2000 Data size: 81180 Basic stats: 
COMPLETE Column stats: NONE
               Group By Operator
                 aggregations: count()
                 mode: hash
@@ -539,11 +541,11 @@ STAGE PLANS:
           TableScan
             alias: acid
             filterExpr: (ds = '2008-04-08') (type: boolean)
-            Statistics: Num rows: 2000 Data size: 416000 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 2000 Data size: 81180 Basic stats: COMPLETE 
Column stats: NONE
             Select Operator
               expressions: key (type: string)
               outputColumnNames: key
-              Statistics: Num rows: 2000 Data size: 416000 Basic stats: 
COMPLETE Column stats: NONE
+              Statistics: Num rows: 2000 Data size: 81180 Basic stats: 
COMPLETE Column stats: NONE
               Group By Operator
                 aggregations: max(key)
                 mode: hash

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
 
b/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
index 4db5d70..7813aac 100644
--- 
a/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
+++ 
b/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
@@ -175,32 +175,32 @@ STAGE PLANS:
           TableScan
             alias: cmv_basetable_n10
             filterExpr: (a = 3) (type: boolean)
-            Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 5 Data size: 9740 Basic stats: COMPLETE 
Column stats: NONE
             Filter Operator
               predicate: (a = 3) (type: boolean)
-              Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE 
Column stats: NONE
+              Statistics: Num rows: 2 Data size: 3896 Basic stats: COMPLETE 
Column stats: NONE
               Select Operator
                 expressions: c (type: decimal(10,2))
                 outputColumnNames: _col0
-                Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE 
Column stats: NONE
+                Statistics: Num rows: 2 Data size: 3896 Basic stats: COMPLETE 
Column stats: NONE
                 Reduce Output Operator
                   sort order: 
-                  Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE 
Column stats: NONE
+                  Statistics: Num rows: 2 Data size: 3896 Basic stats: 
COMPLETE Column stats: NONE
                   value expressions: _col0 (type: decimal(10,2))
           TableScan
             alias: cmv_basetable_n10
             filterExpr: ((d = 3) and (a = 3)) (type: boolean)
-            Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 5 Data size: 9740 Basic stats: COMPLETE 
Column stats: NONE
             Filter Operator
               predicate: ((a = 3) and (d = 3)) (type: boolean)
-              Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE 
Column stats: NONE
+              Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE 
Column stats: NONE
               Select Operator
                 expressions: c (type: decimal(10,2))
                 outputColumnNames: _col0
-                Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE 
Column stats: NONE
+                Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE 
Column stats: NONE
                 Reduce Output Operator
                   sort order: 
-                  Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE 
Column stats: NONE
+                  Statistics: Num rows: 1 Data size: 1948 Basic stats: 
COMPLETE Column stats: NONE
                   value expressions: _col0 (type: decimal(10,2))
       Reduce Operator Tree:
         Join Operator
@@ -210,14 +210,14 @@ STAGE PLANS:
             0 
             1 
           outputColumnNames: _col0, _col1
-          Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE Column 
stats: NONE
+          Statistics: Num rows: 2 Data size: 7794 Basic stats: COMPLETE Column 
stats: NONE
           Select Operator
             expressions: 3 (type: int), _col0 (type: decimal(10,2)), 3 (type: 
int), _col1 (type: decimal(10,2))
             outputColumnNames: _col0, _col1, _col2, _col3
-            Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 2 Data size: 7794 Basic stats: COMPLETE 
Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE 
Column stats: NONE
+              Statistics: Num rows: 2 Data size: 7794 Basic stats: COMPLETE 
Column stats: NONE
               table:
                   input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
                   output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -298,17 +298,17 @@ STAGE PLANS:
           TableScan
             alias: cmv_basetable_n10
             filterExpr: ((a = 3) and (d = 3)) (type: boolean)
-            Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 5 Data size: 9740 Basic stats: COMPLETE 
Column stats: NONE
             Filter Operator
               predicate: ((a = 3) and (d = 3)) (type: boolean)
-              Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE 
Column stats: NONE
+              Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE 
Column stats: NONE
               Select Operator
                 expressions: c (type: decimal(10,2))
                 outputColumnNames: _col1
-                Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE 
Column stats: NONE
+                Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE 
Column stats: NONE
                 Reduce Output Operator
                   sort order: 
-                  Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE 
Column stats: NONE
+                  Statistics: Num rows: 1 Data size: 1948 Basic stats: 
COMPLETE Column stats: NONE
                   value expressions: _col1 (type: decimal(10,2))
           TableScan
             alias: default.cmv_mat_view2_n4
@@ -325,14 +325,14 @@ STAGE PLANS:
             0 
             1 
           outputColumnNames: _col0, _col1, _col6
-          Statistics: Num rows: 2 Data size: 716 Basic stats: COMPLETE Column 
stats: NONE
+          Statistics: Num rows: 2 Data size: 4130 Basic stats: COMPLETE Column 
stats: NONE
           Select Operator
             expressions: _col0 (type: int), _col1 (type: decimal(10,2)), _col0 
(type: int), _col6 (type: decimal(10,2))
             outputColumnNames: _col0, _col1, _col2, _col3
-            Statistics: Num rows: 2 Data size: 716 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 2 Data size: 4130 Basic stats: COMPLETE 
Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 2 Data size: 716 Basic stats: COMPLETE 
Column stats: NONE
+              Statistics: Num rows: 2 Data size: 4130 Basic stats: COMPLETE 
Column stats: NONE
               table:
                   input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
                   output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -399,32 +399,32 @@ STAGE PLANS:
           TableScan
             alias: cmv_basetable_n10
             filterExpr: (a = 3) (type: boolean)
-            Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 5 Data size: 9740 Basic stats: COMPLETE 
Column stats: NONE
             Filter Operator
               predicate: (a = 3) (type: boolean)
-              Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE 
Column stats: NONE
+              Statistics: Num rows: 2 Data size: 3896 Basic stats: COMPLETE 
Column stats: NONE
               Select Operator
                 expressions: c (type: decimal(10,2))
                 outputColumnNames: _col0
-                Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE 
Column stats: NONE
+                Statistics: Num rows: 2 Data size: 3896 Basic stats: COMPLETE 
Column stats: NONE
                 Reduce Output Operator
                   sort order: 
-                  Statistics: Num rows: 2 Data size: 482 Basic stats: COMPLETE 
Column stats: NONE
+                  Statistics: Num rows: 2 Data size: 3896 Basic stats: 
COMPLETE Column stats: NONE
                   value expressions: _col0 (type: decimal(10,2))
           TableScan
             alias: cmv_basetable_n10
             filterExpr: ((d = 3) and (a = 3)) (type: boolean)
-            Statistics: Num rows: 5 Data size: 1205 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 5 Data size: 9740 Basic stats: COMPLETE 
Column stats: NONE
             Filter Operator
               predicate: ((a = 3) and (d = 3)) (type: boolean)
-              Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE 
Column stats: NONE
+              Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE 
Column stats: NONE
               Select Operator
                 expressions: c (type: decimal(10,2))
                 outputColumnNames: _col0
-                Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE 
Column stats: NONE
+                Statistics: Num rows: 1 Data size: 1948 Basic stats: COMPLETE 
Column stats: NONE
                 Reduce Output Operator
                   sort order: 
-                  Statistics: Num rows: 1 Data size: 241 Basic stats: COMPLETE 
Column stats: NONE
+                  Statistics: Num rows: 1 Data size: 1948 Basic stats: 
COMPLETE Column stats: NONE
                   value expressions: _col0 (type: decimal(10,2))
       Reduce Operator Tree:
         Join Operator
@@ -434,14 +434,14 @@ STAGE PLANS:
             0 
             1 
           outputColumnNames: _col0, _col1
-          Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE Column 
stats: NONE
+          Statistics: Num rows: 2 Data size: 7794 Basic stats: COMPLETE Column 
stats: NONE
           Select Operator
             expressions: 3 (type: int), _col0 (type: decimal(10,2)), 3 (type: 
int), _col1 (type: decimal(10,2))
             outputColumnNames: _col0, _col1, _col2, _col3
-            Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE 
Column stats: NONE
+            Statistics: Num rows: 2 Data size: 7794 Basic stats: COMPLETE 
Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 2 Data size: 966 Basic stats: COMPLETE 
Column stats: NONE
+              Statistics: Num rows: 2 Data size: 7794 Basic stats: COMPLETE 
Column stats: NONE
               table:
                   input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
                   output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/test/results/clientpositive/llap/acid_no_buckets.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/acid_no_buckets.q.out 
b/ql/src/test/results/clientpositive/llap/acid_no_buckets.q.out
index 36a6a5d..9762de6 100644
--- a/ql/src/test/results/clientpositive/llap/acid_no_buckets.q.out
+++ b/ql/src/test/results/clientpositive/llap/acid_no_buckets.q.out
@@ -58,6 +58,10 @@ POSTHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=11
 PREHOOK: query: analyze table srcpart_acid PARTITION(ds, hr) compute statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@srcpart_acid
+PREHOOK: Input: default@srcpart_acid@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart_acid@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=12
 PREHOOK: Output: default@srcpart_acid
 PREHOOK: Output: default@srcpart_acid@ds=2008-04-08/hr=11
 PREHOOK: Output: default@srcpart_acid@ds=2008-04-08/hr=12
@@ -66,6 +70,10 @@ PREHOOK: Output: default@srcpart_acid@ds=2008-04-09/hr=12
 POSTHOOK: query: analyze table srcpart_acid PARTITION(ds, hr) compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@srcpart_acid
+POSTHOOK: Input: default@srcpart_acid@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart_acid@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=12
 POSTHOOK: Output: default@srcpart_acid
 POSTHOOK: Output: default@srcpart_acid@ds=2008-04-08/hr=11
 POSTHOOK: Output: default@srcpart_acid@ds=2008-04-08/hr=12
@@ -239,9 +247,74 @@ POSTHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=12
 2008-04-08     11      1001    val1001
 2008-04-08     11      1002    val1002
 2008-04-08     11      1003    val1003
+PREHOOK: query: describe formatted srcpart_acid
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@srcpart_acid
+POSTHOOK: query: describe formatted srcpart_acid
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@srcpart_acid
+# col_name             data_type               comment             
+key                    string                                      
+value                  string                                      
+                
+# Partition Information                 
+# col_name             data_type               comment             
+ds                     string                                      
+hr                     string                                      
+                
+# Detailed Table Information            
+Database:              default                  
+#### A masked pattern was here ####
+Retention:             0                        
+#### A masked pattern was here ####
+Table Type:            MANAGED_TABLE            
+Table Parameters:               
+       bucketing_version       2                   
+       numFiles                9                   
+       numPartitions           4                   
+       numRows                 2003                
+       rawDataSize             0                   
+       totalSize               17988               
+       transactional           true                
+       transactional_properties        default             
+#### A masked pattern was here ####
+                
+# Storage Information           
+SerDe Library:         org.apache.hadoop.hive.ql.io.orc.OrcSerde        
+InputFormat:           org.apache.hadoop.hive.ql.io.orc.OrcInputFormat  
+OutputFormat:          org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat        
 
+Compressed:            No                       
+Num Buckets:           -1                       
+Bucket Columns:        []                       
+Sort Columns:          []                       
+Storage Desc Params:            
+       serialization.format    1                   
+PREHOOK: query: describe formatted srcpart_acid key
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@srcpart_acid
+POSTHOOK: query: describe formatted srcpart_acid key
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@srcpart_acid
+col_name               key                                                     
                                         
+data_type              string                                                  
                                         
+min                                                                            
                                         
+max                                                                            
                                         
+num_nulls              0                                                       
                                         
+distinct_count         316                                                     
                                         
+avg_col_len            2.812                                                   
                                         
+max_col_len            3                                                       
                                         
+num_trues                                                                      
                                         
+num_falses                                                                     
                                         
+bitVector              HL                                                      
                                         
+comment                from deserializer                                       
                                         
+COLUMN_STATS_ACCURATE  {}                                                      
                                         
 PREHOOK: query: analyze table srcpart_acid PARTITION(ds, hr) compute statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@srcpart_acid
+PREHOOK: Input: default@srcpart_acid@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart_acid@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=12
 PREHOOK: Output: default@srcpart_acid
 PREHOOK: Output: default@srcpart_acid@ds=2008-04-08/hr=11
 PREHOOK: Output: default@srcpart_acid@ds=2008-04-08/hr=12
@@ -250,6 +323,10 @@ PREHOOK: Output: default@srcpart_acid@ds=2008-04-09/hr=12
 POSTHOOK: query: analyze table srcpart_acid PARTITION(ds, hr) compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@srcpart_acid
+POSTHOOK: Input: default@srcpart_acid@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart_acid@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart_acid@ds=2008-04-09/hr=12
 POSTHOOK: Output: default@srcpart_acid
 POSTHOOK: Output: default@srcpart_acid@ds=2008-04-08/hr=11
 POSTHOOK: Output: default@srcpart_acid@ds=2008-04-08/hr=12
@@ -281,6 +358,67 @@ POSTHOOK: Output: default@srcpart_acid@ds=2008-04-08/hr=12
 POSTHOOK: Output: default@srcpart_acid@ds=2008-04-09/hr=11
 POSTHOOK: Output: default@srcpart_acid@ds=2008-04-09/hr=12
 #### A masked pattern was here ####
+PREHOOK: query: describe formatted srcpart_acid
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@srcpart_acid
+POSTHOOK: query: describe formatted srcpart_acid
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@srcpart_acid
+# col_name             data_type               comment             
+key                    string                                      
+value                  string                                      
+                
+# Partition Information                 
+# col_name             data_type               comment             
+ds                     string                                      
+hr                     string                                      
+                
+# Detailed Table Information            
+Database:              default                  
+#### A masked pattern was here ####
+Retention:             0                        
+#### A masked pattern was here ####
+Table Type:            MANAGED_TABLE            
+Table Parameters:               
+       bucketing_version       2                   
+       numFiles                9                   
+       numPartitions           4                   
+       numRows                 2003                
+       rawDataSize             0                   
+       totalSize               17988               
+       transactional           true                
+       transactional_properties        default             
+#### A masked pattern was here ####
+                
+# Storage Information           
+SerDe Library:         org.apache.hadoop.hive.ql.io.orc.OrcSerde        
+InputFormat:           org.apache.hadoop.hive.ql.io.orc.OrcInputFormat  
+OutputFormat:          org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat        
 
+Compressed:            No                       
+Num Buckets:           -1                       
+Bucket Columns:        []                       
+Sort Columns:          []                       
+Storage Desc Params:            
+       serialization.format    1                   
+PREHOOK: query: describe formatted srcpart_acid key
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@srcpart_acid
+POSTHOOK: query: describe formatted srcpart_acid key
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@srcpart_acid
+col_name               key                                                     
                                         
+data_type              string                                                  
                                         
+min                                                                            
                                         
+max                                                                            
                                         
+num_nulls              0                                                       
                                         
+distinct_count         316                                                     
                                         
+avg_col_len            2.812                                                   
                                         
+max_col_len            3                                                       
                                         
+num_trues                                                                      
                                         
+num_falses                                                                     
                                         
+bitVector              HL                                                      
                                         
+comment                from deserializer                                       
                                         
+COLUMN_STATS_ACCURATE  {}                                                      
                                         
 PREHOOK: query: explain delete from srcpart_acid where key in( '1001', '213', 
'43')
 PREHOOK: type: QUERY
 POSTHOOK: query: explain delete from srcpart_acid where key in( '1001', '213', 
'43')
@@ -304,19 +442,19 @@ STAGE PLANS:
                 TableScan
                   alias: srcpart_acid
                   filterExpr: (key) IN ('1001', '213', '43') (type: boolean)
-                  Statistics: Num rows: 2015 Data size: 916825 Basic stats: 
COMPLETE Column stats: PARTIAL
+                  Statistics: Num rows: 2003 Data size: 911365 Basic stats: 
COMPLETE Column stats: PARTIAL
                   Filter Operator
                     predicate: (key) IN ('1001', '213', '43') (type: boolean)
-                    Statistics: Num rows: 101 Data size: 45955 Basic stats: 
COMPLETE Column stats: PARTIAL
+                    Statistics: Num rows: 100 Data size: 45500 Basic stats: 
COMPLETE Column stats: PARTIAL
                     Select Operator
                       expressions: ROW__ID (type: 
struct<writeid:bigint,bucketid:int,rowid:bigint>), ds (type: string), hr (type: 
string)
                       outputColumnNames: _col0, _col1, _col2
-                      Statistics: Num rows: 101 Data size: 44844 Basic stats: 
COMPLETE Column stats: PARTIAL
+                      Statistics: Num rows: 100 Data size: 44400 Basic stats: 
COMPLETE Column stats: PARTIAL
                       Reduce Output Operator
                         key expressions: _col0 (type: 
struct<writeid:bigint,bucketid:int,rowid:bigint>)
                         sort order: +
                         Map-reduce partition columns: UDFToInteger(_col0) 
(type: int)
-                        Statistics: Num rows: 101 Data size: 44844 Basic 
stats: COMPLETE Column stats: PARTIAL
+                        Statistics: Num rows: 100 Data size: 44400 Basic 
stats: COMPLETE Column stats: PARTIAL
                         value expressions: _col1 (type: string), _col2 (type: 
string)
             Execution mode: llap
             LLAP IO: may be used (ACID table)
@@ -326,10 +464,10 @@ STAGE PLANS:
               Select Operator
                 expressions: KEY.reducesinkkey0 (type: 
struct<writeid:bigint,bucketid:int,rowid:bigint>), VALUE._col0 (type: string), 
VALUE._col1 (type: string)
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 101 Data size: 44844 Basic stats: 
COMPLETE Column stats: PARTIAL
+                Statistics: Num rows: 100 Data size: 44400 Basic stats: 
COMPLETE Column stats: PARTIAL
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 101 Data size: 44844 Basic stats: 
COMPLETE Column stats: PARTIAL
+                  Statistics: Num rows: 100 Data size: 44400 Basic stats: 
COMPLETE Column stats: PARTIAL
                   table:
                       input format: 
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
                       output format: 
org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
@@ -561,6 +699,10 @@ POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=11
 PREHOOK: query: analyze table srcpart_acidb PARTITION(ds, hr) compute 
statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@srcpart_acidb
+PREHOOK: Input: default@srcpart_acidb@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart_acidb@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=12
 PREHOOK: Output: default@srcpart_acidb
 PREHOOK: Output: default@srcpart_acidb@ds=2008-04-08/hr=11
 PREHOOK: Output: default@srcpart_acidb@ds=2008-04-08/hr=12
@@ -569,6 +711,10 @@ PREHOOK: Output: default@srcpart_acidb@ds=2008-04-09/hr=12
 POSTHOOK: query: analyze table srcpart_acidb PARTITION(ds, hr) compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@srcpart_acidb
+POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=12
 POSTHOOK: Output: default@srcpart_acidb
 POSTHOOK: Output: default@srcpart_acidb@ds=2008-04-08/hr=11
 POSTHOOK: Output: default@srcpart_acidb@ds=2008-04-08/hr=12
@@ -745,6 +891,10 @@ POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=12
 PREHOOK: query: analyze table srcpart_acidb PARTITION(ds, hr) compute 
statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@srcpart_acidb
+PREHOOK: Input: default@srcpart_acidb@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart_acidb@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=12
 PREHOOK: Output: default@srcpart_acidb
 PREHOOK: Output: default@srcpart_acidb@ds=2008-04-08/hr=11
 PREHOOK: Output: default@srcpart_acidb@ds=2008-04-08/hr=12
@@ -753,6 +903,10 @@ PREHOOK: Output: default@srcpart_acidb@ds=2008-04-09/hr=12
 POSTHOOK: query: analyze table srcpart_acidb PARTITION(ds, hr) compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@srcpart_acidb
+POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart_acidb@ds=2008-04-09/hr=12
 POSTHOOK: Output: default@srcpart_acidb
 POSTHOOK: Output: default@srcpart_acidb@ds=2008-04-08/hr=11
 POSTHOOK: Output: default@srcpart_acidb@ds=2008-04-08/hr=12
@@ -807,19 +961,19 @@ STAGE PLANS:
                 TableScan
                   alias: srcpart_acidb
                   filterExpr: (key) IN ('1001', '213', '43') (type: boolean)
-                  Statistics: Num rows: 2015 Data size: 916825 Basic stats: 
COMPLETE Column stats: PARTIAL
+                  Statistics: Num rows: 2003 Data size: 911365 Basic stats: 
COMPLETE Column stats: PARTIAL
                   Filter Operator
                     predicate: (key) IN ('1001', '213', '43') (type: boolean)
-                    Statistics: Num rows: 101 Data size: 45955 Basic stats: 
COMPLETE Column stats: PARTIAL
+                    Statistics: Num rows: 100 Data size: 45500 Basic stats: 
COMPLETE Column stats: PARTIAL
                     Select Operator
                       expressions: ROW__ID (type: 
struct<writeid:bigint,bucketid:int,rowid:bigint>), ds (type: string), hr (type: 
string)
                       outputColumnNames: _col0, _col1, _col2
-                      Statistics: Num rows: 101 Data size: 44844 Basic stats: 
COMPLETE Column stats: PARTIAL
+                      Statistics: Num rows: 100 Data size: 44400 Basic stats: 
COMPLETE Column stats: PARTIAL
                       Reduce Output Operator
                         key expressions: _col0 (type: 
struct<writeid:bigint,bucketid:int,rowid:bigint>)
                         sort order: +
                         Map-reduce partition columns: UDFToInteger(_col0) 
(type: int)
-                        Statistics: Num rows: 101 Data size: 44844 Basic 
stats: COMPLETE Column stats: PARTIAL
+                        Statistics: Num rows: 100 Data size: 44400 Basic 
stats: COMPLETE Column stats: PARTIAL
                         value expressions: _col1 (type: string), _col2 (type: 
string)
             Execution mode: llap
             LLAP IO: may be used (ACID table)
@@ -829,10 +983,10 @@ STAGE PLANS:
               Select Operator
                 expressions: KEY.reducesinkkey0 (type: 
struct<writeid:bigint,bucketid:int,rowid:bigint>), VALUE._col0 (type: string), 
VALUE._col1 (type: string)
                 outputColumnNames: _col0, _col1, _col2
-                Statistics: Num rows: 101 Data size: 44844 Basic stats: 
COMPLETE Column stats: PARTIAL
+                Statistics: Num rows: 100 Data size: 44400 Basic stats: 
COMPLETE Column stats: PARTIAL
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 101 Data size: 44844 Basic stats: 
COMPLETE Column stats: PARTIAL
+                  Statistics: Num rows: 100 Data size: 44400 Basic stats: 
COMPLETE Column stats: PARTIAL
                   table:
                       input format: 
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
                       output format: 
org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
@@ -1064,6 +1218,10 @@ POSTHOOK: Input: 
default@srcpart_acidv@ds=2008-04-09/hr=11
 PREHOOK: query: analyze table srcpart_acidv PARTITION(ds, hr) compute 
statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@srcpart_acidv
+PREHOOK: Input: default@srcpart_acidv@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart_acidv@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart_acidv@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart_acidv@ds=2008-04-09/hr=12
 PREHOOK: Output: default@srcpart_acidv
 PREHOOK: Output: default@srcpart_acidv@ds=2008-04-08/hr=11
 PREHOOK: Output: default@srcpart_acidv@ds=2008-04-08/hr=12
@@ -1072,6 +1230,10 @@ PREHOOK: Output: 
default@srcpart_acidv@ds=2008-04-09/hr=12
 POSTHOOK: query: analyze table srcpart_acidv PARTITION(ds, hr) compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@srcpart_acidv
+POSTHOOK: Input: default@srcpart_acidv@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart_acidv@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart_acidv@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart_acidv@ds=2008-04-09/hr=12
 POSTHOOK: Output: default@srcpart_acidv
 POSTHOOK: Output: default@srcpart_acidv@ds=2008-04-08/hr=11
 POSTHOOK: Output: default@srcpart_acidv@ds=2008-04-08/hr=12
@@ -1264,6 +1426,10 @@ POSTHOOK: Input: 
default@srcpart_acidv@ds=2008-04-09/hr=12
 PREHOOK: query: analyze table srcpart_acidv PARTITION(ds, hr) compute 
statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@srcpart_acidv
+PREHOOK: Input: default@srcpart_acidv@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart_acidv@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart_acidv@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart_acidv@ds=2008-04-09/hr=12
 PREHOOK: Output: default@srcpart_acidv
 PREHOOK: Output: default@srcpart_acidv@ds=2008-04-08/hr=11
 PREHOOK: Output: default@srcpart_acidv@ds=2008-04-08/hr=12
@@ -1272,6 +1438,10 @@ PREHOOK: Output: 
default@srcpart_acidv@ds=2008-04-09/hr=12
 POSTHOOK: query: analyze table srcpart_acidv PARTITION(ds, hr) compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@srcpart_acidv
+POSTHOOK: Input: default@srcpart_acidv@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart_acidv@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart_acidv@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart_acidv@ds=2008-04-09/hr=12
 POSTHOOK: Output: default@srcpart_acidv
 POSTHOOK: Output: default@srcpart_acidv@ds=2008-04-08/hr=11
 POSTHOOK: Output: default@srcpart_acidv@ds=2008-04-08/hr=12
@@ -1850,6 +2020,10 @@ POSTHOOK: Input: 
default@srcpart_acidvb@ds=2008-04-09/hr=11
 PREHOOK: query: analyze table srcpart_acidvb PARTITION(ds, hr) compute 
statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@srcpart_acidvb
+PREHOOK: Input: default@srcpart_acidvb@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart_acidvb@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart_acidvb@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart_acidvb@ds=2008-04-09/hr=12
 PREHOOK: Output: default@srcpart_acidvb
 PREHOOK: Output: default@srcpart_acidvb@ds=2008-04-08/hr=11
 PREHOOK: Output: default@srcpart_acidvb@ds=2008-04-08/hr=12
@@ -1858,6 +2032,10 @@ PREHOOK: Output: 
default@srcpart_acidvb@ds=2008-04-09/hr=12
 POSTHOOK: query: analyze table srcpart_acidvb PARTITION(ds, hr) compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@srcpart_acidvb
+POSTHOOK: Input: default@srcpart_acidvb@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart_acidvb@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart_acidvb@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart_acidvb@ds=2008-04-09/hr=12
 POSTHOOK: Output: default@srcpart_acidvb
 POSTHOOK: Output: default@srcpart_acidvb@ds=2008-04-08/hr=11
 POSTHOOK: Output: default@srcpart_acidvb@ds=2008-04-08/hr=12
@@ -2050,6 +2228,10 @@ POSTHOOK: Input: 
default@srcpart_acidvb@ds=2008-04-09/hr=12
 PREHOOK: query: analyze table srcpart_acidvb PARTITION(ds, hr) compute 
statistics
 PREHOOK: type: QUERY
 PREHOOK: Input: default@srcpart_acidvb
+PREHOOK: Input: default@srcpart_acidvb@ds=2008-04-08/hr=11
+PREHOOK: Input: default@srcpart_acidvb@ds=2008-04-08/hr=12
+PREHOOK: Input: default@srcpart_acidvb@ds=2008-04-09/hr=11
+PREHOOK: Input: default@srcpart_acidvb@ds=2008-04-09/hr=12
 PREHOOK: Output: default@srcpart_acidvb
 PREHOOK: Output: default@srcpart_acidvb@ds=2008-04-08/hr=11
 PREHOOK: Output: default@srcpart_acidvb@ds=2008-04-08/hr=12
@@ -2058,6 +2240,10 @@ PREHOOK: Output: 
default@srcpart_acidvb@ds=2008-04-09/hr=12
 POSTHOOK: query: analyze table srcpart_acidvb PARTITION(ds, hr) compute 
statistics
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@srcpart_acidvb
+POSTHOOK: Input: default@srcpart_acidvb@ds=2008-04-08/hr=11
+POSTHOOK: Input: default@srcpart_acidvb@ds=2008-04-08/hr=12
+POSTHOOK: Input: default@srcpart_acidvb@ds=2008-04-09/hr=11
+POSTHOOK: Input: default@srcpart_acidvb@ds=2008-04-09/hr=12
 POSTHOOK: Output: default@srcpart_acidvb
 POSTHOOK: Output: default@srcpart_acidvb@ds=2008-04-08/hr=11
 POSTHOOK: Output: default@srcpart_acidvb@ds=2008-04-08/hr=12

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
 
b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
index eda3985..bfa204e 100644
--- 
a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
@@ -265,11 +265,11 @@ Retention:                0
 #### A masked pattern was here ####
 Table Type:            MATERIALIZED_VIEW        
 Table Parameters:               
-       COLUMN_STATS_ACCURATE   
{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"_c2\":\"true\",\"a\":\"true\",\"c\":\"true\"}}
+       COLUMN_STATS_ACCURATE   
{\"COLUMN_STATS\":{\"_c2\":\"true\",\"a\":\"true\",\"c\":\"true\"}}
        bucketing_version       2                   
        numFiles                2                   
        numRows                 2                   
-       rawDataSize             248                 
+       rawDataSize             0                   
        totalSize               736                 
        transactional           true                
        transactional_properties        default             
@@ -494,11 +494,11 @@ Retention:                0
 #### A masked pattern was here ####
 Table Type:            MATERIALIZED_VIEW        
 Table Parameters:               
-       COLUMN_STATS_ACCURATE   
{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"_c2\":\"true\",\"a\":\"true\",\"c\":\"true\"}}
+       COLUMN_STATS_ACCURATE   
{\"COLUMN_STATS\":{\"_c2\":\"true\",\"a\":\"true\",\"c\":\"true\"}}
        bucketing_version       2                   
        numFiles                2                   
        numRows                 2                   
-       rawDataSize             248                 
+       rawDataSize             0                   
        totalSize               736                 
        transactional           true                
        transactional_properties        default             
@@ -948,7 +948,7 @@ Table Parameters:
        bucketing_version       2                   
        numFiles                3                   
        numRows                 3                   
-       rawDataSize             248                 
+       rawDataSize             0                   
        totalSize               1508                
        transactional           true                
        transactional_properties        default             

http://git-wip-us.apache.org/repos/asf/hive/blob/788daf60/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
 
b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
index 99832ff..44eca6d 100644
--- 
a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
+++ 
b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
@@ -405,7 +405,7 @@ Table Parameters:
        bucketing_version       2                   
        numFiles                2                   
        numRows                 5                   
-       rawDataSize             348                 
+       rawDataSize             0                   
        totalSize               1071                
        transactional           true                
        transactional_properties        default             

Reply via email to