Repository: hive
Updated Branches:
  refs/heads/master 1dccdeada -> f5ec4b556


HIVE-17720 : Bitvectors are not shown in describe statement on beeline


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

Branch: refs/heads/master
Commit: f5ec4b556dd2449c118da0250715117cb7381179
Parents: 1dccdea
Author: Ashutosh Chauhan <[email protected]>
Authored: Mon Oct 9 08:06:49 2017 -0700
Committer: Ashutosh Chauhan <[email protected]>
Committed: Mon Oct 9 08:06:49 2017 -0700

----------------------------------------------------------------------
 .../test/resources/testconfiguration.properties |  1 +
 .../formatting/MetaDataFormatUtils.java         | 49 ++++++++---
 .../beeline/colstats_all_nulls.q.out            | 91 ++++++++++++++++++++
 3 files changed, 129 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/f5ec4b55/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties 
b/itests/src/test/resources/testconfiguration.properties
index 038487f..6b23739 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -781,6 +781,7 @@ encrypted.query.files=encryption_join_unencrypted_tbl.q,\
   encryption_drop_table_in_encrypted_db.q
 
 beeline.positive.include=create_merge_compressed.q,\
+  colstats_all_nulls.q,\
   drop_with_concurrency.q,\
   escape_comments.q,\
   insert_overwrite_local_directory_1.q,\

http://git-wip-us.apache.org/repos/asf/hive/blob/f5ec4b55/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
index 159fb2b..aa1a99d 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
@@ -591,33 +591,58 @@ public final class MetaDataFormatUtils {
     if (isColStatsAvailable) {
       if (columnStatisticsObj != null) {
         ColumnStatisticsData csd = columnStatisticsObj.getStatsData();
+        // @formatter:off
         if (csd.isSetBinaryStats()) {
           BinaryColumnStatsData bcsd = csd.getBinaryStats();
-          ret.addAll(Lists.newArrayList("", "", "" + bcsd.getNumNulls(), "", 
"" + bcsd.getAvgColLen(), "" + bcsd.getMaxColLen(), "", "", ""));
+          ret.addAll(Lists.newArrayList(  "", "",
+                                          "" + bcsd.getNumNulls(), "",
+                                          "" + bcsd.getAvgColLen(), "" + 
bcsd.getMaxColLen(),
+                                          "", "",
+                                          
convertToString(bcsd.getBitVectors())));
         } else if (csd.isSetStringStats()) {
           StringColumnStatsData scsd = csd.getStringStats();
-          ret.addAll(Lists.newArrayList("", "", "" + scsd.getNumNulls(), "" + 
scsd.getNumDVs(), "" + scsd.getAvgColLen(), "" + scsd.getMaxColLen(), "", "",
-              convertToString(scsd.getBitVectors())));
+          ret.addAll(Lists.newArrayList(  "", "",
+                                          "" + scsd.getNumNulls(), "" + 
scsd.getNumDVs(),
+                                          "" + scsd.getAvgColLen(), "" + 
scsd.getMaxColLen(),
+                                          "", "",
+                                          
convertToString(scsd.getBitVectors())));
         } else if (csd.isSetBooleanStats()) {
           BooleanColumnStatsData bcsd = csd.getBooleanStats();
-          ret.addAll(Lists.newArrayList("", "", "" + bcsd.getNumNulls(), "", 
"", "", "" + bcsd.getNumTrues(), "" + bcsd.getNumFalses(), ""));
+          ret.addAll(Lists.newArrayList(  "", "",
+                                          "" + bcsd.getNumNulls(), "",
+                                          "", "",
+                                          "" + bcsd.getNumTrues(), "" + 
bcsd.getNumFalses(),
+                                          
convertToString(bcsd.getBitVectors())));
         } else if (csd.isSetDecimalStats()) {
           DecimalColumnStatsData dcsd = csd.getDecimalStats();
-          ret.addAll(Lists.newArrayList(convertToString(dcsd.getLowValue()), 
convertToString(dcsd.getHighValue()), "" + dcsd.getNumNulls(),
-              "" + dcsd.getNumDVs(), "", "", "", "", 
convertToString(dcsd.getBitVectors())));
+          ret.addAll(Lists.newArrayList(  convertToString(dcsd.getLowValue()), 
convertToString(dcsd.getHighValue()),
+                                          "" + dcsd.getNumNulls(), "" + 
dcsd.getNumDVs(),
+                                          "", "",
+                                          "", "",
+                                          
convertToString(dcsd.getBitVectors())));
         } else if (csd.isSetDoubleStats()) {
           DoubleColumnStatsData dcsd = csd.getDoubleStats();
-          ret.addAll(Lists.newArrayList("" + dcsd.getLowValue(), "" + 
dcsd.getHighValue(), "" + dcsd.getNumNulls(), "" + dcsd.getNumDVs(), "", "", 
"", "",
-              convertToString(dcsd.getBitVectors())));
+          ret.addAll(Lists.newArrayList(  "" + dcsd.getLowValue(), "" + 
dcsd.getHighValue(),
+                                          "" + dcsd.getNumNulls(), "" + 
dcsd.getNumDVs(),
+                                          "", "",
+                                          "", "",
+                                          
convertToString(dcsd.getBitVectors())));
         } else if (csd.isSetLongStats()) {
           LongColumnStatsData lcsd = csd.getLongStats();
-          ret.addAll(Lists.newArrayList("" + lcsd.getLowValue(), "" + 
lcsd.getHighValue(), "" + lcsd.getNumNulls(), "" + lcsd.getNumDVs(), "", "", 
"", "",
-              convertToString(lcsd.getBitVectors())));
+          ret.addAll(Lists.newArrayList(  "" + lcsd.getLowValue(), "" + 
lcsd.getHighValue(),
+                                          "" + lcsd.getNumNulls(), "" + 
lcsd.getNumDVs(),
+                                          "", "",
+                                          "", "",
+                                          
convertToString(lcsd.getBitVectors())));
         } else if (csd.isSetDateStats()) {
           DateColumnStatsData dcsd = csd.getDateStats();
-          ret.addAll(Lists.newArrayList(convertToString(dcsd.getLowValue()), 
convertToString(dcsd.getHighValue()), "" + dcsd.getNumNulls(),
-              "" + dcsd.getNumDVs(), "", "", "", "", 
convertToString(dcsd.getBitVectors())));
+          ret.addAll(Lists.newArrayList(  convertToString(dcsd.getLowValue()), 
convertToString(dcsd.getHighValue()),
+                                          "" + dcsd.getNumNulls(), "" + 
dcsd.getNumDVs(),
+                                          "", "",
+                                          "", "",
+                                          
convertToString(dcsd.getBitVectors())));
         }
+        // @formatter:on
       } else {
         ret.addAll(Lists.newArrayList("", "", "", "", "", "", "", "", ""));
         }

http://git-wip-us.apache.org/repos/asf/hive/blob/f5ec4b55/ql/src/test/results/clientpositive/beeline/colstats_all_nulls.q.out
----------------------------------------------------------------------
diff --git 
a/ql/src/test/results/clientpositive/beeline/colstats_all_nulls.q.out 
b/ql/src/test/results/clientpositive/beeline/colstats_all_nulls.q.out
new file mode 100644
index 0000000..7e26ae0
--- /dev/null
+++ b/ql/src/test/results/clientpositive/beeline/colstats_all_nulls.q.out
@@ -0,0 +1,91 @@
+PREHOOK: query: CREATE TABLE src_null(a bigint) STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@src_null
+POSTHOOK: query: CREATE TABLE src_null(a bigint) STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@src_null
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/nulls.txt' INTO TABLE 
src_null
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@src_null
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/nulls.txt' INTO 
TABLE src_null
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@src_null
+PREHOOK: query: create table all_nulls as SELECT a, cast(a as double) as b, 
cast(a as decimal) as c  FROM src_null where a is null limit 5
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src_null
+PREHOOK: Output: database:default
+PREHOOK: Output: default@all_nulls
+POSTHOOK: query: create table all_nulls as SELECT a, cast(a as double) as b, 
cast(a as decimal) as c  FROM src_null where a is null limit 5
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src_null
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@all_nulls
+POSTHOOK: Lineage: all_nulls.a SIMPLE []
+POSTHOOK: Lineage: all_nulls.b SIMPLE []
+POSTHOOK: Lineage: all_nulls.c SIMPLE []
+PREHOOK: query: analyze table all_nulls compute statistics for columns
+PREHOOK: type: QUERY
+PREHOOK: Input: default@all_nulls
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table all_nulls compute statistics for columns
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@all_nulls
+#### A masked pattern was here ####
+PREHOOK: query: describe formatted all_nulls a
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@all_nulls
+POSTHOOK: query: describe formatted all_nulls a
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@all_nulls
+col_name       a       NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+data_type      bigint  NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+min    0       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL
+max    0       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL
+num_nulls      5       NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+distinct_count 1       NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+avg_col_len            NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+max_col_len            NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+num_trues              NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+num_falses             NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+bitVector      HL      NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+comment        from deserializer       NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL
+COLUMN_STATS_ACCURATE  
{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"a\":\"true\",\"b\":\"true\",\"c\":\"true\"}}
      NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL
+PREHOOK: query: describe formatted all_nulls b
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@all_nulls
+POSTHOOK: query: describe formatted all_nulls b
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@all_nulls
+col_name       b       NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+data_type      double  NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+min    0.0     NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL
+max    0.0     NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL
+num_nulls      5       NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+distinct_count 1       NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+avg_col_len            NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+max_col_len            NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+num_trues              NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+num_falses             NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+bitVector      HL      NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL
+comment        from deserializer       NULL    NULL    NULL    NULL    NULL    
NULL    NULL    NULL    NULL    NULL
+COLUMN_STATS_ACCURATE  
{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"a\":\"true\",\"b\":\"true\",\"c\":\"true\"}}
      NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    
NULL
+PREHOOK: query: drop table all_nulls
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@all_nulls
+PREHOOK: Output: default@all_nulls
+POSTHOOK: query: drop table all_nulls
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@all_nulls
+POSTHOOK: Output: default@all_nulls
+PREHOOK: query: drop table src_null
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@src_null
+PREHOOK: Output: default@src_null
+POSTHOOK: query: drop table src_null
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@src_null
+POSTHOOK: Output: default@src_null

Reply via email to