You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2016/11/15 03:31:26 UTC
[03/13] hive git commit: HIVE-15003 : Update 'ALTER TABLE...UPDATE
STATISTICS FOR COLUMN..' statement to support more data types (Vineet Garg
via Ashutosh Chauhan)
HIVE-15003 : Update 'ALTER TABLE...UPDATE STATISTICS FOR COLUMN..' statement to support more data types (Vineet Garg via Ashutosh Chauhan)
Signed-off-by: Ashutosh Chauhan <ha...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/27fb87cf
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/27fb87cf
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/27fb87cf
Branch: refs/heads/hive-14535
Commit: 27fb87cfcea241c2d7961baf68e84ce97f2dee7a
Parents: 345353c
Author: Vineet Garg <vg...@hortonworks.com>
Authored: Thu Nov 3 15:18:26 2016 -0700
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Thu Nov 3 15:18:26 2016 -0700
----------------------------------------------------------------------
.../hive/ql/exec/ColumnStatsUpdateTask.java | 14 +-
.../clientpositive/alter_table_update_status.q | 91 ++++
.../alter_table_update_status.q.out | 533 +++++++++++++++++++
3 files changed, 633 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/27fb87cf/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
index d6852dc..eb4488a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
@@ -98,7 +98,9 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
String columnType = colType.get(0);
- if (columnType.equalsIgnoreCase("long")) {
+ if (columnType.equalsIgnoreCase("long") || columnType.equalsIgnoreCase("tinyint")
+ || columnType.equalsIgnoreCase("smallint") || columnType.equalsIgnoreCase("int")
+ || columnType.equalsIgnoreCase("bigint")) {
LongColumnStatsData longStats = new LongColumnStatsData();
longStats.setNumNullsIsSet(false);
longStats.setNumDVsIsSet(false);
@@ -123,7 +125,7 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setLongStats(longStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("double")) {
+ } else if (columnType.equalsIgnoreCase("double") || columnType.equalsIgnoreCase("float")) {
DoubleColumnStatsData doubleStats = new DoubleColumnStatsData();
doubleStats.setNumNullsIsSet(false);
doubleStats.setNumDVsIsSet(false);
@@ -147,7 +149,8 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setDoubleStats(doubleStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("string")) {
+ } else if (columnType.equalsIgnoreCase("string") || columnType.toLowerCase().startsWith("char")
+ || columnType.toLowerCase().startsWith("varchar")) { //char(x),varchar(x) types
StringColumnStatsData stringStats = new StringColumnStatsData();
stringStats.setMaxColLenIsSet(false);
stringStats.setAvgColLenIsSet(false);
@@ -213,7 +216,7 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setBinaryStats(binaryStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("decimal")) {
+ } else if (columnType.toLowerCase().startsWith("decimal")) { //decimal(a,b) type
DecimalColumnStatsData decimalStats = new DecimalColumnStatsData();
decimalStats.setNumNullsIsSet(false);
decimalStats.setNumDVsIsSet(false);
@@ -241,7 +244,8 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setDecimalStats(decimalStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("date")) {
+ } else if (columnType.equalsIgnoreCase("date")
+ || columnType.equalsIgnoreCase("timestamp")) {
DateColumnStatsData dateStats = new DateColumnStatsData();
Map<String, String> mapProp = work.getMapProp();
for (Entry<String, String> entry : mapProp.entrySet()) {
http://git-wip-us.apache.org/repos/asf/hive/blob/27fb87cf/ql/src/test/queries/clientpositive/alter_table_update_status.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/alter_table_update_status.q b/ql/src/test/queries/clientpositive/alter_table_update_status.q
index 18cf758..9415c97 100644
--- a/ql/src/test/queries/clientpositive/alter_table_update_status.q
+++ b/ql/src/test/queries/clientpositive/alter_table_update_status.q
@@ -44,3 +44,94 @@ describe formatted default.src_stat value;
use default;
drop database dummydb;
+
+create table datatype_stats(
+ t TINYINT,
+ s SMALLINT,
+ i INT,
+ b BIGINT,
+ f FLOAT,
+ d DOUBLE,
+ dem DECIMAL, --default decimal (10,0)
+ ts TIMESTAMP,
+ dt DATE,
+ str STRING,
+ v VARCHAR(12),
+ c CHAR(5),
+ bl BOOLEAN,
+ bin BINARY);
+
+INSERT INTO datatype_stats values(2, 3, 45, 456, 45454.4, 454.6565, 2355, '2012-01-01 01:02:03', '2012-01-01', 'update_statistics', 'stats', 'hive', 'true', 'bin');
+INSERT INTO datatype_stats values(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+DESC FORMATTED datatype_stats s;
+DESC FORMATTED datatype_stats i;
+DESC FORMATTED datatype_stats b;
+DESC FORMATTED datatype_stats f;
+DESC FORMATTED datatype_stats d;
+DESC FORMATTED datatype_stats dem;
+DESC FORMATTED datatype_stats ts;
+DESC FORMATTED datatype_stats dt;
+DESC FORMATTED datatype_stats str;
+DESC FORMATTED datatype_stats v;
+DESC FORMATTED datatype_stats c;
+DESC FORMATTED datatype_stats bl;
+DESC FORMATTED datatype_stats bin;
+
+--tinyint
+DESC FORMATTED datatype_stats t;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column t SET ('numDVs'='232','numNulls'='233','highValue'='234','lowValue'='35');
+DESC FORMATTED datatype_stats t;
+--smallint
+DESC FORMATTED datatype_stats s;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column s SET ('numDVs'='56','numNulls'='56','highValue'='489','lowValue'='25');
+DESC FORMATTED datatype_stats s;
+--int
+DESC FORMATTED datatype_stats i;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column i SET ('numDVs'='59','numNulls'='1','highValue'='889','lowValue'='5');
+DESC FORMATTED datatype_stats i;
+--bigint
+DESC FORMATTED datatype_stats b;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column b SET ('numDVs'='9','numNulls'='14','highValue'='89','lowValue'='8');
+DESC FORMATTED datatype_stats b;
+
+--float
+DESC FORMATTED datatype_stats f;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column f SET ('numDVs'='563','numNulls'='45','highValue'='2345.656','lowValue'='8.00');
+DESC FORMATTED datatype_stats f;
+--double
+DESC FORMATTED datatype_stats d;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column d SET ('numDVs'='5677','numNulls'='12','highValue'='560.3367','lowValue'='0.00455');
+DESC FORMATTED datatype_stats d;
+--decimal
+DESC FORMATTED datatype_stats dem;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column dem SET ('numDVs'='57','numNulls'='912','highValue'='560','lowValue'='0');
+DESC FORMATTED datatype_stats dem;
+--timestamp
+DESC FORMATTED datatype_stats ts;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column ts SET ('numDVs'='7','numNulls'='12','highValue'='1357030923','lowValue'='1357030924');
+DESC FORMATTED datatype_stats ts;
+--decimal
+DESC FORMATTED datatype_stats dt;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column dt SET ('numDVs'='57','numNulls'='912','highValue'='2012-01-01','lowValue'='2001-02-04');
+DESC FORMATTED datatype_stats dt;
+--string
+DESC FORMATTED datatype_stats str;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column str SET ('numDVs'='232','numNulls'='233','avgColLen'='2.34','maxColLen'='235');
+DESC FORMATTED datatype_stats str;
+--varchar
+DESC FORMATTED datatype_stats v;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column v SET ('numDVs'='22','numNulls'='33','avgColLen'='4.40','maxColLen'='25');
+DESC FORMATTED datatype_stats v;
+--char
+DESC FORMATTED datatype_stats c;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column c SET ('numDVs'='2','numNulls'='03','avgColLen'='9.00','maxColLen'='58');
+DESC FORMATTED datatype_stats c;
+--boolean
+DESC FORMATTED datatype_stats bl;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column bl SET ('numNulls'='1','numTrues'='9','numFalses'='8');
+DESC FORMATTED datatype_stats bl;
+--binary
+DESC FORMATTED datatype_stats bin;
+ALTER TABLE default.datatype_stats UPDATE STATISTICS for column bin SET ('numNulls'='8','avgColLen'='2.0','maxColLen'='8');
+DESC FORMATTED datatype_stats bin;
+
http://git-wip-us.apache.org/repos/asf/hive/blob/27fb87cf/ql/src/test/results/clientpositive/alter_table_update_status.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/alter_table_update_status.q.out b/ql/src/test/results/clientpositive/alter_table_update_status.q.out
index 6bb6e8e..38be523 100644
--- a/ql/src/test/results/clientpositive/alter_table_update_status.q.out
+++ b/ql/src/test/results/clientpositive/alter_table_update_status.q.out
@@ -157,3 +157,536 @@ POSTHOOK: query: drop database dummydb
POSTHOOK: type: DROPDATABASE
POSTHOOK: Input: database:dummydb
POSTHOOK: Output: database:dummydb
+PREHOOK: query: create table datatype_stats(
+ t TINYINT,
+ s SMALLINT,
+ i INT,
+ b BIGINT,
+ f FLOAT,
+ d DOUBLE,
+ dem DECIMAL, --default decimal (10,0)
+ ts TIMESTAMP,
+ dt DATE,
+ str STRING,
+ v VARCHAR(12),
+ c CHAR(5),
+ bl BOOLEAN,
+ bin BINARY)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@datatype_stats
+POSTHOOK: query: create table datatype_stats(
+ t TINYINT,
+ s SMALLINT,
+ i INT,
+ b BIGINT,
+ f FLOAT,
+ d DOUBLE,
+ dem DECIMAL, --default decimal (10,0)
+ ts TIMESTAMP,
+ dt DATE,
+ str STRING,
+ v VARCHAR(12),
+ c CHAR(5),
+ bl BOOLEAN,
+ bin BINARY)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@datatype_stats
+PREHOOK: query: INSERT INTO datatype_stats values(2, 3, 45, 456, 45454.4, 454.6565, 2355, '2012-01-01 01:02:03', '2012-01-01', 'update_statistics', 'stats', 'hive', 'true', 'bin')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@datatype_stats
+POSTHOOK: query: INSERT INTO datatype_stats values(2, 3, 45, 456, 45454.4, 454.6565, 2355, '2012-01-01 01:02:03', '2012-01-01', 'update_statistics', 'stats', 'hive', 'true', 'bin')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@datatype_stats
+POSTHOOK: Lineage: datatype_stats.b EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.bin EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col14, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.bl EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.c EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.d EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.dem EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.dt EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.f EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.i EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.s EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.str SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.t EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.ts EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.v EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+PREHOOK: query: INSERT INTO datatype_stats values(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@datatype_stats
+POSTHOOK: query: INSERT INTO datatype_stats values(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@datatype_stats
+POSTHOOK: Lineage: datatype_stats.b EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.bin EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col14, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.bl EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.d EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.dem EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.dt EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.f EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.i EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.s EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.str SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.t EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.ts EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: datatype_stats.v EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+PREHOOK: query: DESC FORMATTED datatype_stats s
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats s
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+s smallint from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats i
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats i
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+i int from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats b
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats b
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+b bigint from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats f
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats f
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+f float from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats d
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats d
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+d double from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats dem
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats dem
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+dem decimal(10,0) from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats ts
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats ts
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+ts timestamp from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats dt
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats dt
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+dt date from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats str
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats str
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+str string from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats v
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats v
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+v varchar(12) from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats c
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats c
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+c char(5) from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats bl
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats bl
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+bl boolean from deserializer
+PREHOOK: query: DESC FORMATTED datatype_stats bin
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats bin
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+bin binary from deserializer
+PREHOOK: query: --tinyint
+DESC FORMATTED datatype_stats t
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --tinyint
+DESC FORMATTED datatype_stats t
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+t tinyint from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column t SET ('numDVs'='232','numNulls'='233','highValue'='234','lowValue'='35')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column t SET ('numDVs'='232','numNulls'='233','highValue'='234','lowValue'='35')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats t
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats t
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+t tinyint 35 234 233 232 from deserializer
+PREHOOK: query: --smallint
+DESC FORMATTED datatype_stats s
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --smallint
+DESC FORMATTED datatype_stats s
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+s smallint from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column s SET ('numDVs'='56','numNulls'='56','highValue'='489','lowValue'='25')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column s SET ('numDVs'='56','numNulls'='56','highValue'='489','lowValue'='25')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats s
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats s
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+s smallint 25 489 56 56 from deserializer
+PREHOOK: query: --int
+DESC FORMATTED datatype_stats i
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --int
+DESC FORMATTED datatype_stats i
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+i int from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column i SET ('numDVs'='59','numNulls'='1','highValue'='889','lowValue'='5')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column i SET ('numDVs'='59','numNulls'='1','highValue'='889','lowValue'='5')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats i
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats i
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+i int 5 889 1 59 from deserializer
+PREHOOK: query: --bigint
+DESC FORMATTED datatype_stats b
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --bigint
+DESC FORMATTED datatype_stats b
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+b bigint from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column b SET ('numDVs'='9','numNulls'='14','highValue'='89','lowValue'='8')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column b SET ('numDVs'='9','numNulls'='14','highValue'='89','lowValue'='8')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats b
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats b
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+b bigint 8 89 14 9 from deserializer
+PREHOOK: query: --float
+DESC FORMATTED datatype_stats f
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --float
+DESC FORMATTED datatype_stats f
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+f float from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column f SET ('numDVs'='563','numNulls'='45','highValue'='2345.656','lowValue'='8.00')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column f SET ('numDVs'='563','numNulls'='45','highValue'='2345.656','lowValue'='8.00')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats f
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats f
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+f float 8.0 2345.656 45 563 from deserializer
+PREHOOK: query: --double
+DESC FORMATTED datatype_stats d
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --double
+DESC FORMATTED datatype_stats d
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+d double from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column d SET ('numDVs'='5677','numNulls'='12','highValue'='560.3367','lowValue'='0.00455')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column d SET ('numDVs'='5677','numNulls'='12','highValue'='560.3367','lowValue'='0.00455')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats d
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats d
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+d double 0.00455 560.3367 12 5677 from deserializer
+PREHOOK: query: --decimal
+DESC FORMATTED datatype_stats dem
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --decimal
+DESC FORMATTED datatype_stats dem
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+dem decimal(10,0) from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column dem SET ('numDVs'='57','numNulls'='912','highValue'='560','lowValue'='0')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column dem SET ('numDVs'='57','numNulls'='912','highValue'='560','lowValue'='0')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats dem
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats dem
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+dem decimal(10,0) 0 560 912 57 from deserializer
+PREHOOK: query: --timestamp
+DESC FORMATTED datatype_stats ts
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --timestamp
+DESC FORMATTED datatype_stats ts
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+ts timestamp from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column ts SET ('numDVs'='7','numNulls'='12','highValue'='1357030923','lowValue'='1357030924')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column ts SET ('numDVs'='7','numNulls'='12','highValue'='1357030923','lowValue'='1357030924')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats ts
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats ts
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+ts timestamp 1357030924 1357030923 12 7 from deserializer
+PREHOOK: query: --decimal
+DESC FORMATTED datatype_stats dt
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --decimal
+DESC FORMATTED datatype_stats dt
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+dt date from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column dt SET ('numDVs'='57','numNulls'='912','highValue'='2012-01-01','lowValue'='2001-02-04')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column dt SET ('numDVs'='57','numNulls'='912','highValue'='2012-01-01','lowValue'='2001-02-04')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats dt
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats dt
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+dt date 2001-02-04 2012-01-01 912 57 from deserializer
+PREHOOK: query: --string
+DESC FORMATTED datatype_stats str
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --string
+DESC FORMATTED datatype_stats str
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+str string from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column str SET ('numDVs'='232','numNulls'='233','avgColLen'='2.34','maxColLen'='235')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column str SET ('numDVs'='232','numNulls'='233','avgColLen'='2.34','maxColLen'='235')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats str
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats str
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+str string 233 232 2.34 235 from deserializer
+PREHOOK: query: --varchar
+DESC FORMATTED datatype_stats v
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --varchar
+DESC FORMATTED datatype_stats v
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+v varchar(12) from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column v SET ('numDVs'='22','numNulls'='33','avgColLen'='4.40','maxColLen'='25')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column v SET ('numDVs'='22','numNulls'='33','avgColLen'='4.40','maxColLen'='25')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats v
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats v
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+v varchar(12) 33 22 4.4 25 from deserializer
+PREHOOK: query: --char
+DESC FORMATTED datatype_stats c
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --char
+DESC FORMATTED datatype_stats c
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+c char(5) from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column c SET ('numDVs'='2','numNulls'='03','avgColLen'='9.00','maxColLen'='58')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column c SET ('numDVs'='2','numNulls'='03','avgColLen'='9.00','maxColLen'='58')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats c
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats c
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+c char(5) 3 2 9.0 58 from deserializer
+PREHOOK: query: --boolean
+DESC FORMATTED datatype_stats bl
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --boolean
+DESC FORMATTED datatype_stats bl
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+bl boolean from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column bl SET ('numNulls'='1','numTrues'='9','numFalses'='8')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column bl SET ('numNulls'='1','numTrues'='9','numFalses'='8')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats bl
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats bl
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+bl boolean 1 9 8 from deserializer
+PREHOOK: query: --binary
+DESC FORMATTED datatype_stats bin
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: --binary
+DESC FORMATTED datatype_stats bin
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+bin binary from deserializer
+PREHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column bin SET ('numNulls'='8','avgColLen'='2.0','maxColLen'='8')
+PREHOOK: type: ALTERTABLE_UPDATETABLESTATS
+POSTHOOK: query: ALTER TABLE default.datatype_stats UPDATE STATISTICS for column bin SET ('numNulls'='8','avgColLen'='2.0','maxColLen'='8')
+POSTHOOK: type: ALTERTABLE_UPDATETABLESTATS
+PREHOOK: query: DESC FORMATTED datatype_stats bin
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@datatype_stats
+POSTHOOK: query: DESC FORMATTED datatype_stats bin
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@datatype_stats
+# col_name data_type min max num_nulls distinct_count avg_col_len max_col_len num_trues num_falses comment
+
+bin binary 8 2.0 8 from deserializer