You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2016/05/03 03:37:18 UTC
[01/50] [abbrv] hive git commit: HIVE-13462 :
HiveResultSetMetaData.getPrecision() fails for NULL columns (Jason Dere via
Ashutosh Chauhan)
Repository: hive
Updated Branches:
refs/heads/llap 342668f91 -> e073cce23
HIVE-13462 : HiveResultSetMetaData.getPrecision() fails for NULL columns (Jason Dere 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/35227eb3
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/35227eb3
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/35227eb3
Branch: refs/heads/llap
Commit: 35227eb3caa3f58577171199402a98ee385d6a6b
Parents: 2b59337
Author: Jason Dere <jd...@hortonworks.com>
Authored: Fri Apr 8 12:59:00 2016 -0800
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Sun May 1 18:32:56 2016 -0700
----------------------------------------------------------------------
.../org/apache/hive/jdbc/TestJdbcDriver2.java | 25 ++++++++++++++------
.../java/org/apache/hive/jdbc/JdbcColumn.java | 13 ++++++----
2 files changed, 26 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/35227eb3/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
index 965627f..73bc620 100644
--- a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
+++ b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
@@ -1605,14 +1605,14 @@ public class TestJdbcDriver2 {
ResultSet res = stmt.executeQuery(
"select c1, c2, c3, c4, c5 as a, c6, c7, c8, c9, c10, c11, c12, " +
- "c1*2, sentences(null, null, null) as b, c17, c18, c20, c21, c22, c23 from " + dataTypeTableName +
+ "c1*2, sentences(null, null, null) as b, c17, c18, c20, c21, c22, c23, null as null_val from " + dataTypeTableName +
" limit 1");
ResultSetMetaData meta = res.getMetaData();
ResultSet colRS = con.getMetaData().getColumns(null, null,
dataTypeTableName.toLowerCase(), null);
- assertEquals(20, meta.getColumnCount());
+ assertEquals(21, meta.getColumnCount());
assertTrue(colRS.next());
@@ -1876,6 +1876,14 @@ public class TestJdbcDriver2 {
assertEquals(15, meta.getPrecision(19));
assertEquals(0, meta.getScale(19));
+ assertEquals("c22", colRS.getString("COLUMN_NAME"));
+ assertEquals(Types.CHAR, colRS.getInt("DATA_TYPE"));
+ assertEquals("char", colRS.getString("TYPE_NAME").toLowerCase());
+ assertEquals(meta.getPrecision(19), colRS.getInt("COLUMN_SIZE"));
+ assertEquals(meta.getScale(19), colRS.getInt("DECIMAL_DIGITS"));
+
+ assertTrue(colRS.next());
+
assertEquals("c23", meta.getColumnName(20));
assertEquals(Types.BINARY, meta.getColumnType(20));
assertEquals("binary", meta.getColumnTypeName(20));
@@ -1883,11 +1891,14 @@ public class TestJdbcDriver2 {
assertEquals(Integer.MAX_VALUE, meta.getPrecision(20));
assertEquals(0, meta.getScale(20));
- assertEquals("c22", colRS.getString("COLUMN_NAME"));
- assertEquals(Types.CHAR, colRS.getInt("DATA_TYPE"));
- assertEquals("char", colRS.getString("TYPE_NAME").toLowerCase());
- assertEquals(meta.getPrecision(19), colRS.getInt("COLUMN_SIZE"));
- assertEquals(meta.getScale(19), colRS.getInt("DECIMAL_DIGITS"));
+ assertTrue(colRS.next());
+
+ assertEquals("null_val", meta.getColumnName(21));
+ assertEquals(Types.NULL, meta.getColumnType(21));
+ assertEquals("void", meta.getColumnTypeName(21));
+ assertEquals(4, meta.getColumnDisplaySize(21));
+ assertEquals(0, meta.getPrecision(21));
+ assertEquals(0, meta.getScale(21));
for (int i = 1; i <= meta.getColumnCount(); i++) {
assertFalse(meta.isAutoIncrement(i));
http://git-wip-us.apache.org/repos/asf/hive/blob/35227eb3/jdbc/src/java/org/apache/hive/jdbc/JdbcColumn.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/JdbcColumn.java b/jdbc/src/java/org/apache/hive/jdbc/JdbcColumn.java
index 5aed679..38918f0 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/JdbcColumn.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/JdbcColumn.java
@@ -156,6 +156,8 @@ public class JdbcColumn {
return Type.ARRAY_TYPE;
} else if ("struct".equalsIgnoreCase(type)) {
return Type.STRUCT_TYPE;
+ } else if ("void".equalsIgnoreCase(type) || "null".equalsIgnoreCase(type)) {
+ return Type.NULL_TYPE;
}
throw new SQLException("Unrecognized column type: " + type);
}
@@ -165,11 +167,7 @@ public class JdbcColumn {
}
public static int hiveTypeToSqlType(String type) throws SQLException {
- if ("void".equalsIgnoreCase(type) || "null".equalsIgnoreCase(type)) {
- return Types.NULL;
- } else {
- return hiveTypeToSqlType(typeStringToHiveType(type));
- }
+ return hiveTypeToSqlType(typeStringToHiveType(type));
}
static String getColumnTypeName(String type) throws SQLException {
@@ -225,6 +223,8 @@ public class JdbcColumn {
// according to hiveTypeToSqlType possible options are:
int columnType = hiveTypeToSqlType(hiveType);
switch(columnType) {
+ case Types.NULL:
+ return 4; // "NULL"
case Types.BOOLEAN:
return columnPrecision(hiveType, columnAttributes);
case Types.CHAR:
@@ -266,6 +266,8 @@ public class JdbcColumn {
int columnType = hiveTypeToSqlType(hiveType);
// according to hiveTypeToSqlType possible options are:
switch(columnType) {
+ case Types.NULL:
+ return 0;
case Types.BOOLEAN:
return 1;
case Types.CHAR:
@@ -320,6 +322,7 @@ public class JdbcColumn {
int columnType = hiveTypeToSqlType(hiveType);
// according to hiveTypeToSqlType possible options are:
switch(columnType) {
+ case Types.NULL:
case Types.BOOLEAN:
case Types.CHAR:
case Types.VARCHAR:
[17/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part.q.out
new file mode 100644
index 0000000..cac8a9e
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part.q.out
@@ -0,0 +1,3999 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=11)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=11)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=10 width=11)
+ default@part_add_int_permute_select,part_add_int_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: drop table part_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: drop table part_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=15)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=15)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=10 width=15)
+ default@part_add_int_string_permute_select,part_add_int_string_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c d
+1 1 1 original NULL NULL
+10 1 6 new NULL NULL
+2 1 2 original NULL NULL
+3 1 3 original NULL NULL
+4 1 4 original NULL NULL
+5 2 1 new 10 ten
+6 2 2 new 20 twenty
+7 2 3 new 30 thirty
+8 2 4 new 40 forty
+9 1 5 new NULL NULL
+PREHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a c d
+1 1 1 NULL NULL
+10 1 6 NULL NULL
+2 1 2 NULL NULL
+3 1 3 NULL NULL
+4 1 4 NULL NULL
+5 2 1 10 ten
+6 2 2 20 twenty
+7 2 3 30 thirty
+8 2 4 40 forty
+9 1 5 NULL NULL
+PREHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a d
+1 1 1 NULL
+10 1 6 NULL
+2 1 2 NULL
+3 1 3 NULL
+4 1 4 NULL
+5 2 1 ten
+6 2 2 twenty
+7 2 3 thirty
+8 2 4 forty
+9 1 5 NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part d
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 ten
+6 2 twenty
+7 2 thirty
+8 2 forty
+9 1 NULL
+PREHOOK: query: drop table part_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: drop table part_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=38)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=38)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ TableScan [TS_0] (rows=10 width=38)
+ default@part_change_string_group_double,part_change_string_group_double,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Input: default@part_change_string_group_double@part=1
+PREHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Input: default@part_change_string_group_double@part=1
+POSTHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 b
+1 1 753.7028 753.7028 753.7028 original
+10 1 9250340.75 9250340.75 9250340.75 new
+2 1 -3651.672121 -3651.672121 -3651.672121 original
+3 1 -29.0764 -29.0764 -29.0764 original
+4 1 -10.3 -10.3 -10.3 original
+5 2 30.774 30.774 30.774 new
+6 2 20.31 20.31 20.31 new
+7 2 46114.284799488 46114.284799488 46114.284799488 new
+8 2 -66475.561431 -66475.561431 -66475.561431 new
+9 1 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table part_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: drop table part_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=9 width=132)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=9 width=132)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ TableScan [TS_0] (rows=9 width=132)
+ default@part_change_date_group_string_group_timestamp,part_change_date_group_string_group_timestamp,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 1 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 1 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 2 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 2 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 1 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 NULL 6229-06-28 02:54:28.970117179 NULL new
+9 1 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 NULL 5966-07-09 03:30:50.597 NULL new
+PREHOOK: query: drop table part_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table part_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=9 width=61)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=9 width=61)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ TableScan [TS_0] (rows=9 width=61)
+ default@part_change_date_group_string_group_date,part_change_date_group_string_group_date,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 1 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 1 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 2 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 2 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 2 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 2 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table part_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: drop table part_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=10 width=33)
+ default@part_change_numeric_group_string_group_multi_ints_string,part_change_numeric_group_string_group_multi_ints_string,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+10 1 17 NULL 754072151 3289094 new
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+5 2 2000 72909 3244222 -93222 new
+6 2 1 200 2323322 5430907 new
+7 2 256 32768 31889 470614135 new
+8 2 5555 40000 -719017797 810662019 new
+9 1 100 5000 5443 0 new
+PREHOOK: query: drop table part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__17
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__17
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).b SIMPLE [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__18
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__18
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=2
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).b SIMPLE [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).b SIMPLE [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=10 width=33)
+ default@part_change_numeric_group_string_group_multi_ints_char,part_change_numeric_group_string_group_multi_ints_char,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_stri
<TRUNCATED>
[10/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_table.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_table.q.out
new file mode 100644
index 0000000..1b46fa7
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_table.q.out
@@ -0,0 +1,3741 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=11)
+ Output:["_col0","_col1","_col2"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=11)
+ Output:["_col0","_col1","_col2"]
+ TableScan [TS_0] (rows=10 width=11)
+ default@table_add_int_permute_select,table_add_int_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: drop table table_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: drop table table_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=15)
+ Output:["_col0","_col1","_col2"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=15)
+ Output:["_col0","_col1","_col2"]
+ TableScan [TS_0] (rows=10 width=15)
+ default@table_add_int_string_permute_select,table_add_int_string_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c d
+1 1 original NULL NULL
+10 6 new 200 two hundred
+2 2 original NULL NULL
+3 3 original NULL NULL
+4 4 original NULL NULL
+5 1 new 10 ten
+6 2 new 20 twenty
+7 3 new 30 thirty
+8 4 new 40 forty
+9 5 new 100 hundred
+PREHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a c d
+1 1 NULL NULL
+10 6 200 two hundred
+2 2 NULL NULL
+3 3 NULL NULL
+4 4 NULL NULL
+5 1 10 ten
+6 2 20 twenty
+7 3 30 thirty
+8 4 40 forty
+9 5 100 hundred
+PREHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a d
+1 1 NULL
+10 6 two hundred
+2 2 NULL
+3 3 NULL
+4 4 NULL
+5 1 ten
+6 2 twenty
+7 3 thirty
+8 4 forty
+9 5 hundred
+PREHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num d
+1 NULL
+10 two hundred
+2 NULL
+3 NULL
+4 NULL
+5 ten
+6 twenty
+7 thirty
+8 forty
+9 hundred
+PREHOOK: query: drop table table_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: drop table table_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=38)
+ Output:["_col0","_col1","_col2","_col3","_col4"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=38)
+ Output:["_col0","_col1","_col2","_col3","_col4"]
+ TableScan [TS_0] (rows=10 width=38)
+ default@table_change_string_group_double,table_change_string_group_double,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+insert_num c1 c2 c3 b
+1 753.7028 753.7028 753.7028 original
+10 9250340.75 9250340.75 9250340.75 new
+2 -3651.672121 -3651.672121 -3651.672121 original
+3 -29.0764 -29.0764 -29.0764 original
+4 -10.3 -10.3 -10.3 original
+5 30.774 30.774 30.774 new
+6 20.31 20.31 20.31 new
+7 46114.284799488 46114.284799488 46114.284799488 new
+8 -66475.561431 -66475.561431 -66475.561431 new
+9 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table table_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: drop table table_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=9 width=132)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=9 width=132)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=9 width=132)
+ default@table_change_date_group_string_group_timestamp,table_change_date_group_string_group_timestamp,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 6229-06-28 02:5 6229-06-28 02:54:28.970117179 6229-06-28 02:5 new
+9 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 5966-07-09 03:3 5966-07-09 03:30:50.597 5966-07-09 03:3 new
+PREHOOK: query: drop table table_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table table_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+c1 string
+c2 char(50)
+c3 char(15)
+c4 varchar(50)
+c5 varchar(15)
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 3
+ rawDataSize 195
+ totalSize 198
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=9 width=61)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=9 width=61)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=9 width=61)
+ default@table_change_date_group_string_group_date,table_change_date_group_string_group_date,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table table_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: drop table table_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ TableScan [TS_0] (rows=10 width=33)
+ default@table_change_numeric_group_string_group_multi_ints_string,table_change_numeric_group_string_group_multi_ints_string,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+10 17 90000 754072151 3289094 new
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+5 2000 72909 3244222 -93222 new
+6 1 200 2323322 5430907 new
+7 256 32768 31889 470614135 new
+8 5555 40000 -719017797 810662019 new
+9 100 5000 5443 0 new
+PREHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__17
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__17
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__18
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__18
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ TableScan [TS_0] (rows=10 width=33)
+ default@table_change_numeric_group_string_group_multi_ints_char,table_change_numeric_group_string_group_multi_ints_char,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+10 17 90000 754072151 3289094 new
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+5 2000 72909 3244222 -93222 new
+6 1 200 2323322 5430907 new
+7 256 32768 31889 470614135 new
+8 5555 40000 -719017797 810662019 new
+9 100 5000 5443 0 new
+PREHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__19
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__19
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.b SIMPLE [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.c1 EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.c2 EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.c3 EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.c4 EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.insert_num EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__20
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__20
+POSTHOOK: Outp
<TRUNCATED>
[12/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part_all_complex.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part_all_complex.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part_all_complex.q.out
new file mode 100644
index 0000000..f45b517
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part_all_complex.q.out
@@ -0,0 +1,675 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_a_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_a_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:s1, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct1_a_txt.insert_num struct1_a_txt.s1 struct1_a_txt.b
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":-29.0764,"c7":4.70614135E8,"c8":470614135,"c9":"dynamic reptile ","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":n)\u06af} original
+2 1 {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":-3651.672,"c7":46114.284799488,"c8":46114.284799488,"c9":" baffling ","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":n)\u06af} original
+3 1 {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af} original
+4 1 {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af} original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_b_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_b_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).b SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).insert_num SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).s1 SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_b_txt.insert_num struct1_b_txt.s1 struct1_b_txt.b
+PREHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_c_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_c_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_c_txt.insert_num struct1_c_txt.s1 struct1_c_txt.b
+PREHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=6 width=151)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=6 width=151)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=6 width=151)
+ default@part_change_various_various_struct1,part_change_various_various_struct1,Tbl:COMPLETE,Col:NONE,Output:["insert_num","s1","b"]
+
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+PREHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":"TRUE","c2":null,"c3":null,"c4":"3244222","c5":"-99999999999","c6":"-29.0764","c7":"4.70614135E8","c8":"470614135","c9":"dynamic reptile","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":"n)\u06af"} original
+2 1 {"c1":null,"c2":"100","c3":null,"c4":"14","c5":"-23866739993","c6":"-3651.672","c7":"46114.284799488","c8":"46114.284799488","c9":" baffling","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":"n)\u06af"} original
+3 1 {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"} original
+4 1 {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"} original
+5 2 {"c1":"true","c2":"400","c3":"44388","c4":"-100","c5":"953967041.","c6":"62.079153","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":"timestamp","c12":"date","c13":"binary"} new
+6 1 {"c1":"FALSE","c2":"-67","c3":"833","c4":"63993","c5":"1255178165","c6":"905071.0","c7":"-4314.7918","c8":"-1240033819","c9":"trial","c10":"trial","c11":null,"c12":"2016-03-07","c13":"n)\u06af"} new
+PREHOOK: query: drop table part_change_various_various_struct1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: drop table part_change_various_various_struct1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1
+PREHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+insert_num part b
+1 1 original
+2 1 original
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_a_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_a_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_a_txt.insert_num struct2_a_txt.b struct2_a_txt.s2
+PREHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_b_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_b_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_b_txt.insert_num struct2_b_txt.b struct2_b_txt.s2
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af}
+6 2 new {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_c_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_c_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_c_txt.insert_num struct2_c_txt.b struct2_c_txt.s2
+PREHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_d_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_d_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_d_txt.insert_num struct2_d_txt.b struct2_d_txt.s2
+PREHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=8 width=113)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=8 width=113)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=8 width=113)
+ default@part_add_various_various_struct2,part_add_various_various_struct2,Tbl:COMPLETE,Col:NONE,Output:["insert_num","b","s2"]
+
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"}
+6 2 new {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"}
+7 2 new {"c1":"TRUE","c2":null,"c3":null,"c4":"-100","c5":"953967041","c6":"62.07915","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":null,"c12":null,"c13":"n)\u06af"}
+8 1 new NULL
+PREHOOK: query: drop table part_add_various_various_struct2
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: drop table part_add_various_various_struct2
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_a_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_a_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint>, comment:null), ]
+struct4_a_txt.insert_num struct4_a_txt.b struct4_a_txt.s3
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_b_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_b_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).b SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).insert_num SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).s3 SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_b_txt.insert_num struct4_b_txt.b struct4_b_txt.s3
+PREHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_c_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_c_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_c_txt.insert_num struct4_c_txt.b struct4_c_txt.s3
+PREHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=4 width=84)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=4 width=84)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=4 width=84)
+ default@part_add_to_various_various_struct4,part_add_to_various_various_struct4,Tbl:COMPLETE,Col:NONE,Output:["insert_num","b","s3"]
+
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+3 2 new {"c1":true,"c2":null,"c3":null,"c4":-100,"c5":953967041,"c6":62.07915,"c7":718.78,"c8":1,"c9":"verdict ","c10":"verdict","c11":null,"c12":null,"c13":n)\u06af}
+4 1 new {"c1":false,"c2":-67,"c3":833,"c4":63993,"c5":1255178165,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+PREHOOK: query: drop table part_add_to_various_various_struct4
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: drop table part_add_to_various_various_struct4
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
[13/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part.q.out
new file mode 100644
index 0000000..24600d9
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part.q.out
@@ -0,0 +1,3999 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=11)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=11)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=10 width=11)
+ default@part_add_int_permute_select,part_add_int_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: drop table part_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: drop table part_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=15)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=15)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=10 width=15)
+ default@part_add_int_string_permute_select,part_add_int_string_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c d
+1 1 1 original NULL NULL
+10 1 6 new NULL NULL
+2 1 2 original NULL NULL
+3 1 3 original NULL NULL
+4 1 4 original NULL NULL
+5 2 1 new 10 ten
+6 2 2 new 20 twenty
+7 2 3 new 30 thirty
+8 2 4 new 40 forty
+9 1 5 new NULL NULL
+PREHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a c d
+1 1 1 NULL NULL
+10 1 6 NULL NULL
+2 1 2 NULL NULL
+3 1 3 NULL NULL
+4 1 4 NULL NULL
+5 2 1 10 ten
+6 2 2 20 twenty
+7 2 3 30 thirty
+8 2 4 40 forty
+9 1 5 NULL NULL
+PREHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a d
+1 1 1 NULL
+10 1 6 NULL
+2 1 2 NULL
+3 1 3 NULL
+4 1 4 NULL
+5 2 1 ten
+6 2 2 twenty
+7 2 3 thirty
+8 2 4 forty
+9 1 5 NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part d
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 ten
+6 2 twenty
+7 2 thirty
+8 2 forty
+9 1 NULL
+PREHOOK: query: drop table part_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: drop table part_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=38)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=38)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ TableScan [TS_0] (rows=10 width=38)
+ default@part_change_string_group_double,part_change_string_group_double,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Input: default@part_change_string_group_double@part=1
+PREHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Input: default@part_change_string_group_double@part=1
+POSTHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 b
+1 1 753.7028 753.7028 753.7028 original
+10 1 9250340.75 9250340.75 9250340.75 new
+2 1 -3651.672121 -3651.672121 -3651.672121 original
+3 1 -29.0764 -29.0764 -29.0764 original
+4 1 -10.3 -10.3 -10.3 original
+5 2 30.774 30.774 30.774 new
+6 2 20.31 20.31 20.31 new
+7 2 46114.284799488 46114.284799488 46114.284799488 new
+8 2 -66475.561431 -66475.561431 -66475.561431 new
+9 1 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table part_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: drop table part_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=9 width=132)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=9 width=132)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ TableScan [TS_0] (rows=9 width=132)
+ default@part_change_date_group_string_group_timestamp,part_change_date_group_string_group_timestamp,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 1 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 1 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 2 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 2 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 1 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 NULL 6229-06-28 02:54:28.970117179 NULL new
+9 1 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 NULL 5966-07-09 03:30:50.597 NULL new
+PREHOOK: query: drop table part_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table part_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=9 width=61)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=9 width=61)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ TableScan [TS_0] (rows=9 width=61)
+ default@part_change_date_group_string_group_date,part_change_date_group_string_group_date,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 1 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 1 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 2 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 2 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 2 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 2 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table part_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: drop table part_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=10 width=33)
+ default@part_change_numeric_group_string_group_multi_ints_string,part_change_numeric_group_string_group_multi_ints_string,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+10 1 17 NULL 754072151 3289094 new
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+5 2 2000 72909 3244222 -93222 new
+6 2 1 200 2323322 5430907 new
+7 2 256 32768 31889 470614135 new
+8 2 5555 40000 -719017797 810662019 new
+9 1 100 5000 5443 0 new
+PREHOOK: query: drop table part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__17
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__17
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).b SIMPLE [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__18
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__18
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=2
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).b SIMPLE [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).b SIMPLE [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=10 width=33)
+ default@part_change_numeric_group_string_group_multi_ints_char,part_change_numeric_group_string_group_multi_ints_char,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_char@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_stri
<TRUNCATED>
[26/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part.q.out b/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part.q.out
new file mode 100644
index 0000000..b53c373
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part.q.out
@@ -0,0 +1,4479 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_int_permute_select
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: drop table part_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: drop table part_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_int_string_permute_select
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c d
+1 1 1 original NULL NULL
+10 1 6 new NULL NULL
+2 1 2 original NULL NULL
+3 1 3 original NULL NULL
+4 1 4 original NULL NULL
+5 2 1 new 10 ten
+6 2 2 new 20 twenty
+7 2 3 new 30 thirty
+8 2 4 new 40 forty
+9 1 5 new NULL NULL
+PREHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a c d
+1 1 1 NULL NULL
+10 1 6 NULL NULL
+2 1 2 NULL NULL
+3 1 3 NULL NULL
+4 1 4 NULL NULL
+5 2 1 10 ten
+6 2 2 20 twenty
+7 2 3 30 thirty
+8 2 4 40 forty
+9 1 5 NULL NULL
+PREHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a d
+1 1 1 NULL
+10 1 6 NULL
+2 1 2 NULL
+3 1 3 NULL
+4 1 4 NULL
+5 2 1 ten
+6 2 2 twenty
+7 2 3 thirty
+8 2 4 forty
+9 1 5 NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part d
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 ten
+6 2 twenty
+7 2 thirty
+8 2 forty
+9 1 NULL
+PREHOOK: query: drop table part_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: drop table part_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_string_group_double
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: double), c2 (type: double), c3 (type: double), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: double), _col3 (type: double), _col4 (type: double), _col5 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: double), VALUE._col2 (type: double), VALUE._col3 (type: double), VALUE._col4 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Input: default@part_change_string_group_double@part=1
+PREHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Input: default@part_change_string_group_double@part=1
+POSTHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 b
+1 1 753.7028 753.7028 753.7028 original
+10 1 9250340.75 9250340.75 9250340.75 new
+2 1 -3651.672121 -3651.672121 -3651.672121 original
+3 1 -29.0764 -29.0764 -29.0764 original
+4 1 -10.3 -10.3 -10.3 original
+5 2 30.774 30.774 30.774 new
+6 2 20.31 20.31 20.31 new
+7 2 46114.284799488 46114.284799488 46114.284799488 new
+8 2 -66475.561431 -66475.561431 -66475.561431 new
+9 1 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table part_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: drop table part_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_date_group_string_group_timestamp
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: char(50)), _col4 (type: char(15)), _col5 (type: varchar(50)), _col6 (type: varchar(15)), _col7 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: char(50)), VALUE._col3 (type: char(15)), VALUE._col4 (type: varchar(50)), VALUE._col5 (type: varchar(15)), VALUE._col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 1 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 1 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 2 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 2 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 1 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 NULL 6229-06-28 02:54:28.970117179 NULL new
+9 1 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 NULL 5966-07-09 03:30:50.597 NULL new
+PREHOOK: query: drop table part_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table part_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_date_group_string_group_date
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: char(50)), _col4 (type: char(15)), _col5 (type: varchar(50)), _col6 (type: varchar(15)), _col7 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: char(50)), VALUE._col3 (type: char(15)), VALUE._col4 (type: varchar(50)), VALUE._col5 (type: varchar(15)), VALUE._col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 1 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 1 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 2 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 2 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 2 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 2 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table part_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: drop table part_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_numeric_group_string_group_multi_ints_string
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: string), c2 (type: string), c3 (type: string), c4 (type: string), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: string), VALUE._col3 (type: string), VALUE._col4 (type: string), VALUE._col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+10 1 17 NULL 754072151 3289094 new
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+5 2 2000 72909 3244222 -93222 new
+6 2 1 200 2323322 5430907 new
+7 2 256 32768 31889 470614135 new
+8 2 5555 40000 -719017797 810662019 new
+9 1 100 5000 5443 0 new
+PREHOOK: query: drop table part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__17
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__17
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).b SIMPLE [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_gr
<TRUNCATED>
[48/50] [abbrv] hive git commit: HIVE-13568: UDFs for use in
column-masking - includes updates for review comments (Madhan Neethiraj via
Gunther Hagleitner)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/results/clientpositive/udf_mask_show_last_n.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_mask_show_last_n.q.out b/ql/src/test/results/clientpositive/udf_mask_show_last_n.q.out
new file mode 100644
index 0000000..3bf2e62
--- /dev/null
+++ b/ql/src/test/results/clientpositive/udf_mask_show_last_n.q.out
@@ -0,0 +1,68 @@
+PREHOOK: query: DESCRIBE FUNCTION mask_show_last_n
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESCRIBE FUNCTION mask_show_last_n
+POSTHOOK: type: DESCFUNCTION
+masks all but last n characters of the value
+PREHOOK: query: DESC FUNCTION EXTENDED mask_show_last_n
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESC FUNCTION EXTENDED mask_show_last_n
+POSTHOOK: type: DESCFUNCTION
+masks all but last n characters of the value
+Examples:
+ mask_show_last_n(ccn, 8)
+ mask_show_last_n(ccn, 8, 'x', 'x', 'x')
+ Arguments:
+ mask_show_last_n(value, charCount, upperChar, lowerChar, digitChar, otherChar, numberChar)
+ value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR
+ charCount - number of characters. Default value: 4
+ upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'
+ lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'
+ digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'
+ otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1
+ numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'
+
+PREHOOK: query: explain select mask_show_last_n('TestString-123', 4, 'X', 'x', '0', '1')
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select mask_show_last_n('TestString-123', 4, 'X', 'x', '0', '1')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: 'XxxxXxxxxx-123' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 98 Basic stats: COMPLETE Column stats: COMPLETE
+ ListSink
+
+PREHOOK: query: select mask_show_last_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_show_last_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_last_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_last_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select mask_show_last_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_show_last_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_last_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_last_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+XxxxXxxxxx-123 XxxxXxxxxx-123 XxxxXxxxxx:000:::::: 123 -13191 52345 52345 1900-01-01
[47/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
HIVE-12878: Support Vectorization for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/d5285d8e
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/d5285d8e
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/d5285d8e
Branch: refs/heads/llap
Commit: d5285d8ebaf5bef2a13b2c2338be2fe683804b02
Parents: 2f0339b
Author: Matt McCline <mm...@hortonworks.com>
Authored: Mon May 2 16:58:53 2016 -0700
Committer: Matt McCline <mm...@hortonworks.com>
Committed: Mon May 2 16:58:53 2016 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hive/conf/HiveConf.java | 9 +
data/files/struct1_a.txt | 4 +
data/files/struct1_b.txt | 1 +
data/files/struct1_c.txt | 1 +
data/files/struct2_a.txt | 2 +
data/files/struct2_b.txt | 2 +
data/files/struct2_c.txt | 1 +
data/files/struct2_d.txt | 1 +
data/files/struct3_a.txt | 2 +
data/files/struct3_b.txt | 1 +
data/files/struct3_c.txt | 1 +
data/files/struct4_a.txt | 2 +
data/files/struct4_b.txt | 1 +
data/files/struct4_c.txt | 1 +
.../test/resources/testconfiguration.properties | 28 +-
.../hive/llap/io/api/impl/LlapInputFormat.java | 2 +-
.../hive/ql/exec/AbstractMapOperator.java | 178 +
.../apache/hadoop/hive/ql/exec/MapOperator.java | 86 +-
.../apache/hadoop/hive/ql/exec/Utilities.java | 33 +-
.../hadoop/hive/ql/exec/mr/ExecMapper.java | 3 +-
.../ql/exec/spark/SparkMapRecordHandler.java | 3 +-
.../hadoop/hive/ql/exec/tez/DagUtils.java | 3 +-
.../hive/ql/exec/tez/MapRecordProcessor.java | 15 +-
.../hive/ql/exec/tez/MapRecordSource.java | 6 +-
.../hive/ql/exec/tez/ReduceRecordSource.java | 4 +-
.../vector/VectorAppMasterEventOperator.java | 16 +-
.../hive/ql/exec/vector/VectorAssignRow.java | 1111 ++--
.../ql/exec/vector/VectorAssignRowDynBatch.java | 41 -
.../exec/vector/VectorAssignRowSameBatch.java | 36 -
.../ql/exec/vector/VectorDeserializeRow.java | 1114 ++--
.../hive/ql/exec/vector/VectorExtractRow.java | 971 +---
.../exec/vector/VectorExtractRowDynBatch.java | 40 -
.../exec/vector/VectorExtractRowSameBatch.java | 36 -
.../ql/exec/vector/VectorFileSinkOperator.java | 16 +-
.../ql/exec/vector/VectorGroupByOperator.java | 13 +-
.../exec/vector/VectorMapJoinBaseOperator.java | 11 +-
.../ql/exec/vector/VectorMapJoinOperator.java | 4 +-
.../VectorMapJoinOuterFilteredOperator.java | 17 +-
.../hive/ql/exec/vector/VectorMapOperator.java | 848 ++-
.../exec/vector/VectorReduceSinkOperator.java | 16 +-
.../exec/vector/VectorSMBMapJoinOperator.java | 11 +-
.../VectorSparkHashTableSinkOperator.java | 16 +-
...VectorSparkPartitionPruningSinkOperator.java | 13 +-
.../ql/exec/vector/VectorizationContext.java | 12 +-
.../ql/exec/vector/VectorizedBatchUtil.java | 49 +
.../VectorMapJoinGenerateResultOperator.java | 8 +-
.../fast/VectorMapJoinFastLongHashUtil.java | 10 +-
.../fast/VectorMapJoinFastStringCommon.java | 10 +-
.../hadoop/hive/ql/io/HiveInputFormat.java | 6 +-
.../hadoop/hive/ql/io/NullRowsInputFormat.java | 2 +-
.../hadoop/hive/ql/io/orc/OrcInputFormat.java | 4 +-
.../ql/io/parquet/MapredParquetInputFormat.java | 2 +-
.../hive/ql/optimizer/physical/Vectorizer.java | 334 +-
.../apache/hadoop/hive/ql/plan/BaseWork.java | 23 +
.../org/apache/hadoop/hive/ql/plan/MapWork.java | 11 +
.../hive/ql/plan/VectorPartitionConversion.java | 172 +-
.../hive/ql/plan/VectorPartitionDesc.java | 164 +-
.../ql/exec/vector/TestVectorRowObject.java | 14 +-
.../hive/ql/exec/vector/TestVectorSerDeRow.java | 169 +-
.../hive/ql/io/orc/TestInputOutputFormat.java | 10 +-
.../avro_schema_evolution_native.q | 18 +
.../queries/clientpositive/bucket_groupby.q | 33 +-
.../queries/clientpositive/groupby_sort_10.q | 2 +
.../schema_evol_orc_acidvec_mapwork_part.q | 3 +
.../schema_evol_orc_acidvec_mapwork_table.q | 3 +
.../schema_evol_orc_nonvec_mapwork_table.q | 2 -
.../schema_evol_orc_vec_mapwork_part.q | 3 +
.../schema_evol_orc_vec_mapwork_table.q | 7 +-
.../schema_evol_text_fetchwork_table.q | 56 -
.../schema_evol_text_mapwork_table.q | 56 -
.../schema_evol_text_nonvec_fetchwork_part.q | 98 -
.../schema_evol_text_nonvec_fetchwork_table.q | 67 -
.../schema_evol_text_nonvec_mapwork_part.q | 828 ++-
..._evol_text_nonvec_mapwork_part_all_complex.q | 159 +
...vol_text_nonvec_mapwork_part_all_primitive.q | 509 ++
.../schema_evol_text_nonvec_mapwork_table.q | 822 ++-
.../schema_evol_text_vec_mapwork_part.q | 827 +++
...ema_evol_text_vec_mapwork_part_all_complex.q | 164 +
...a_evol_text_vec_mapwork_part_all_primitive.q | 514 ++
.../schema_evol_text_vec_mapwork_table.q | 826 +++
.../schema_evol_text_vecrow_mapwork_part.q | 827 +++
..._evol_text_vecrow_mapwork_part_all_complex.q | 165 +
...vol_text_vecrow_mapwork_part_all_primitive.q | 514 ++
.../schema_evol_text_vecrow_mapwork_table.q | 826 +++
.../clientpositive/tez_schema_evolution.q | 1 +
.../avro_schema_evolution_native.q.out | 206 +
.../results/clientpositive/bucket_groupby.q.out | 308 +-
.../clientpositive/groupby_sort_10.q.out | 8 +-
.../schema_evol_text_fetchwork_table.q.out | 298 --
.../schema_evol_text_mapwork_table.q.out | 298 --
...schema_evol_text_nonvec_fetchwork_part.q.out | 642 ---
...chema_evol_text_nonvec_fetchwork_table.q.out | 297 --
.../schema_evol_text_nonvec_mapwork_part.q.out | 4909 ++++++++++++++++--
...l_text_nonvec_mapwork_part_all_complex.q.out | 726 +++
...text_nonvec_mapwork_part_all_primitive.q.out | 3038 +++++++++++
.../schema_evol_text_nonvec_mapwork_table.q.out | 4376 +++++++++++++++-
.../schema_evol_text_vec_mapwork_part.q.out | 4479 ++++++++++++++++
...evol_text_vec_mapwork_part_all_complex.q.out | 730 +++
...ol_text_vec_mapwork_part_all_primitive.q.out | 3058 +++++++++++
.../schema_evol_text_vec_mapwork_table.q.out | 4221 +++++++++++++++
.../schema_evol_text_vecrow_mapwork_part.q.out | 4479 ++++++++++++++++
...l_text_vecrow_mapwork_part_all_complex.q.out | 732 +++
...text_vecrow_mapwork_part_all_primitive.q.out | 3058 +++++++++++
.../schema_evol_text_vecrow_mapwork_table.q.out | 4221 +++++++++++++++
.../tez/schema_evol_text_fetchwork_table.q.out | 298 --
.../tez/schema_evol_text_mapwork_table.q.out | 298 --
...schema_evol_text_nonvec_fetchwork_part.q.out | 642 ---
...chema_evol_text_nonvec_fetchwork_table.q.out | 297 --
.../schema_evol_text_nonvec_mapwork_part.q.out | 4453 ++++++++++++++--
...l_text_nonvec_mapwork_part_all_complex.q.out | 669 +++
...text_nonvec_mapwork_part_all_primitive.q.out | 2734 ++++++++++
.../schema_evol_text_nonvec_mapwork_table.q.out | 3920 +++++++++++++-
.../tez/schema_evol_text_vec_mapwork_part.q.out | 3999 ++++++++++++++
...evol_text_vec_mapwork_part_all_complex.q.out | 673 +++
...ol_text_vec_mapwork_part_all_primitive.q.out | 2738 ++++++++++
.../schema_evol_text_vec_mapwork_table.q.out | 3741 +++++++++++++
.../schema_evol_text_vecrow_mapwork_part.q.out | 3999 ++++++++++++++
...l_text_vecrow_mapwork_part_all_complex.q.out | 675 +++
...text_vecrow_mapwork_part_all_primitive.q.out | 2738 ++++++++++
.../schema_evol_text_vecrow_mapwork_table.q.out | 3741 +++++++++++++
.../vector_orc_string_reader_empty_dict.q.out | 62 +
.../tez/vector_partition_diff_num_cols.q.out | 1 +
.../tez/vector_tablesample_rows.q.out | 307 ++
.../vector_partition_diff_num_cols.q.out | 1 +
.../vector_tablesample_rows.q.out | 2 -
.../fast/BinarySortableDeserializeRead.java | 806 +--
.../hive/serde2/fast/DeserializeRead.java | 379 +-
.../lazy/fast/LazySimpleDeserializeRead.java | 704 +--
.../fast/LazyBinaryDeserializeRead.java | 944 +---
.../apache/hadoop/hive/serde2/VerifyFast.java | 75 +-
130 files changed, 82172 insertions(+), 9858 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 2814353..caadf2a 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -2481,6 +2481,15 @@ public class HiveConf extends Configuration {
"This flag should be set to true to enable the new vectorization\n" +
"of queries using ReduceSink.\ni" +
"The default value is true."),
+ HIVE_VECTORIZATION_USE_VECTORIZED_INPUT_FILE_FORMAT("hive.vectorized.use.vectorized.input.format", true,
+ "This flag should be set to true to enable vectorizing with vectorized input file format capable SerDe.\n" +
+ "The default value is true."),
+ HIVE_VECTORIZATION_USE_VECTOR_DESERIALIZE("hive.vectorized.use.vector.serde.deserialize", false,
+ "This flag should be set to true to enable vectorizing rows using vector deserialize.\n" +
+ "The default value is false."),
+ HIVE_VECTORIZATION_USE_ROW_DESERIALIZE("hive.vectorized.use.row.serde.deserialize", false,
+ "This flag should be set to true to enable vectorizing using row deserialize.\n" +
+ "The default value is false."),
HIVE_TYPE_CHECK_ON_INSERT("hive.typecheck.on.insert", true, "This property has been extended to control "
+ "whether to check, convert, and normalize partition value to conform to its column type in "
+ "partition operations including but not limited to insert, such as alter, describe etc."),
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct1_a.txt
----------------------------------------------------------------------
diff --git a/data/files/struct1_a.txt b/data/files/struct1_a.txt
new file mode 100644
index 0000000..b36846e
--- /dev/null
+++ b/data/files/struct1_a.txt
@@ -0,0 +1,4 @@
+1|true,200,72909,3244222,-99999999999,-29.0764,470614135,470614135,dynamic reptile ,dynamic reptile ,0004-09-22 18:26:29.519542222,2007-02-09,binary|original
+2|0,100,483777,14,-23866739993,-3651.672121,46114.284799488,46114.284799488, baffling , baffling ,2007-02-09 05:17:29.368756876,0004-09-22,binary|original
+3|false,72,3244222,-93222,30.774,-66475.561431,-66475.561431,0.561431,1,1,6229-06-28 02:54:28.970117179,5966-07-09,binary|original
+4|1,-90,754072151,3289094,46114.284799488,9250340.75,9250340.75,9250340.75,junkyard,junkyard,2002-05-10 05:29:48.990818073,1815-05-06,binary|original
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct1_b.txt
----------------------------------------------------------------------
diff --git a/data/files/struct1_b.txt b/data/files/struct1_b.txt
new file mode 100644
index 0000000..1887c68
--- /dev/null
+++ b/data/files/struct1_b.txt
@@ -0,0 +1 @@
+5|true,400,44388,-100,953967041.,62.079153,718.78,1,verdict,verdict,timestamp,date,binary|new
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct1_c.txt
----------------------------------------------------------------------
diff --git a/data/files/struct1_c.txt b/data/files/struct1_c.txt
new file mode 100644
index 0000000..5d482c8
--- /dev/null
+++ b/data/files/struct1_c.txt
@@ -0,0 +1 @@
+6|false,-67,833,63993,1255178165.77663,905070.974,-4314.7918,-1240033819,trial,trial,2016-03-0703:02:22.0,2016-03-07,binary|new
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct2_a.txt
----------------------------------------------------------------------
diff --git a/data/files/struct2_a.txt b/data/files/struct2_a.txt
new file mode 100644
index 0000000..7fdfef1
--- /dev/null
+++ b/data/files/struct2_a.txt
@@ -0,0 +1,2 @@
+3|new|true,200,72909,3244222,-99999999999,-29.0764,470614135,470614135,dynamic reptile ,dynamic reptile ,0004-09-22 18:26:29.519542222,2007-02-09,binary
+4|new|0,100,483777,14,-23866739993,-3651.672121,46114.284799488,46114.284799488, baffling , baffling ,2007-02-09 05:17:29.368756876,0004-09-22,binary
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct2_b.txt
----------------------------------------------------------------------
diff --git a/data/files/struct2_b.txt b/data/files/struct2_b.txt
new file mode 100644
index 0000000..a814af3
--- /dev/null
+++ b/data/files/struct2_b.txt
@@ -0,0 +1,2 @@
+5|new|false,72,3244222,-93222,30.774,-66475.561431,-66475.561431,0.561431,1,1,6229-06-28 02:54:28.970117179,5966-07-09,binary
+6|new|1,-90,754072151,3289094,46114.284799488,9250340.75,9250340.75,9250340.75,junkyard,junkyard,2002-05-10 05:29:48.990818073,1815-05-06,binary
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct2_c.txt
----------------------------------------------------------------------
diff --git a/data/files/struct2_c.txt b/data/files/struct2_c.txt
new file mode 100644
index 0000000..2c9c1bb
--- /dev/null
+++ b/data/files/struct2_c.txt
@@ -0,0 +1 @@
+7|new|true,400,44388,-100,953967041.,62.079153,718.78,1,verdict,verdict,timestamp,date,binary
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct2_d.txt
----------------------------------------------------------------------
diff --git a/data/files/struct2_d.txt b/data/files/struct2_d.txt
new file mode 100644
index 0000000..3c7801e
--- /dev/null
+++ b/data/files/struct2_d.txt
@@ -0,0 +1 @@
+8|new|false,-67,833,63993,1255178165.77663,905070.974,-4314.7918,-1240033819,trial,trial,2016-03-0703:02:22.0,2016-03-07,binary
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct3_a.txt
----------------------------------------------------------------------
diff --git a/data/files/struct3_a.txt b/data/files/struct3_a.txt
new file mode 100644
index 0000000..19dbd7f
--- /dev/null
+++ b/data/files/struct3_a.txt
@@ -0,0 +1,2 @@
+1|true,200,72909,3244222,-99999999999|original
+2|0,100,483777,14,-23866739993|original
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct3_b.txt
----------------------------------------------------------------------
diff --git a/data/files/struct3_b.txt b/data/files/struct3_b.txt
new file mode 100644
index 0000000..030e0c0
--- /dev/null
+++ b/data/files/struct3_b.txt
@@ -0,0 +1 @@
+3|true,400,44388,-100,953967041.,62.079153,718.78,1,verdict,verdict,timestamp,date,binary|new
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct3_c.txt
----------------------------------------------------------------------
diff --git a/data/files/struct3_c.txt b/data/files/struct3_c.txt
new file mode 100644
index 0000000..236694b
--- /dev/null
+++ b/data/files/struct3_c.txt
@@ -0,0 +1 @@
+4|false,-67,833,63993,1255178165.77663,905070.974,-4314.7918,-1240033819,trial,trial,2016-03-0703:02:22.0,2016-03-07,binary|new
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct4_a.txt
----------------------------------------------------------------------
diff --git a/data/files/struct4_a.txt b/data/files/struct4_a.txt
new file mode 100644
index 0000000..ecf832f
--- /dev/null
+++ b/data/files/struct4_a.txt
@@ -0,0 +1,2 @@
+1|original|true,200,72909,3244222,-99999999999
+2|original|0,100,483777,14,-23866739993
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct4_b.txt
----------------------------------------------------------------------
diff --git a/data/files/struct4_b.txt b/data/files/struct4_b.txt
new file mode 100644
index 0000000..701253c
--- /dev/null
+++ b/data/files/struct4_b.txt
@@ -0,0 +1 @@
+3|new|true,400,44388,-100,953967041.,62.079153,718.78,1,verdict,verdict,timestamp,date,binary
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/data/files/struct4_c.txt
----------------------------------------------------------------------
diff --git a/data/files/struct4_c.txt b/data/files/struct4_c.txt
new file mode 100644
index 0000000..c56e002
--- /dev/null
+++ b/data/files/struct4_c.txt
@@ -0,0 +1 @@
+4|new|false,-67,833,63993,1255178165.77663,905070.974,-4314.7918,-1240033819,trial,trial,2016-03-0703:02:22.0,2016-03-07,binary
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties
index 0ef3161..346a38d 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -186,22 +186,28 @@ minitez.query.files.shared=acid_globallimit.q,\
ptf_streaming.q,\
sample1.q,\
schema_evol_stats.q,\
- schema_evol_text_nonvec_mapwork_table.q,\
- schema_evol_text_nonvec_fetchwork_table.q,\
- schema_evol_orc_nonvec_fetchwork_part.q,\
- schema_evol_orc_nonvec_mapwork_part.q,\
- schema_evol_text_nonvec_fetchwork_part.q,\
- schema_evol_text_nonvec_mapwork_part.q,\
schema_evol_orc_acid_mapwork_part.q,\
schema_evol_orc_acid_mapwork_table.q,\
- schema_evol_orc_acidvec_mapwork_table.q,\
schema_evol_orc_acidvec_mapwork_part.q,\
+ schema_evol_orc_acidvec_mapwork_table.q,\
+ schema_evol_orc_nonvec_fetchwork_part.q,\
+ schema_evol_orc_nonvec_fetchwork_table.q,\
+ schema_evol_orc_nonvec_mapwork_part.q,\
+ schema_evol_orc_nonvec_mapwork_table.q,\
schema_evol_orc_vec_mapwork_part.q,\
- schema_evol_text_fetchwork_table.q,\
- schema_evol_text_mapwork_table.q,\
schema_evol_orc_vec_mapwork_table.q,\
- schema_evol_orc_nonvec_mapwork_table.q,\
- schema_evol_orc_nonvec_fetchwork_table.q,\
+ schema_evol_text_nonvec_mapwork_part.q,\
+ schema_evol_text_nonvec_mapwork_part_all_complex.q,\
+ schema_evol_text_nonvec_mapwork_part_all_primitive.q,\
+ schema_evol_text_nonvec_mapwork_table.q,\
+ schema_evol_text_vec_mapwork_part.q,\
+ schema_evol_text_vec_mapwork_part_all_complex.q,\
+ schema_evol_text_vec_mapwork_part_all_primitive.q,\
+ schema_evol_text_vec_mapwork_table.q,\
+ schema_evol_text_vecrow_mapwork_part.q,\
+ schema_evol_text_vecrow_mapwork_part_all_complex.q,\
+ schema_evol_text_vecrow_mapwork_part_all_primitive.q,\
+ schema_evol_text_vecrow_mapwork_table.q,\
selectDistinctStar.q,\
script_env_var1.q,\
script_env_var2.q,\
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapInputFormat.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapInputFormat.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapInputFormat.java
index 9fb79a5..298f788 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapInputFormat.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapInputFormat.java
@@ -102,7 +102,7 @@ public class LlapInputFormat implements InputFormat<NullWritable, VectorizedRowB
sourceInputFormat.getRecordReader(split, job, reporter);
return rr;
}
- boolean isVectorMode = Utilities.isVectorMode(job);
+ boolean isVectorMode = Utilities.getUseVectorizedInputFileFormat(job);
if (!isVectorMode) {
LlapIoImpl.LOG.error("No LLAP IO in non-vectorized mode");
throw new UnsupportedOperationException("No LLAP IO in non-vectorized mode");
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/AbstractMapOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/AbstractMapOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/AbstractMapOperator.java
new file mode 100644
index 0000000..5c3012b
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/AbstractMapOperator.java
@@ -0,0 +1,178 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.exec;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hive.ql.CompilationOpContext;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.plan.MapWork;
+import org.apache.hadoop.hive.serde2.Deserializer;
+import org.apache.hadoop.hive.serde2.SerDeException;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Writable;
+
+
+/**
+ * Abstract Map operator. Common code of MapOperator and VectorMapOperator.
+ **/
+@SuppressWarnings("deprecation")
+public abstract class AbstractMapOperator extends Operator<MapWork>
+ implements Serializable, Cloneable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Initialization call sequence:
+ *
+ * (Operator) Operator.setConf(MapWork conf);
+ * (Operator) Operator.initialize(
+ * Configuration hconf, ObjectInspector[] inputOIs);
+ *
+ * ([Vector]MapOperator) @Override setChildren(Configuration hconf)
+ *
+ * (Operator) Operator.passExecContext(ExecMapperContext execContext)
+ * (Operator) Operator.initializeLocalWork(Configuration hconf)
+ *
+ * (AbstractMapOperator) initializeMapOperator(Configuration hconf)
+ *
+ * [ (AbstractMapOperator) initializeContexts() ] // exec.tez.MapRecordProcessor only.
+ *
+ * (Operator) Operator.setReporter(Reporter rep)
+ *
+ */
+
+ /**
+ * Counter.
+ *
+ */
+ public static enum Counter {
+ DESERIALIZE_ERRORS,
+ RECORDS_IN
+ }
+
+ protected final transient LongWritable deserialize_error_count = new LongWritable();
+ protected final transient LongWritable recordCounter = new LongWritable();
+ protected transient long numRows = 0;
+
+ private final Map<Integer, DummyStoreOperator> connectedOperators
+ = new TreeMap<Integer, DummyStoreOperator>();
+
+ private transient final Map<String, Path> normalizedPaths = new HashMap<String, Path>();
+
+ private Path normalizePath(String onefile, boolean schemaless) {
+ //creating Path is expensive, so cache the corresponding
+ //Path object in normalizedPaths
+ Path path = normalizedPaths.get(onefile);
+ if (path == null) {
+ path = new Path(onefile);
+ if (schemaless && path.toUri().getScheme() != null) {
+ path = new Path(path.toUri().getPath());
+ }
+ normalizedPaths.put(onefile, path);
+ }
+ return path;
+ }
+
+ protected String getNominalPath(Path fpath) {
+ String nominal = null;
+ boolean schemaless = fpath.toUri().getScheme() == null;
+ for (String onefile : conf.getPathToAliases().keySet()) {
+ Path onepath = normalizePath(onefile, schemaless);
+ Path curfpath = fpath;
+ if(!schemaless && onepath.toUri().getScheme() == null) {
+ curfpath = new Path(fpath.toUri().getPath());
+ }
+ // check for the operators who will process rows coming to this Map Operator
+ if (onepath.toUri().relativize(curfpath.toUri()).equals(curfpath.toUri())) {
+ // not from this
+ continue;
+ }
+ if (nominal != null) {
+ throw new IllegalStateException("Ambiguous input path " + fpath);
+ }
+ nominal = onefile;
+ }
+ if (nominal == null) {
+ throw new IllegalStateException("Invalid input path " + fpath);
+ }
+ return nominal;
+ }
+
+ public abstract void initEmptyInputChildren(List<Operator<?>> children, Configuration hconf)
+ throws SerDeException, Exception;
+
+
+ /** Kryo ctor. */
+ protected AbstractMapOperator() {
+ super();
+ }
+
+ public AbstractMapOperator(CompilationOpContext ctx) {
+ super(ctx);
+ }
+
+ public abstract void setChildren(Configuration hconf) throws Exception;
+
+
+ public void initializeMapOperator(Configuration hconf) throws HiveException {
+ // set that parent initialization is done and call initialize on children
+ state = State.INIT;
+
+ statsMap.put(Counter.DESERIALIZE_ERRORS.toString(), deserialize_error_count);
+
+ numRows = 0;
+
+ String context = hconf.get(Operator.CONTEXT_NAME_KEY, "");
+ if (context != null && !context.isEmpty()) {
+ context = "_" + context.replace(" ","_");
+ }
+ statsMap.put(Counter.RECORDS_IN + context, recordCounter);
+ }
+
+ public abstract void initializeContexts() throws HiveException;
+
+ public abstract Deserializer getCurrentDeserializer();
+
+ public abstract void process(Writable value) throws HiveException;
+
+ @Override
+ public void closeOp(boolean abort) throws HiveException {
+ recordCounter.set(numRows);
+ super.closeOp(abort);
+ }
+
+ public void clearConnectedOperators() {
+ connectedOperators.clear();
+ }
+
+ public void setConnectedOperators(int tag, DummyStoreOperator dummyOp) {
+ connectedOperators.put(tag, dummyOp);
+ }
+
+ public Map<Integer, DummyStoreOperator> getConnectedOperators() {
+ return connectedOperators;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java
index b1f9958..afe5ee2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java
@@ -72,25 +72,11 @@ import com.google.common.annotations.VisibleForTesting;
* Writable data structure from a Table (instead of a Hive Object).
**/
@SuppressWarnings("deprecation")
-public class MapOperator extends Operator<MapWork> implements Serializable, Cloneable {
+public class MapOperator extends AbstractMapOperator {
private static final long serialVersionUID = 1L;
- /**
- * Counter.
- *
- */
- public static enum Counter {
- DESERIALIZE_ERRORS,
- RECORDS_IN
- }
-
- private final transient LongWritable deserialize_error_count = new LongWritable();
- private final transient LongWritable recordCounter = new LongWritable();
- protected transient long numRows = 0;
protected transient long cntr = 1;
- private final Map<Integer, DummyStoreOperator> connectedOperators
- = new TreeMap<Integer, DummyStoreOperator>();
protected transient long logEveryNRows = 0;
// input path --> {operator --> context}
@@ -102,7 +88,6 @@ public class MapOperator extends Operator<MapWork> implements Serializable, Clon
// context for current input file
protected transient MapOpCtx[] currentCtxs;
- private transient final Map<String, Path> normalizedPaths = new HashMap<String, Path>();
protected static class MapOpCtx {
@@ -433,31 +418,6 @@ public class MapOperator extends Operator<MapWork> implements Serializable, Clon
}
}
- private String getNominalPath(Path fpath) {
- String nominal = null;
- boolean schemaless = fpath.toUri().getScheme() == null;
- for (String onefile : conf.getPathToAliases().keySet()) {
- Path onepath = normalizePath(onefile, schemaless);
- Path curfpath = fpath;
- if(!schemaless && onepath.toUri().getScheme() == null) {
- curfpath = new Path(fpath.toUri().getPath());
- }
- // check for the operators who will process rows coming to this Map Operator
- if (onepath.toUri().relativize(curfpath.toUri()).equals(curfpath.toUri())) {
- // not from this
- continue;
- }
- if (nominal != null) {
- throw new IllegalStateException("Ambiguous input path " + fpath);
- }
- nominal = onefile;
- }
- if (nominal == null) {
- throw new IllegalStateException("Invalid input path " + fpath);
- }
- return nominal;
- }
-
/** Kryo ctor. */
protected MapOperator() {
super();
@@ -473,32 +433,17 @@ public class MapOperator extends Operator<MapWork> implements Serializable, Clon
}
public void initializeMapOperator(Configuration hconf) throws HiveException {
- // set that parent initialization is done and call initialize on children
- state = State.INIT;
- statsMap.put(Counter.DESERIALIZE_ERRORS.toString(), deserialize_error_count);
+ super.initializeMapOperator(hconf);
- numRows = 0;
cntr = 1;
logEveryNRows = HiveConf.getLongVar(hconf, HiveConf.ConfVars.HIVE_LOG_N_RECORDS);
- String context = hconf.get(Operator.CONTEXT_NAME_KEY, "");
- if (context != null && !context.isEmpty()) {
- context = "_" + context.replace(" ","_");
- }
- statsMap.put(Counter.RECORDS_IN + context, recordCounter);
-
for (Entry<Operator<?>, StructObjectInspector> entry : childrenOpToOI.entrySet()) {
Operator<?> child = entry.getKey();
child.initialize(hconf, new ObjectInspector[] {entry.getValue()});
}
}
- @Override
- public void closeOp(boolean abort) throws HiveException {
- recordCounter.set(numRows);
- super.closeOp(abort);
- }
-
// Find context for current input file
@Override
public void cleanUpInputFileChangedOp() throws HiveException {
@@ -528,20 +473,6 @@ public class MapOperator extends Operator<MapWork> implements Serializable, Clon
currentCtxs = contexts.values().toArray(new MapOpCtx[contexts.size()]);
}
- private Path normalizePath(String onefile, boolean schemaless) {
- //creating Path is expensive, so cache the corresponding
- //Path object in normalizedPaths
- Path path = normalizedPaths.get(onefile);
- if (path == null) {
- path = new Path(onefile);
- if (schemaless && path.toUri().getScheme() != null) {
- path = new Path(path.toUri().getPath());
- }
- normalizedPaths.put(onefile, path);
- }
- return path;
- }
-
public void process(Writable value) throws HiveException {
// A mapper can span multiple files/partitions.
// The serializers need to be reset if the input file changed
@@ -698,17 +629,4 @@ public class MapOperator extends Operator<MapWork> implements Serializable, Clon
return currentCtxs[0].deserializer;
}
-
- public void clearConnectedOperators() {
- connectedOperators.clear();
- }
-
- public void setConnectedOperators(int tag, DummyStoreOperator dummyOp) {
- connectedOperators.put(tag, dummyOp);
- }
-
- public Map<Integer, DummyStoreOperator> getConnectedOperators() {
- return connectedOperators;
- }
-
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java
index ab0635e..449bef8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java
@@ -216,6 +216,7 @@ public final class Utilities {
public static final String MAPRED_REDUCER_CLASS = "mapred.reducer.class";
public static final String HIVE_ADDED_JARS = "hive.added.jars";
public static final String VECTOR_MODE = "VECTOR_MODE";
+ public static final String USE_VECTORIZED_INPUT_FILE_FORMAT = "USE_VECTORIZED_INPUT_FILE_FORMAT";
public static String MAPNAME = "Map ";
public static String REDUCENAME = "Reducer ";
@@ -3254,24 +3255,39 @@ public final class Utilities {
/**
* Returns true if a plan is both configured for vectorized execution
- * and vectorization is allowed. The plan may be configured for vectorization
+ * and the node is vectorized and the Input File Format is marked VectorizedInputFileFormat.
+ *
+ * The plan may be configured for vectorization
* but vectorization disallowed eg. for FetchOperator execution.
*/
- public static boolean isVectorMode(Configuration conf) {
+ public static boolean getUseVectorizedInputFileFormat(Configuration conf) {
if (conf.get(VECTOR_MODE) != null) {
// this code path is necessary, because with HS2 and client
// side split generation we end up not finding the map work.
// This is because of thread local madness (tez split
// generation is multi-threaded - HS2 plan cache uses thread
// locals).
- return conf.getBoolean(VECTOR_MODE, false);
+ return
+ conf.getBoolean(VECTOR_MODE, false) &&
+ conf.getBoolean(USE_VECTORIZED_INPUT_FILE_FORMAT, false);
} else {
- return HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_VECTORIZATION_ENABLED)
- && Utilities.getPlanPath(conf) != null
- && Utilities.getMapWork(conf).getVectorMode();
+ if (HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_VECTORIZATION_ENABLED) &&
+ Utilities.getPlanPath(conf) != null) {
+ MapWork mapWork = Utilities.getMapWork(conf);
+ return (mapWork.getVectorMode() && mapWork.getUseVectorizedInputFileFormat());
+ } else {
+ return false;
+ }
}
}
+
+ public static boolean getUseVectorizedInputFileFormat(Configuration conf, MapWork mapWork) {
+ return HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_VECTORIZATION_ENABLED) &&
+ mapWork.getVectorMode() &&
+ mapWork.getUseVectorizedInputFileFormat();
+ }
+
/**
* @param conf
* @return the configured VectorizedRowBatchCtx for a MapWork task.
@@ -3288,11 +3304,6 @@ public final class Utilities {
return result;
}
- public static boolean isVectorMode(Configuration conf, MapWork mapWork) {
- return HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_VECTORIZATION_ENABLED)
- && mapWork.getVectorMode();
- }
-
public static void clearWorkMapForConf(Configuration conf) {
// Remove cached query plans for the current query only
Path mapPath = getPlanPath(conf, MAP_PLAN_NAME);
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecMapper.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecMapper.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecMapper.java
index c34dd1f..f90a788 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecMapper.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecMapper.java
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.CompilationOpContext;
+import org.apache.hadoop.hive.ql.exec.AbstractMapOperator;
import org.apache.hadoop.hive.ql.exec.MapOperator;
import org.apache.hadoop.hive.ql.exec.MapredContext;
import org.apache.hadoop.hive.ql.exec.Operator;
@@ -59,7 +60,7 @@ import org.apache.hadoop.util.StringUtils;
*/
public class ExecMapper extends MapReduceBase implements Mapper {
- private MapOperator mo;
+ private AbstractMapOperator mo;
private OutputCollector oc;
private JobConf jc;
private boolean abort = false;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkMapRecordHandler.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkMapRecordHandler.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkMapRecordHandler.java
index d8fe35f..48dfedc 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkMapRecordHandler.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkMapRecordHandler.java
@@ -25,6 +25,7 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.hive.ql.CompilationOpContext;
+import org.apache.hadoop.hive.ql.exec.AbstractMapOperator;
import org.apache.hadoop.hive.ql.exec.MapOperator;
import org.apache.hadoop.hive.ql.exec.MapredContext;
import org.apache.hadoop.hive.ql.exec.Operator;
@@ -55,7 +56,7 @@ import org.apache.hadoop.mapred.Reporter;
*/
public class SparkMapRecordHandler extends SparkRecordHandler {
private static final Logger LOG = LoggerFactory.getLogger(SparkMapRecordHandler.class);
- private MapOperator mo;
+ private AbstractMapOperator mo;
private MapredLocalWork localWork = null;
private boolean isLogInfoEnabled = false;
private ExecMapperContext execContext;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java
index 79da860..a1e4e6c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java
@@ -625,9 +625,10 @@ public class DagUtils {
// generation we end up not finding the map work. This is
// because of thread local madness (tez split generation is
// multi-threaded - HS2 plan cache uses thread locals). Setting
- // VECTOR_MODE causes the split gen code to use the conf instead
+ // VECTOR_MODE/USE_VECTORIZED_INPUT_FILE_FORMAT causes the split gen code to use the conf instead
// of the map work.
conf.setBoolean(Utilities.VECTOR_MODE, mapWork.getVectorMode());
+ conf.setBoolean(Utilities.USE_VECTORIZED_INPUT_FILE_FORMAT, mapWork.getUseVectorizedInputFileFormat());
dataSource = MRInputHelpers.configureMRInputWithLegacySplitGeneration(conf, new Path(tezDir,
"split_" + mapWork.getName().replaceAll(" ", "_")), true);
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
index 0584ad8..9a9f43a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
@@ -33,6 +33,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.exec.AbstractMapOperator;
import org.apache.hadoop.hive.llap.io.api.LlapProxy;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.exec.DummyStoreOperator;
@@ -75,8 +76,8 @@ public class MapRecordProcessor extends RecordProcessor {
public static final Logger l4j = LoggerFactory.getLogger(MapRecordProcessor.class);
protected static final String MAP_PLAN_KEY = "__MAP_PLAN__";
- private MapOperator mapOp;
- private final List<MapOperator> mergeMapOpList = new ArrayList<MapOperator>();
+ private AbstractMapOperator mapOp;
+ private final List<AbstractMapOperator> mergeMapOpList = new ArrayList<AbstractMapOperator>();
private MapRecordSource[] sources;
private final Map<String, MultiMRInput> multiMRInputMap = new HashMap<String, MultiMRInput>();
private int position;
@@ -183,7 +184,7 @@ public class MapRecordProcessor extends RecordProcessor {
boolean fromCache = false;
if (mergeWorkList != null) {
- MapOperator mergeMapOp = null;
+ AbstractMapOperator mergeMapOp = null;
for (BaseWork mergeWork : mergeWorkList) {
MapWork mergeMapWork = (MapWork) mergeWork;
if (mergeMapWork.getVectorMode()) {
@@ -261,7 +262,7 @@ public class MapRecordProcessor extends RecordProcessor {
initializeMapRecordSources();
mapOp.initializeMapOperator(jconf);
if ((mergeMapOpList != null) && mergeMapOpList.isEmpty() == false) {
- for (MapOperator mergeMapOp : mergeMapOpList) {
+ for (AbstractMapOperator mergeMapOp : mergeMapOpList) {
jconf.set(Utilities.INPUT_NAME, mergeMapOp.getConf().getName());
mergeMapOp.initializeMapOperator(jconf);
}
@@ -309,7 +310,7 @@ public class MapRecordProcessor extends RecordProcessor {
reader = legacyMRInput.getReader();
}
sources[position].init(jconf, mapOp, reader);
- for (MapOperator mapOp : mergeMapOpList) {
+ for (AbstractMapOperator mapOp : mergeMapOpList) {
int tag = mapOp.getConf().getTag();
sources[tag] = new MapRecordSource();
String inputName = mapOp.getConf().getName();
@@ -326,7 +327,7 @@ public class MapRecordProcessor extends RecordProcessor {
@SuppressWarnings("deprecation")
private KeyValueReader getKeyValueReader(Collection<KeyValueReader> keyValueReaders,
- MapOperator mapOp)
+ AbstractMapOperator mapOp)
throws Exception {
List<KeyValueReader> kvReaderList = new ArrayList<KeyValueReader>(keyValueReaders);
// this sets up the map operator contexts correctly
@@ -394,7 +395,7 @@ public class MapRecordProcessor extends RecordProcessor {
}
mapOp.close(abort);
if (mergeMapOpList.isEmpty() == false) {
- for (MapOperator mergeMapOp : mergeMapOpList) {
+ for (AbstractMapOperator mergeMapOp : mergeMapOpList) {
mergeMapOp.close(abort);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordSource.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordSource.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordSource.java
index b53c933..add7d08 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordSource.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordSource.java
@@ -21,7 +21,7 @@ package org.apache.hadoop.hive.ql.exec.tez;
import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.hadoop.hive.ql.exec.MapOperator;
+import org.apache.hadoop.hive.ql.exec.AbstractMapOperator;
import org.apache.hadoop.hive.ql.exec.mr.ExecMapperContext;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.io.Writable;
@@ -39,11 +39,11 @@ public class MapRecordSource implements RecordSource {
public static final Logger LOG = LoggerFactory.getLogger(MapRecordSource.class);
private ExecMapperContext execContext = null;
- private MapOperator mapOp = null;
+ private AbstractMapOperator mapOp = null;
private KeyValueReader reader = null;
private final boolean grouped = false;
- void init(JobConf jconf, MapOperator mapOp, KeyValueReader reader) throws IOException {
+ void init(JobConf jconf, AbstractMapOperator mapOp, KeyValueReader reader) throws IOException {
execContext = mapOp.getExecContext();
this.mapOp = mapOp;
this.reader = reader;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java
index 1f75d07..e966ff1 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java
@@ -413,7 +413,7 @@ public class ReduceRecordSource implements RecordSource {
// VectorizedBatchUtil.displayBytes(keyBytes, 0, keyLength));
keyBinarySortableDeserializeToRow.setBytes(keyBytes, 0, keyLength);
- keyBinarySortableDeserializeToRow.deserializeByValue(batch, 0);
+ keyBinarySortableDeserializeToRow.deserialize(batch, 0);
for(int i = 0; i < firstValueColumnOffset; i++) {
VectorizedBatchUtil.setRepeatingColumn(batch, i);
}
@@ -431,7 +431,7 @@ public class ReduceRecordSource implements RecordSource {
// VectorizedBatchUtil.displayBytes(valueBytes, 0, valueLength));
valueLazyBinaryDeserializeToRow.setBytes(valueBytes, 0, valueLength);
- valueLazyBinaryDeserializeToRow.deserializeByValue(batch, rowIdx);
+ valueLazyBinaryDeserializeToRow.deserialize(batch, rowIdx);
}
rowIdx++;
if (rowIdx >= BATCH_SIZE) {
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAppMasterEventOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAppMasterEventOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAppMasterEventOperator.java
index 1951569..2bf6ac5 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAppMasterEventOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAppMasterEventOperator.java
@@ -45,7 +45,7 @@ public class VectorAppMasterEventOperator extends AppMasterEventOperator {
private transient boolean firstBatch;
- private transient VectorExtractRowDynBatch vectorExtractRowDynBatch;
+ private transient VectorExtractRow vectorExtractRow;
protected transient Object[] singleRow;
@@ -88,16 +88,14 @@ public class VectorAppMasterEventOperator extends AppMasterEventOperator {
VectorizedRowBatch batch = (VectorizedRowBatch) data;
if (firstBatch) {
- vectorExtractRowDynBatch = new VectorExtractRowDynBatch();
- vectorExtractRowDynBatch.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
+ vectorExtractRow = new VectorExtractRow();
+ vectorExtractRow.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
- singleRow = new Object[vectorExtractRowDynBatch.getCount()];
+ singleRow = new Object[vectorExtractRow.getCount()];
firstBatch = false;
}
- vectorExtractRowDynBatch.setBatchOnEntry(batch);
-
ObjectInspector rowInspector = inputObjInspectors[0];
try {
Writable writableRow;
@@ -105,7 +103,7 @@ public class VectorAppMasterEventOperator extends AppMasterEventOperator {
int selected[] = batch.selected;
for (int logical = 0 ; logical < batch.size; logical++) {
int batchIndex = selected[logical];
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
writableRow = serializer.serialize(singleRow, rowInspector);
writableRow.write(buffer);
if (buffer.getLength() > MAX_SIZE) {
@@ -117,7 +115,7 @@ public class VectorAppMasterEventOperator extends AppMasterEventOperator {
}
} else {
for (int batchIndex = 0 ; batchIndex < batch.size; batchIndex++) {
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
writableRow = serializer.serialize(singleRow, rowInspector);
writableRow.write(buffer);
if (buffer.getLength() > MAX_SIZE) {
@@ -133,7 +131,5 @@ public class VectorAppMasterEventOperator extends AppMasterEventOperator {
}
forward(data, rowInspector);
-
- vectorExtractRowDynBatch.forgetBatchOnExit();
}
}
[04/50] [abbrv] hive git commit: HIVE-13446 : LLAP: set default
management protocol acls to deny all (Sergey Shelukhin,
reviewed by Siddharth Seth)
Posted by jd...@apache.org.
HIVE-13446 : LLAP: set default management protocol acls to deny all (Sergey Shelukhin, reviewed by Siddharth Seth)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/2abea8e1
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/2abea8e1
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/2abea8e1
Branch: refs/heads/llap
Commit: 2abea8e16edc2466628934ffa1861066bb0470e8
Parents: 121d70f
Author: Sergey Shelukhin <se...@apache.org>
Authored: Mon May 2 11:57:34 2016 -0700
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Mon May 2 11:57:34 2016 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hive/conf/HiveConf.java | 10 ++++
.../daemon/impl/LlapProtocolServerImpl.java | 57 ++++++++++++++++----
2 files changed, 57 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/2abea8e1/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index b13de92..2814353 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -306,6 +306,8 @@ public class HiveConf extends Configuration {
llapDaemonVarsSetLocal.add(ConfVars.LLAP_ZKSM_ZK_CONNECTION_STRING.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_SECURITY_ACL.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_MANAGEMENT_ACL.varname);
+ llapDaemonVarsSetLocal.add(ConfVars.LLAP_SECURITY_ACL_DENY.varname);
+ llapDaemonVarsSetLocal.add(ConfVars.LLAP_MANAGEMENT_ACL_DENY.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_DELEGATION_TOKEN_LIFETIME.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_MANAGEMENT_RPC_PORT.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_WEB_AUTO_AUTH.varname);
@@ -334,6 +336,7 @@ public class HiveConf extends Configuration {
llapDaemonVarsSetLocal.add(ConfVars.LLAP_DAEMON_WEB_PORT.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_DAEMON_WEB_SSL.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_DAEMON_CONTAINER_ID.varname);
+ llapDaemonVarsSetLocal.add(ConfVars.LLAP_VALIDATE_ACLS.varname);
}
/**
@@ -2660,8 +2663,15 @@ public class HiveConf extends Configuration {
"ZooKeeper connection string for ZooKeeper SecretManager."),
// Note: do not rename to ..service.acl; Hadoop generates .hosts setting name from this,
// resulting in a collision with existing hive.llap.daemon.service.hosts and bizarre errors.
+ // These are read by Hadoop IPC, so you should check the usage and naming conventions (e.g.
+ // ".blocked" is a string hardcoded by Hadoop, and defaults are enforced elsewhere in Hive)
+ // before making changes or copy-pasting these.
LLAP_SECURITY_ACL("hive.llap.daemon.acl", "*", "The ACL for LLAP daemon."),
+ LLAP_SECURITY_ACL_DENY("hive.llap.daemon.acl.blocked", "", "The deny ACL for LLAP daemon."),
LLAP_MANAGEMENT_ACL("hive.llap.management.acl", "*", "The ACL for LLAP daemon management."),
+ LLAP_MANAGEMENT_ACL_DENY("hive.llap.management.acl.blocked", "",
+ "The deny ACL for LLAP daemon management."),
+
// Hadoop DelegationTokenManager default is 1 week.
LLAP_DELEGATION_TOKEN_LIFETIME("hive.llap.daemon.delegation.token.lifetime", "14d",
new TimeValidator(TimeUnit.SECONDS),
http://git-wip-us.apache.org/repos/asf/hive/blob/2abea8e1/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapProtocolServerImpl.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapProtocolServerImpl.java b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapProtocolServerImpl.java
index e99e689..dae1a3a 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapProtocolServerImpl.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapProtocolServerImpl.java
@@ -48,6 +48,7 @@ import org.apache.hadoop.ipc.ProtobufRpcEngine;
import org.apache.hadoop.ipc.RPC;
import org.apache.hadoop.net.NetUtils;
import org.apache.hadoop.security.UserGroupInformation;
+import org.apache.hadoop.security.authorize.AccessControlList;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.hive.llap.security.LlapSecurityHelper;
import org.apache.hadoop.hive.llap.security.LlapTokenIdentifier;
@@ -69,6 +70,7 @@ public class LlapProtocolServerImpl extends AbstractService
private RPC.Server server, mngServer;
private final AtomicReference<InetSocketAddress> srvAddress, mngAddress;
private SecretManager zkSecretManager;
+ private String restrictedToUser = null;
public LlapProtocolServerImpl(int numHandlers,
ContainerRunner containerRunner,
@@ -128,6 +130,14 @@ public class LlapProtocolServerImpl extends AbstractService
startProtocolServers(conf, daemonImpl, managementImpl);
return;
}
+ if (isPermissiveManagementAcl(conf)) {
+ LOG.warn("Management protocol has a '*' ACL.");
+ try {
+ this.restrictedToUser = UserGroupInformation.getCurrentUser().getShortUserName();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
String llapPrincipal = HiveConf.getVar(conf, ConfVars.LLAP_KERBEROS_PRINCIPAL),
llapKeytab = HiveConf.getVar(conf, ConfVars.LLAP_KERBEROS_KEYTAB_FILE);
zkSecretManager = SecretManager.createSecretManager(conf, llapPrincipal, llapKeytab);
@@ -148,21 +158,29 @@ public class LlapProtocolServerImpl extends AbstractService
});
}
+ private static boolean isPermissiveManagementAcl(Configuration conf) {
+ return HiveConf.getBoolVar(conf, ConfVars.LLAP_VALIDATE_ACLS)
+ && AccessControlList.WILDCARD_ACL_VALUE.equals(
+ HiveConf.getVar(conf, ConfVars.LLAP_MANAGEMENT_ACL))
+ && "".equals(HiveConf.getVar(conf, ConfVars.LLAP_MANAGEMENT_ACL_DENY));
+ }
+
private void startProtocolServers(
Configuration conf, BlockingService daemonImpl, BlockingService managementImpl) {
server = startProtocolServer(srvPort, numHandlers, srvAddress, conf, daemonImpl,
- LlapProtocolBlockingPB.class);
+ LlapProtocolBlockingPB.class, ConfVars.LLAP_SECURITY_ACL, ConfVars.LLAP_SECURITY_ACL_DENY);
mngServer = startProtocolServer(mngPort, 2, mngAddress, conf, managementImpl,
- LlapManagementProtocolPB.class);
+ LlapManagementProtocolPB.class, ConfVars.LLAP_MANAGEMENT_ACL,
+ ConfVars.LLAP_MANAGEMENT_ACL_DENY);
}
private RPC.Server startProtocolServer(int srvPort, int numHandlers,
AtomicReference<InetSocketAddress> bindAddress, Configuration conf,
- BlockingService impl, Class<?> protocolClass) {
+ BlockingService impl, Class<?> protocolClass, ConfVars... aclVars) {
InetSocketAddress addr = new InetSocketAddress(srvPort);
RPC.Server server;
try {
- server = createServer(protocolClass, addr, conf, numHandlers, impl);
+ server = createServer(protocolClass, addr, conf, numHandlers, impl, aclVars);
server.start();
} catch (IOException e) {
LOG.error("Failed to run RPC Server on port: " + srvPort, e);
@@ -198,10 +216,23 @@ public class LlapProtocolServerImpl extends AbstractService
}
private RPC.Server createServer(Class<?> pbProtocol, InetSocketAddress addr, Configuration conf,
- int numHandlers, BlockingService blockingService) throws
+ int numHandlers, BlockingService blockingService, ConfVars... aclVars) throws
IOException {
- RPC.setProtocolEngine(conf, pbProtocol, ProtobufRpcEngine.class);
- RPC.Builder builder = new RPC.Builder(conf)
+ Configuration serverConf = conf;
+ boolean isSecurityEnabled = conf.getBoolean(
+ CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHORIZATION, false);
+ if (isSecurityEnabled) {
+ // Enforce Hive defaults.
+ for (ConfVars acl : aclVars) {
+ if (conf.get(acl.varname) != null) continue; // Some value is set.
+ if (serverConf == conf) {
+ serverConf = new Configuration(conf);
+ }
+ serverConf.set(acl.varname, HiveConf.getVar(serverConf, acl)); // Set the default.
+ }
+ }
+ RPC.setProtocolEngine(serverConf, pbProtocol, ProtobufRpcEngine.class);
+ RPC.Builder builder = new RPC.Builder(serverConf)
.setProtocol(pbProtocol)
.setInstance(blockingService)
.setBindAddress(addr.getHostName())
@@ -211,9 +242,8 @@ public class LlapProtocolServerImpl extends AbstractService
builder = builder.setSecretManager(zkSecretManager);
}
RPC.Server server = builder.build();
-
- if (conf.getBoolean(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHORIZATION, false)) {
- server.refreshServiceAcl(conf, new LlapDaemonPolicyProvider());
+ if (isSecurityEnabled) {
+ server.refreshServiceAcl(serverConf, new LlapDaemonPolicyProvider());
}
return server;
}
@@ -231,6 +261,13 @@ public class LlapProtocolServerImpl extends AbstractService
} catch (IOException e) {
throw new ServiceException(e);
}
+ if (restrictedToUser != null && !restrictedToUser.equals(ugi.getShortUserName())) {
+ throw new ServiceException("Management protocol ACL is too permissive. The access has been"
+ + " automatically restricted to " + restrictedToUser + "; " + ugi.getShortUserName()
+ + " is denied acccess. Please set " + ConfVars.LLAP_VALIDATE_ACLS.varname + " to false,"
+ + " or adjust " + ConfVars.LLAP_MANAGEMENT_ACL.varname + " and "
+ + ConfVars.LLAP_MANAGEMENT_ACL_DENY.varname + " to a more restrictive ACL.");
+ }
String user = ugi.getUserName();
Text owner = new Text(user);
Text realUser = null;
[02/50] [abbrv] hive git commit: HIVE-13643. Various enhancements /
fixes to llap cli tools. (Siddharth Seth, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
HIVE-13643. Various enhancements / fixes to llap cli tools. (Siddharth Seth, reviewed by Sergey Shelukhin)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/67b9dc50
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/67b9dc50
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/67b9dc50
Branch: refs/heads/llap
Commit: 67b9dc50ff230780d72af229d7e6ac93dc11f741
Parents: 35227eb
Author: Siddharth Seth <ss...@apache.org>
Authored: Mon May 2 10:06:34 2016 +0530
Committer: Siddharth Seth <ss...@apache.org>
Committed: Mon May 2 10:06:34 2016 +0530
----------------------------------------------------------------------
.../hadoop/hive/llap/cli/LlapServiceDriver.java | 21 ++++--
.../llap/cli/LlapStatusOptionsProcessor.java | 44 ++++++++++--
.../hive/llap/cli/LlapStatusServiceDriver.java | 74 ++++++++++++++++----
.../main/resources/llap-cli-log4j2.properties | 2 +-
llap-server/src/main/resources/package.py | 7 +-
packaging/src/main/assembly/bin.xml | 5 ++
6 files changed, 125 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/67b9dc50/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java
index 8cd6df7..de6d9b8 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapServiceDriver.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hive.llap.cli;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.URI;
@@ -36,6 +35,7 @@ import java.util.List;
import java.util.Properties;
import java.util.Set;
+import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.hive.llap.configuration.LlapDaemonConfiguration;
import org.apache.hadoop.hive.llap.daemon.impl.LlapDaemon;
import org.apache.hadoop.hive.llap.daemon.impl.StaticPermanentFunctionChecker;
@@ -55,16 +55,12 @@ import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.llap.cli.LlapOptionsProcessor.LlapOptions;
import org.apache.hadoop.hive.llap.io.api.impl.LlapInputFormat;
import org.apache.hadoop.hive.metastore.api.Function;
-import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.hadoop.hive.metastore.api.ResourceUri;
-import org.apache.hadoop.hive.ql.exec.FunctionTask;
import org.apache.hadoop.hive.ql.exec.Utilities;
-import org.apache.hadoop.hive.ql.exec.FunctionInfo.FunctionResource;
import org.apache.hadoop.hive.ql.io.HiveInputFormat;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.session.SessionState;
-import org.apache.hadoop.hive.ql.session.SessionState.ResourceType;
import org.apache.hadoop.hive.ql.util.ResourceDownloader;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.mapred.JobConf;
@@ -85,6 +81,9 @@ public class LlapServiceDriver {
private static final String[] NEEDED_CONFIGS = LlapDaemonConfiguration.DAEMON_CONFIGS;
private static final String[] OPTIONAL_CONFIGS = LlapDaemonConfiguration.SSL_DAEMON_CONFIGS;
+ // This is not a config that users set in hive-site. It's only use is to share information
+ // between the java component of the service driver and the python component.
+ private static final String CONFIG_CLUSTER_NAME = "private.hive.llap.servicedriver.cluster.name";
/**
* This is a working configuration for the instance to merge various variables.
@@ -98,6 +97,7 @@ public class LlapServiceDriver {
}
public static void main(String[] args) throws Exception {
+ LOG.info("LLAP service driver invoked with arguments={}", args);
int ret = 0;
try {
new LlapServiceDriver().run(args);
@@ -105,6 +105,8 @@ public class LlapServiceDriver {
System.err.println("Failed: " + t.getMessage());
t.printStackTrace();
ret = 3;
+ } finally {
+ LOG.info("LLAP service driver finished");
}
if (LOG.isDebugEnabled()) {
LOG.debug("Completed processing - exiting with " + ret);
@@ -134,7 +136,7 @@ public class LlapServiceDriver {
}
}
- private static void populateConfWithLlapProperties(Configuration conf, Properties properties) {
+ static void populateConfWithLlapProperties(Configuration conf, Properties properties) {
for(Entry<Object, Object> props : properties.entrySet()) {
String key = (String) props.getKey();
if (HiveConf.getLlapDaemonConfVars().contains(key)) {
@@ -445,6 +447,13 @@ public class LlapServiceDriver {
HiveConf.getVar(conf, ConfVars.LLAP_DAEMON_QUEUE_NAME));
}
+ // Propagate the cluster name to the script.
+ String clusterHosts = HiveConf.getVar(conf, ConfVars.LLAP_DAEMON_SERVICE_HOSTS);
+ if (!StringUtils.isEmpty(clusterHosts) && clusterHosts.startsWith("@") &&
+ clusterHosts.length() > 1) {
+ configs.put(CONFIG_CLUSTER_NAME, clusterHosts.substring(1));
+ }
+
configs.put(YarnConfiguration.RM_SCHEDULER_MINIMUM_ALLOCATION_MB,
conf.getInt(YarnConfiguration.RM_SCHEDULER_MINIMUM_ALLOCATION_MB, -1));
http://git-wip-us.apache.org/repos/asf/hive/blob/67b9dc50/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusOptionsProcessor.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusOptionsProcessor.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusOptionsProcessor.java
index e3a100c..cb848c0 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusOptionsProcessor.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusOptionsProcessor.java
@@ -18,6 +18,9 @@
package org.apache.hadoop.hive.llap.cli;
+import java.util.Properties;
+import java.util.concurrent.TimeUnit;
+
import jline.TerminalFactory;
import org.apache.commons.cli.GnuParser;
import org.apache.commons.cli.HelpFormatter;
@@ -33,11 +36,16 @@ public class LlapStatusOptionsProcessor {
private static final String LLAPSTATUS_CONSTANT = "llapstatus";
+ private static final long FIND_YARN_APP_TIMEOUT_MS = 20 * 1000l; // 20seconds to wait for app to be visible
+
enum OptionConstants {
NAME("name", 'n', "LLAP cluster name"),
+ FIND_APP_TIMEOUT("findAppTimeout", 'f',
+ "Amount of time(s) that the tool will sleep to wait for the YARN application to start. negative values=wait forever, 0=Do not wait. default=" +
+ TimeUnit.SECONDS.convert(FIND_YARN_APP_TIMEOUT_MS, TimeUnit.MILLISECONDS) + "s"),
HIVECONF("hiveconf", null, "Use value for given property. Overridden by explicit parameters", "property=value", 2),
- HELP("help", 'H', "Print help information"),;
+ HELP("help", 'H', "Print help information");
private final String longOpt;
@@ -83,14 +91,26 @@ public class LlapStatusOptionsProcessor {
public static class LlapStatusOptions {
private final String name;
+ private final Properties conf;
+ private final long findAppTimeoutMs;
- LlapStatusOptions(String name) {
+ LlapStatusOptions(String name, Properties hiveProperties, long findAppTimeoutMs) {
this.name = name;
+ this.conf = hiveProperties;
+ this.findAppTimeoutMs = findAppTimeoutMs;
}
public String getName() {
return name;
}
+
+ public Properties getConf() {
+ return conf;
+ }
+
+ public long getFindAppTimeoutMs() {
+ return findAppTimeoutMs;
+ }
}
private final Options options = new Options();
@@ -113,14 +133,28 @@ public class LlapStatusOptionsProcessor {
public LlapStatusOptions processOptions(String[] args) throws ParseException {
commandLine = new GnuParser().parse(options, args);
- if (commandLine.hasOption(OptionConstants.HELP.getShortOpt()) ||
- false == commandLine.hasOption(OptionConstants.NAME.getLongOpt())) {
+ if (commandLine.hasOption(OptionConstants.HELP.getShortOpt())) {
printUsage();
return null;
}
String name = commandLine.getOptionValue(OptionConstants.NAME.getLongOpt());
- return new LlapStatusOptions(name);
+
+ long findAppTimeoutMs = FIND_YARN_APP_TIMEOUT_MS;
+ if (commandLine.hasOption(OptionConstants.FIND_APP_TIMEOUT.getLongOpt())) {
+ findAppTimeoutMs = TimeUnit.MILLISECONDS.convert(Long.parseLong(
+ commandLine.getOptionValue(OptionConstants.FIND_APP_TIMEOUT.getLongOpt())),
+ TimeUnit.SECONDS);
+ }
+
+ Properties hiveConf;
+ if (commandLine.hasOption(OptionConstants.HIVECONF.getLongOpt())) {
+ hiveConf = commandLine.getOptionProperties(OptionConstants.HIVECONF.getLongOpt());
+ } else {
+ hiveConf = new Properties();
+ }
+
+ return new LlapStatusOptions(name, hiveConf, findAppTimeoutMs);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/67b9dc50/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java
index 45ba5d0..646c286 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java
@@ -27,6 +27,8 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import com.google.common.annotations.VisibleForTesting;
+import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.llap.cli.LlapStatusOptionsProcessor.LlapStatusOptions;
@@ -53,14 +55,15 @@ public class LlapStatusServiceDriver {
private static final Logger LOG = LoggerFactory.getLogger(LlapStatusServiceDriver.class);
- private static final long FIND_YARN_APP_TIMEOUT = 20 * 1000l; // 20seconds to wait for app to be visible
+
private static final String AM_KEY = "slider-appmaster";
private static final String LLAP_KEY = "LLAP";
private final Configuration conf;
private final Clock clock = new SystemClock();
- private final AppStatusBuilder appStatusBuilder = new AppStatusBuilder();
+ @VisibleForTesting
+ final AppStatusBuilder appStatusBuilder = new AppStatusBuilder();
public LlapStatusServiceDriver() {
SessionState ss = SessionState.get();
@@ -85,7 +88,29 @@ public class LlapStatusServiceDriver {
conf.addResource(f);
}
conf.reloadConfiguration();
+ for (Map.Entry<Object, Object> props : options.getConf().entrySet()) {
+ conf.set((String) props.getKey(), (String) props.getValue());
+ }
+ String appName;
+ appName = options.getName();
+ if (StringUtils.isEmpty(appName)) {
+ appName = HiveConf.getVar(conf, HiveConf.ConfVars.LLAP_DAEMON_SERVICE_HOSTS);
+ if (appName.startsWith("@") && appName.length() > 1) {
+ // This is a valid slider app name. Parse it out.
+ appName = appName.substring(1);
+ } else {
+ // Invalid app name. Checked later.
+ appName = null;
+ }
+ }
+ if (StringUtils.isEmpty(appName)) {
+ String message =
+ "Invalid app name. This must be setup via config or passed in as a parameter." +
+ " This tool works with clusters deployed by Slider/YARN";
+ LOG.info(message);
+ return ExitCode.INCORRECT_USAGE.getInt();
+ }
try {
sliderClient = createSliderClient();
@@ -97,7 +122,7 @@ public class LlapStatusServiceDriver {
// Get the App report from YARN
ApplicationReport appReport = null;
try {
- appReport = getAppReport(options, sliderClient, FIND_YARN_APP_TIMEOUT);
+ appReport = getAppReport(appName, sliderClient, options.getFindAppTimeoutMs());
} catch (LlapStatusCliException e) {
logError(e);
return e.getExitCode().getInt();
@@ -120,7 +145,7 @@ public class LlapStatusServiceDriver {
} else {
// Get information from slider.
try {
- ret = populateAppStatusFromSlider(options, sliderClient, appStatusBuilder);
+ ret = populateAppStatusFromSlider(appName, sliderClient, appStatusBuilder);
} catch (LlapStatusCliException e) {
// In case of failure, send back whatever is constructed sop far - which wouldbe from the AppReport
logError(e);
@@ -140,8 +165,8 @@ public class LlapStatusServiceDriver {
}
return ret.getInt();
}finally {
- if (LOG.isTraceEnabled()) {
- LOG.trace("Final AppState: " + appStatusBuilder.toString());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Final AppState: " + appStatusBuilder.toString());
}
if (sliderClient != null) {
sliderClient.stop();
@@ -157,6 +182,7 @@ public class LlapStatusServiceDriver {
try {
writer.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(appStatusBuilder));
} catch (IOException e) {
+ LOG.warn("Failed to create JSON", e);
throw new LlapStatusCliException(ExitCode.LLAP_JSON_GENERATION_ERROR, "Failed to create JSON",
e);
}
@@ -185,18 +211,26 @@ public class LlapStatusServiceDriver {
}
- private ApplicationReport getAppReport(LlapStatusOptions options, SliderClient sliderClient,
+ private ApplicationReport getAppReport(String appName, SliderClient sliderClient,
long timeoutMs) throws LlapStatusCliException {
long startTime = clock.getTime();
- long timeoutTime = startTime + timeoutMs;
+ long timeoutTime = timeoutMs < 0 ? Long.MAX_VALUE : (startTime + timeoutMs);
ApplicationReport appReport = null;
// TODO HIVE-13454 Maybe add an option to wait for a certain amount of time for the app to
// move to running state. Potentially even wait for the containers to be launched.
- while (clock.getTime() < timeoutTime && appReport == null) {
+
+// while (clock.getTime() < timeoutTime && appReport == null) {
+
+ while (appReport == null) {
try {
- appReport = sliderClient.getYarnAppListClient().findInstance(options.getName());
+ appReport = sliderClient.getYarnAppListClient().findInstance(appName);
+ if (timeoutMs == 0) {
+ // break immediately if timeout is 0
+ break;
+ }
+ // Otherwise sleep, and try again.
if (appReport == null) {
long remainingTime = Math.min(timeoutTime - clock.getTime(), 500l);
if (remainingTime > 0) {
@@ -263,18 +297,18 @@ public class LlapStatusServiceDriver {
/**
*
- * @param options
+ * @param appName
* @param sliderClient
* @param appStatusBuilder
* @return an ExitCode. An ExitCode other than ExitCode.SUCCESS implies future progress not possible
* @throws LlapStatusCliException
*/
- private ExitCode populateAppStatusFromSlider(LlapStatusOptions options, SliderClient sliderClient, AppStatusBuilder appStatusBuilder) throws
+ private ExitCode populateAppStatusFromSlider(String appName, SliderClient sliderClient, AppStatusBuilder appStatusBuilder) throws
LlapStatusCliException {
ClusterDescription clusterDescription;
try {
- clusterDescription = sliderClient.getClusterDescription(options.getName());
+ clusterDescription = sliderClient.getClusterDescription(appName);
} catch (SliderException e) {
throw new LlapStatusCliException(ExitCode.SLIDER_CLIENT_ERROR_OTHER,
"Failed to get cluster description from slider. SliderErrorCode=" + (e).getExitCode(), e);
@@ -801,17 +835,27 @@ public class LlapStatusServiceDriver {
public static void main(String[] args) {
+ LOG.info("LLAP status invoked with arguments = {}", args);
int ret;
try {
LlapStatusServiceDriver statusServiceDriver = new LlapStatusServiceDriver();
ret = statusServiceDriver.run(args);
if (ret == ExitCode.SUCCESS.getInt()) {
- statusServiceDriver.outputJson(new PrintWriter(System.out));
+ try (PrintWriter pw = new PrintWriter(System.out)) {
+ statusServiceDriver.outputJson(pw);
+ }
}
} catch (Throwable t) {
logError(t);
- ret = ExitCode.INTERNAL_ERROR.getInt();
+ if (t instanceof LlapStatusCliException) {
+ LlapStatusCliException ce = (LlapStatusCliException) t;
+ ret = ce.getExitCode().getInt();
+ } else {
+ ret = ExitCode.INTERNAL_ERROR.getInt();
+ }
+ } finally {
+ LOG.info("LLAP status finished");
}
if (LOG.isDebugEnabled()) {
LOG.debug("Completed processing - exiting with " + ret);
http://git-wip-us.apache.org/repos/asf/hive/blob/67b9dc50/llap-server/src/main/resources/llap-cli-log4j2.properties
----------------------------------------------------------------------
diff --git a/llap-server/src/main/resources/llap-cli-log4j2.properties b/llap-server/src/main/resources/llap-cli-log4j2.properties
index a141042..2f27b5e 100644
--- a/llap-server/src/main/resources/llap-cli-log4j2.properties
+++ b/llap-server/src/main/resources/llap-cli-log4j2.properties
@@ -22,7 +22,7 @@ packages = org.apache.hadoop.hive.ql.log
property.hive.log.level = INFO
property.hive.root.logger = console
property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}
-property.hive.log.file = hive.log
+property.hive.log.file = llap-cli.log
# list of all appenders
appenders = console, DRFA
http://git-wip-us.apache.org/repos/asf/hive/blob/67b9dc50/llap-server/src/main/resources/package.py
----------------------------------------------------------------------
diff --git a/llap-server/src/main/resources/package.py b/llap-server/src/main/resources/package.py
index 58c43be..63c0ef1 100644
--- a/llap-server/src/main/resources/package.py
+++ b/llap-server/src/main/resources/package.py
@@ -43,6 +43,11 @@ class LlapResource(object):
self.queueString = "--queue "
self.queueString += config["hive.llap.daemon.queue.name"]
+ if (not config.get("private.hive.llap.servicedriver.cluster.name")):
+ self.clusterName="llap0"
+ else:
+ self.clusterName = config["private.hive.llap.servicedriver.cluster.name"]
+
def __repr__(self):
return "<LlapResource heap=%d container=%d>" % (self.heap_size, self.container_size)
@@ -108,7 +113,7 @@ def main(args):
"container.cores" : resource.container_cores,
"hadoop_home" : os.getenv("HADOOP_HOME"),
"java_home" : java_home,
- "name" : args.name,
+ "name" : resource.clusterName,
"daemon_args" : args.args,
"daemon_loglevel" : args.loglevel,
"queue.string" : resource.queueString,
http://git-wip-us.apache.org/repos/asf/hive/blob/67b9dc50/packaging/src/main/assembly/bin.xml
----------------------------------------------------------------------
diff --git a/packaging/src/main/assembly/bin.xml b/packaging/src/main/assembly/bin.xml
index 97bef59..8fd934a 100644
--- a/packaging/src/main/assembly/bin.xml
+++ b/packaging/src/main/assembly/bin.xml
@@ -393,6 +393,11 @@
<destName>llap-daemon-log4j2.properties.template</destName>
</file>
<file>
+ <source>${project.parent.basedir}/llap-server/src/main/resources/llap-cli-log4j2.properties</source>
+ <outputDirectory>conf</outputDirectory>
+ <destName>llap-cli-log4j2.properties.template</destName>
+ </file>
+ <file>
<source>${project.parent.basedir}/hcatalog/README.txt</source>
<outputDirectory>hcatalog/share/doc/hcatalog</outputDirectory>
</file>
[32/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part_all_primitive.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part_all_primitive.q.out b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part_all_primitive.q.out
new file mode 100644
index 0000000..7d45136
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part_all_primitive.q.out
@@ -0,0 +1,3038 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 true 0004-09-22 18:26:29.519542222 original
+2 1 45 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 NULL NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 6229-06-28 02:54:28.970117179 original
+4 1 1 NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 time will come 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_boolean
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: boolean), c2 (type: boolean), c3 (type: boolean), c4 (type: boolean), c5 (type: boolean), c6 (type: boolean), c7 (type: boolean), c8 (type: boolean), c9 (type: boolean), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: boolean), _col3 (type: boolean), _col4 (type: boolean), _col5 (type: boolean), _col6 (type: boolean), _col7 (type: boolean), _col8 (type: boolean), _col9 (type: boolean), _col10 (type: boolean), _col11 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: boolean), VALUE._col2 (type: boolean), VALUE._col3 (type: boolean), VALUE._col4 (type: boolean), VALUE._col5 (type: boolean), VALUE._col6 (type: boolean), VALUE._col7 (type: boolean), VALUE._col8 (type: boolean), VALUE._col9 (type: boolean), VALUE._col10 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+PREHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+POSTHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL true true true true true true true true original
+2 1 true true true true true true true false true original
+3 1 NULL NULL true true true true true true true original
+4 1 true NULL true true true true true true true original
+5 2 true true false true true false false true false new
+6 1 NULL NULL NULL NULL NULL NULL NULL true NULL new
+PREHOOK: query: drop table part_change_various_various_boolean
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: drop table part_change_various_various_boolean
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_tinyint
+ Statistics: Num rows: 6 Data size: 673 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: tinyint), c2 (type: tinyint), c3 (type: tinyint), c4 (type: tinyint), c5 (type: tinyint), c6 (type: tinyint), c7 (type: tinyint), c8 (type: tinyint), c9 (type: tinyint), c10 (type: tinyint), c11 (type: tinyint), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 673 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 673 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: tinyint), _col3 (type: tinyint), _col4 (type: tinyint), _col5 (type: tinyint), _col6 (type: tinyint), _col7 (type: tinyint), _col8 (type: tinyint), _col9 (type: tinyint), _col10 (type: tinyint), _col11 (type: tinyint), _col12 (type: tinyint), _col13 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: tinyint), VALUE._col2 (type: tinyint), VALUE._col3 (type: tinyint), VALUE._col4 (type: tinyint), VALUE._col5 (type: tinyint), VALUE._col6 (type: tinyint), VALUE._col7 (type: tinyint), VALUE._col8 (type: tinyint), VALUE._col9 (type: tinyint), VALUE._col10 (type: tinyint), VALUE._col11 (type: tinyint), VALUE._col12 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 673 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 673 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+PREHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 -48 -51 -66 -29 119 119 73 73 73 -43 original
+2 1 1 -24 -63 -25 -67 34 34 NULL NULL NULL 105 original
+3 1 0 NULL -66 -38 30 85 85 1 1 1 84 original
+4 1 1 NULL 87 6 34 36 36 -77 -77 -77 60 original
+5 2 23 71 127 1 NULL -60 68 NULL NULL 40 93 new
+6 1 NULL 85 -126 NULL 91 113 -28 -63 0 8 NULL new
+PREHOOK: query: drop table part_change_various_various_tinyint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: drop table part_change_various_various_tinyint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_smallint
+ Statistics: Num rows: 6 Data size: 712 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: smallint), c2 (type: smallint), c3 (type: smallint), c4 (type: smallint), c5 (type: smallint), c6 (type: smallint), c7 (type: smallint), c8 (type: smallint), c9 (type: smallint), c10 (type: smallint), c11 (type: smallint), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 712 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 712 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: smallint), _col3 (type: smallint), _col4 (type: smallint), _col5 (type: smallint), _col6 (type: smallint), _col7 (type: smallint), _col8 (type: smallint), _col9 (type: smallint), _col10 (type: smallint), _col11 (type: smallint), _col12 (type: smallint), _col13 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: smallint), VALUE._col2 (type: smallint), VALUE._col3 (type: smallint), VALUE._col4 (type: smallint), VALUE._col5 (type: smallint), VALUE._col6 (type: smallint), VALUE._col7 (type: smallint), VALUE._col8 (type: smallint), VALUE._col9 (type: smallint), VALUE._col10 (type: smallint), VALUE._col11 (type: smallint), VALUE._col12 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 712 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 712 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+PREHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+POSTHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL 7373 -32578 -29 119 119 -2999 -2999 -2999 -11819 original
+2 1 1 100 25025 29415 -3651 -19422 -19422 NULL NULL NULL 29801 original
+3 1 0 72 -32578 -27686 30 -939 -939 1 1 1 -8620 original
+4 1 1 -90 14935 12294 -19422 9764 9764 5299 5299 5299 -17092 original
+5 2 -30486 15230 3117 1 -117 -7131 20227 -24858 -28771 NULL NULL new
+6 1 NULL NULL -4844 15507 91 22385 -28 -12268 0 NULL NULL new
+PREHOOK: query: drop table part_change_various_various_smallint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: drop table part_change_various_various_smallint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 NULL -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_int
+ Statistics: Num rows: 6 Data size: 729 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: int), c2 (type: int), c3 (type: int), c4 (type: int), c5 (type: int), c6 (type: int), c7 (type: int), c8 (type: int), c9 (type: int), c10 (type: int), c11 (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 729 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 729 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: int), _col4 (type: int), _col5 (type: int), _col6 (type: int), _col7 (type: int), _col8 (type: int), _col9 (type: int), _col10 (type: int), _col11 (type: int), _col12 (type: int), _col13 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int), VALUE._col2 (type: int), VALUE._col3 (type: int), VALUE._col4 (type: int), VALUE._col5 (type: int), VALUE._col6 (type: int), VALUE._col7 (type: int), VALUE._col8 (type: int), VALUE._col9 (type: int), VALUE._col10 (type: int), VALUE._col11 (type: int), VALUE._col12 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 729 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 729 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+PREHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+POSTHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL NULL 3244222 -29 470614135 470614135 -2999 -2999 -2999 -1888628267 original
+2 1 1 100 NULL 1903063783 -3651 46114 46114 NULL NULL NULL 1171027049 original
+3 1 0 72 NULL -93222 30 -66475 -66475 1 1 1 1272503892 original
+4 1 1 -90 NULL 3289094 46114 9250340 9250340 5299 5299 5299 1021033788 original
+5 2 560930 -1281818 127 1 84269672 -60 27094665 -36016110 -182 3244222 561431 new
+6 1 NULL NULL NULL -167 91 113 -164341325 -134237413 0 6229 NULL new
+PREHOOK: query: drop table part_change_various_various_int
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: drop table part_change_various_various_int
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 NULL NULL -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 1998287.3541 1998287.3541 1998287.3541 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_bigint
+ Statistics: Num rows: 6 Data size: 764 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: bigint), c2 (type: bigint), c3 (type: bigint), c4 (type: bigint), c5 (type: bigint), c6 (type: bigint), c7 (type: bigint), c8 (type: bigint), c9 (type: bigint), c10 (type: bigint), c11 (type: bigint), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col1
<TRUNCATED>
[31/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_table.q.out b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_table.q.out
index 4003c20..7a7e068 100644
--- a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_table.q.out
+++ b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_table.q.out
@@ -1,297 +1,4193 @@
PREHOOK: query: -- SORT_QUERY_RESULTS
--
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@table1
+PREHOOK: Output: default@table_add_int_permute_select
POSTHOOK: query: -- SORT_QUERY_RESULTS
--
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
--
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b
-1 original
-2 original
-3 original
-4 original
-PREHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(c int, d string)
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(c int, d string)
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
_col0 _col1 _col2 _col3
-PREHOOK: query: select a,b,c,d from table1
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_add_int_permute_select
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
+PREHOOK: Input: default@table_add_int_permute_select
#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d from table1
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
+POSTHOOK: Input: default@table_add_int_permute_select
#### A masked pattern was here ####
-a b c d
-1 new 10 ten
-1 original NULL NULL
-2 new 20 twenty
-2 original NULL NULL
-3 new 30 thirty
-3 original NULL NULL
-4 new 40 forty
-4 original NULL NULL
-PREHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(e string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(e string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2')
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2')
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: table1.e SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
-_col0 _col1 _col2 _col3 _col4
-PREHOOK: query: select a,b,c,d,e from table1
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
+PREHOOK: Input: default@table_add_int_permute_select
#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d,e from table1
+POSTHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
+POSTHOOK: Input: default@table_add_int_permute_select
#### A masked pattern was here ####
-a b c d e
-1 new 10 ten NULL
-1 original NULL NULL NULL
-2 new 20 twenty NULL
-2 original NULL NULL NULL
-3 new 30 thirty NULL
-3 original NULL NULL NULL
-4 new 40 forty NULL
-4 original NULL NULL NULL
-5 new 100 hundred another1
-6 new 200 two hundred another2
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: drop table table_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: drop table table_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
--
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@table3
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
--
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-3 original
-4 original
-6737 original
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-6737 original
-72909 new
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6')
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6')
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table3.e SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-_col0 _col1 _col2
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: DROP TABLE table1
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_add_int_string_permute_select
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c d
+1 1 original NULL NULL
+10 6 new 200 two hundred
+2 2 original NULL NULL
+3 3 original NULL NULL
+4 4 original NULL NULL
+5 1 new 10 ten
+6 2 new 20 twenty
+7 3 new 30 thirty
+8 4 new 40 forty
+9 5 new 100 hundred
+PREHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a c d
+1 1 NULL NULL
+10 6 200 two hundred
+2 2 NULL NULL
+3 3 NULL NULL
+4 4 NULL NULL
+5 1 10 ten
+6 2 20 twenty
+7 3 30 thirty
+8 4 40 forty
+9 5 100 hundred
+PREHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a d
+1 1 NULL
+10 6 two hundred
+2 2 NULL
+3 3 NULL
+4 4 NULL
+5 1 ten
+6 2 twenty
+7 3 thirty
+8 4 forty
+9 5 hundred
+PREHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num d
+1 NULL
+10 two hundred
+2 NULL
+3 NULL
+4 NULL
+5 ten
+6 twenty
+7 thirty
+8 forty
+9 hundred
+PREHOOK: query: drop table table_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: drop table table_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_string_group_double
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: double), c2 (type: double), c3 (type: double), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: double), _col2 (type: double), _col3 (type: double), _col4 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: double), VALUE._col1 (type: double), VALUE._col2 (type: double), VALUE._col3 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+insert_num c1 c2 c3 b
+1 753.7028 753.7028 753.7028 original
+10 9250340.75 9250340.75 9250340.75 new
+2 -3651.672121 -3651.672121 -3651.672121 original
+3 -29.0764 -29.0764 -29.0764 original
+4 -10.3 -10.3 -10.3 original
+5 30.774 30.774 30.774 new
+6 20.31 20.31 20.31 new
+7 46114.284799488 46114.284799488 46114.284799488 new
+8 -66475.561431 -66475.561431 -66475.561431 new
+9 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table table_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: drop table table_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_date_group_string_group_timestamp
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: char(50)), _col3 (type: char(15)), _col4 (type: varchar(50)), _col5 (type: varchar(15)), _col6 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: string), VALUE._col1 (type: char(50)), VALUE._col2 (type: char(15)), VALUE._col3 (type: varchar(50)), VALUE._col4 (type: varchar(15)), VALUE._col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 6229-06-28 02:5 6229-06-28 02:54:28.970117179 6229-06-28 02:5 new
+9 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 5966-07-09 03:3 5966-07-09 03:30:50.597 5966-07-09 03:3 new
+PREHOOK: query: drop table table_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table table_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+c1 string
+c2 char(50)
+c3 char(15)
+c4 varchar(50)
+c5 varchar(15)
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 3
+ rawDataSize 195
+ totalSize 198
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_date_group_string_group_date
+ Statistics: Num rows: 9 Data size: 825 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 825 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 825 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: char(50)), _col3 (type: char(15)), _col4 (type: varchar(50)), _col5 (type: varchar(15)), _col6 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: string), VALUE._col1 (type: char(50)), VALUE._col2 (type: char(15)), VALUE._col3 (type: varchar(50)), VALUE._col4 (type: varchar(15)), VALUE._col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 825 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 825 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table table_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: drop table table_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_numeric_group_string_group_multi_ints_string
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: string), c2 (type: string), c3 (type: string), c4 (type: string), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: string), VALUE._col1 (type: string), VALUE._col2 (type: string), VALUE._col3 (type: string), VALUE._col4 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+10 17 90000 754072151 3289094 new
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+5 2000 72909 3244222 -93222 new
+6 1 200 2323322 5430907 new
+7 256 32768 31889 470614135 new
+8 5555 40000 -719017797 810662019 new
+9 100 5000 5443 0 new
+PREHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Ou
<TRUNCATED>
[42/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part.q b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part.q
index 173e417..d3c9c8a 100644
--- a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part.q
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part.q
@@ -1,98 +1,822 @@
+set hive.explain.user=true;
set hive.mapred.mode=nonstrict;
set hive.cli.print.header=true;
SET hive.exec.schema.evolution=true;
SET hive.vectorized.execution.enabled=false;
set hive.fetch.task.conversion=none;
set hive.exec.dynamic.partition.mode=nonstrict;
-
+set hive.metastore.disallow.incompatible.col.type.changes=true;
+set hive.default.fileformat=textfile;
-- SORT_QUERY_RESULTS
--
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Partitioned
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE;
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT);
+DESCRIBE FORMATTED part_add_int_permute_select;
-insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original');
+insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
-- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string);
+alter table part_add_int_permute_select add columns(c int);
+DESCRIBE FORMATTED part_add_int_permute_select;
+
+insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40);
-insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty');
+insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200);
-insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred');
+explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num;
-- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1;
-select part,a,b,c from partitioned1;
-select part,a,b,c,d from partitioned1;
-select part,a,c,d from partitioned1;
-select part,a,d from partitioned1;
-select part,c from partitioned1;
-select part,d from partitioned1;
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num;
+select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num;
+select insert_num,part,c from part_add_int_permute_select order by insert_num;
+drop table part_add_int_permute_select;
+
+
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
--
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
--
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE;
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT);
+DESCRIBE FORMATTED part_add_int_string_permute_select;
+
+insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string);
+DESCRIBE FORMATTED part_add_int_string_permute_select;
+
+insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty');
+
+insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred');
-insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original');
+explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,c from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,d from part_add_int_string_permute_select order by insert_num;
+
+drop table part_add_int_string_permute_select;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original');
-- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int;
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING);
-insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new');
+insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new');
-insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new');
+insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new');
-select part,a,b from partitioned2;
+explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num;
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num;
+drop table part_change_string_group_double;
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
--
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE;
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
-insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original');
+insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original');
--- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string);
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);
-insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1);
+insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new');
+insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new');
--- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1;
-select part,a,b,c from partitioned1;
-select part,a,b,c,d from partitioned1;
-select part,a,c,d from partitioned1;
-select part,a,d from partitioned1;
-select part,c from partitioned1;
-select part,d from partitioned1;
+explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num;
+
+drop table part_change_date_group_string_group_timestamp;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);
+
+insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num;
+
+drop table part_change_date_group_string_group_date;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_char partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_char_trunc partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_char_trunc partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_char_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_varchar(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), c4 VARCHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_varchar_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar_trunc partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_varchar_trunc replace columns (insert_num int, c1 VARCHAR(5), c2 VARCHAR(5), c3 VARCHAR(5), c4 VARCHAR(5), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar_trunc partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_varchar_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_string(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_string partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, - 832222222, 255, 4957,'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_string partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_string order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_string;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_char(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_char partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957,'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_char partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_char_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_char_trunc partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 832222222, -255, 4957, 'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_char_trunc replace columns (insert_num int, c1 CHAR(7), c2 CHAR(7), c3 CHAR(7), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_char_trunc partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_char_trunc;
--
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR
--
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE;
+CREATE TABLE part_change_numeric_group_string_group_floating_varchar(insert_num int, c1 float, c2 double, c3 decimal(38,18), b STRING) PARTITIONED BY(part INT);
-insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original');
+insert into table part_change_numeric_group_string_group_floating_varchar partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar order by insert_num;
-- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int;
+alter table part_change_numeric_group_string_group_floating_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_varchar partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_varchar_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_varchar_trunc partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_varchar_trunc replace columns (insert_num int, c1 VARCHAR(7), c2 VARCHAR(7), c3 VARCHAR(7), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_varchar_trunc partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_varchar_trunc;
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: STRING, (CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_string_group_string_group_string(insert_num int, c1 string, c2 string, c3 string, c4 string, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_string_group_string partition(part=1)
+ values (1, 'escapist', 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_string_group_string_group_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_string_group_string replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 VARCHAR(50), c4 CHAR(9), b STRING) ;
+
+insert into table part_change_string_group_string_group_string partition(part)
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'junkyard', 'new', 2),
+ (6, ' baffling ', ' baffling ', ' baffling ', ' baffling ', 'new', 2),
+ (7, ' featherweight ', ' featherweight ',' featherweight ',' featherweight ', 'new', 2),
+ (8, ' against', ' against', ' against', ' against', 'new', 2),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new', 1),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'bottom ', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_string_group_string_group_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_string_group_string_group_string order by insert_num;
+
+drop table part_change_string_group_string_group_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: CHAR, (VARCHAR, VARCHAR trunc, STRING)
+--
+CREATE TABLE part_change_string_group_string_group_char(insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_string_group_char partition(part=1)
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_string_group_char replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(9), c3 STRING, b STRING) ;
+
+insert into table part_change_string_group_string_group_char partition(part)
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new', 2),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new', 2),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new', 2),
+ (8, ' against', ' against', ' against', 'new', 2),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new', 1),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_char order by insert_num;
+
+drop table part_change_string_group_string_group_char;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: VARCHAR, (CHAR, CHAR trunc, STRING)
+--
+CREATE TABLE part_change_string_group_string_group_varchar(insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_string_group_varchar partition(part=1)
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_string_group_varchar replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 STRING, b STRING) ;
+
+insert into table part_change_string_group_string_group_varchar partition(part)
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new', 2),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new', 2),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new', 2),
+ (8, ' against', ' against', ' against', 'new', 2),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new', 1),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_varchar order by insert_num;
+
+drop table part_change_string_group_string_group_varchar;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: TINYINT, (SMALLINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_tinyint(insert_num int, c1 tinyint, c2 tinyint, c3 tinyint, c4 tinyint, c5 tinyint, c6 tinyint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_tinyint partition(part=1)
+ values (1, 45, 45, 45, 45, 45, 45, 'original'),
+ (2, -2, -2, -2, -2, -2, -2, 'original'),
+ (3, -255, -255, -255, -255, -255, -255, 'original'),
+ (4, 100, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,b from part_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_tinyint replace columns (insert_num int, c1 SMALLINT, c2 INT, c3 BIGINT, c4 decimal(38,18), c5 FLOAT, c6 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_tinyint partition(part)
+ values (5, '774', '2031', '200', '12', '99', '0', 'new', 2),
+ (6, '561431', '52927714', '7203778961', '8', '7', '6', 'new', 2),
+ (7, '256', '32768', '31889', '300', '444', '506', 'new', 2),
+ (8, '5555', '40000', '-719017797', '45', '55', '65', 'new', 2),
+ (9, '100', '5000', '5443', '22', '2', '-2', 'new', 1),
+ (10, '17', '90000', '754072151', '95', '20', '18', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,b from part_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,b from part_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_tinyint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: SMALLINT, (INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_smallint(insert_num int, c1 smallint, c2 smallint, c3 smallint, c4 smallint, c5 smallint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_smallint partition(part=1)
+ values (1, 2031, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, -5000, 'original'),
+ (4, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_smallint replace columns (insert_num int, c1 INT, c2 BIGINT, c3 decimal(38,18), c4 FLOAT, c5 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_smallint partition(part)
+ values (5, '774', '2031', '200', '12', '99', 'new', 2),
+ (6, '561431', '52927714', '7203778961', '8', '7', 'new', 2),
+ (7, '256', '32768', '31889', '300', '444', 'new', 2),
+ (8, '5555', '40000', '-719017797', '45', '55', 'new', 2),
+ (9, '100', '5000', '5443', '22', '2', 'new', 1),
+ (10, '17', '90000', '754072151', '95', '20', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_smallint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: INT, (BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_int(insert_num int, c1 int, c2 int, c3 int, c4 int, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_int partition(part=1)
+ values (1, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_lower_to_higher_numeric_group_int order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_int replace columns (insert_num int, c1 BIGINT, c2 decimal(38,18), c3 FLOAT, c4 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_int partition(part)
+ values (5, '774', '2031', '200', '12', 'new', 2),
+ (6, '561431', '52927714', '7203778961', '8', 'new', 2),
+ (7, '256', '32768', '31889', '300', 'new', 2),
+ (8, '5555', '40000', '-719017797', '45', 'new', 2),
+ (9, '100', '5000', '5443', '22', 'new', 1),
+ (10, '17', '90000', '754072151', '95', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_lower_to_higher_numeric_group_int order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_lower_to_higher_numeric_group_int order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_int;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: BIGINT, (DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_bigint(insert_num int, c1 bigint, c2 bigint, c3 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_bigint partition(part=1)
+ values (1, 7203778961, 7203778961, 7203778961, 'original'),
+ (2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_bigint replace columns (insert_num int, c1 decimal(38,18), c2 FLOAT, c3 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_bigint partition(part)
+ values (5, '774', '2031', '200', 'new', 2),
+ (6, '561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_bigint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: DECIMAL, (FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_decimal(insert_num int, c1 decimal(38,18), c2 decimal(38,18), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_decimal partition(part=1)
+ values (1, -29.0764, -29.0764, 'original'),
+ (2, 753.7028, 753.7028, 'original'),
+ (3, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 'original');
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_decimal replace columns (insert_num int, c1 float, c2 double, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_decimal partition(part)
+ values (5, '7.74', '22.3', 'new', 2),
+ (6, '56.1431', '90.9', 'new', 2),
+ (7, '2.56', '25.6', 'new', 2),
+ (8, '555.5', '55.55', 'new', 2),
+ (9, '10.0', '0.100', 'new', 1),
+ (10, '1.7', '17.8888', 'new', 1);
+
+explain
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_decimal;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: FLOAT, (DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_float(insert_num int, c1 float, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_float partition(part=1)
+ values (1, -29.0764, 'original'),
+ (2, 753.7028, 'original'),
+ (3, -5000, 'original'),
+ (4, 52927714, 'original');
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_float order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_float replace columns (insert_num int, c1 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_float partition(part)
+ values (5, '774', 'new', 2),
+ (6, '561431', 'new', 2),
+ (7, '256', 'new', 2),
+ (8, '5555', 'new', 2),
+ (9, '100', 'new', 1),
+ (10, '17', 'new', 1);
-insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1);
+explain
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_float order by insert_num;
-select part,a,b from partitioned4;
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_float order by insert_num;
+drop table part_change_lower_to_higher_numeric_group_float;
-DROP TABLE partitioned1;
-DROP TABLE partitioned2;
-DROP TABLE partitioned3;
-DROP TABLE partitioned4;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part_all_complex.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part_all_complex.q b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part_all_complex.q
new file mode 100644
index 0000000..f4614ff
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part_all_complex.q
@@ -0,0 +1,159 @@
+set hive.explain.user=true;
+set hive.mapred.mode=nonstrict;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=false;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=false;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT);
+
+CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt;
+
+insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt;
+
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING);
+
+CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt;
+
+insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt;
+
+CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt;
+
+insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt;
+
+explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num;
+
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num;
+
+drop table part_change_various_various_struct1;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original');
+
+select insert_num,part,b from part_add_various_various_struct2 order by insert_num;
+
+-- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>);
+
+CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt;
+
+insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt;
+
+CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt;
+
+insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt;
+
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>);
+
+CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt;
+
+insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt;
+
+CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt;
+
+insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt;
+
+explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num;
+
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num;
+
+drop table part_add_various_various_struct2;
+
+
+
+
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT);
+
+CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt;
+
+insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt;
+
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>);
+
+CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt;
+
+insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt;
+
+CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt;
+
+insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt;
+
+explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num;
+
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num;
+
+drop table part_add_to_various_various_struct4;
[24/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part_all_primitive.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part_all_primitive.q.out b/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part_all_primitive.q.out
new file mode 100644
index 0000000..6f9b35c
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part_all_primitive.q.out
@@ -0,0 +1,3058 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 true 0004-09-22 18:26:29.519542222 original
+2 1 45 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 NULL NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 6229-06-28 02:54:28.970117179 original
+4 1 1 NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 time will come 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_boolean
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: boolean), c2 (type: boolean), c3 (type: boolean), c4 (type: boolean), c5 (type: boolean), c6 (type: boolean), c7 (type: boolean), c8 (type: boolean), c9 (type: boolean), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: boolean), _col3 (type: boolean), _col4 (type: boolean), _col5 (type: boolean), _col6 (type: boolean), _col7 (type: boolean), _col8 (type: boolean), _col9 (type: boolean), _col10 (type: boolean), _col11 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: boolean), VALUE._col2 (type: boolean), VALUE._col3 (type: boolean), VALUE._col4 (type: boolean), VALUE._col5 (type: boolean), VALUE._col6 (type: boolean), VALUE._col7 (type: boolean), VALUE._col8 (type: boolean), VALUE._col9 (type: boolean), VALUE._col10 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+PREHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+POSTHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL true true true true true true true true original
+2 1 true true true true true true true false true original
+3 1 NULL NULL true true true true true true true original
+4 1 true NULL true true true true true true true original
+5 2 true true false true true false false true false new
+6 1 NULL NULL NULL NULL NULL NULL NULL true NULL new
+PREHOOK: query: drop table part_change_various_various_boolean
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: drop table part_change_various_various_boolean
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_tinyint
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: tinyint), c2 (type: tinyint), c3 (type: tinyint), c4 (type: tinyint), c5 (type: tinyint), c6 (type: tinyint), c7 (type: tinyint), c8 (type: tinyint), c9 (type: tinyint), c10 (type: tinyint), c11 (type: tinyint), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: tinyint), _col3 (type: tinyint), _col4 (type: tinyint), _col5 (type: tinyint), _col6 (type: tinyint), _col7 (type: tinyint), _col8 (type: tinyint), _col9 (type: tinyint), _col10 (type: tinyint), _col11 (type: tinyint), _col12 (type: tinyint), _col13 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: tinyint), VALUE._col2 (type: tinyint), VALUE._col3 (type: tinyint), VALUE._col4 (type: tinyint), VALUE._col5 (type: tinyint), VALUE._col6 (type: tinyint), VALUE._col7 (type: tinyint), VALUE._col8 (type: tinyint), VALUE._col9 (type: tinyint), VALUE._col10 (type: tinyint), VALUE._col11 (type: tinyint), VALUE._col12 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+PREHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 -48 -51 -66 -29 119 119 73 73 73 -43 original
+2 1 1 -24 -63 -25 -67 34 34 NULL NULL NULL 105 original
+3 1 0 NULL -66 -38 30 85 85 1 1 1 84 original
+4 1 1 NULL 87 6 34 36 36 -77 -77 -77 60 original
+5 2 23 71 127 1 NULL -60 68 NULL NULL 40 93 new
+6 1 NULL 85 -126 NULL 91 113 -28 -63 0 8 NULL new
+PREHOOK: query: drop table part_change_various_various_tinyint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: drop table part_change_various_various_tinyint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_smallint
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: smallint), c2 (type: smallint), c3 (type: smallint), c4 (type: smallint), c5 (type: smallint), c6 (type: smallint), c7 (type: smallint), c8 (type: smallint), c9 (type: smallint), c10 (type: smallint), c11 (type: smallint), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: smallint), _col3 (type: smallint), _col4 (type: smallint), _col5 (type: smallint), _col6 (type: smallint), _col7 (type: smallint), _col8 (type: smallint), _col9 (type: smallint), _col10 (type: smallint), _col11 (type: smallint), _col12 (type: smallint), _col13 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: smallint), VALUE._col2 (type: smallint), VALUE._col3 (type: smallint), VALUE._col4 (type: smallint), VALUE._col5 (type: smallint), VALUE._col6 (type: smallint), VALUE._col7 (type: smallint), VALUE._col8 (type: smallint), VALUE._col9 (type: smallint), VALUE._col10 (type: smallint), VALUE._col11 (type: smallint), VALUE._col12 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+PREHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+POSTHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL 7373 -32578 -29 119 119 -2999 -2999 -2999 -11819 original
+2 1 1 100 25025 29415 -3651 -19422 -19422 NULL NULL NULL 29801 original
+3 1 0 72 -32578 -27686 30 -939 -939 1 1 1 -8620 original
+4 1 1 -90 14935 12294 -19422 9764 9764 5299 5299 5299 -17092 original
+5 2 -30486 15230 3117 1 -117 -7131 20227 -24858 -28771 NULL NULL new
+6 1 NULL NULL -4844 15507 91 22385 -28 -12268 0 NULL NULL new
+PREHOOK: query: drop table part_change_various_various_smallint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: drop table part_change_various_various_smallint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 NULL -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_int
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: int), c2 (type: int), c3 (type: int), c4 (type: int), c5 (type: int), c6 (type: int), c7 (type: int), c8 (type: int), c9 (type: int), c10 (type: int), c11 (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: int), _col4 (type: int), _col5 (type: int), _col6 (type: int), _col7 (type: int), _col8 (type: int), _col9 (type: int), _col10 (type: int), _col11 (type: int), _col12 (type: int), _col13 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int), VALUE._col2 (type: int), VALUE._col3 (type: int), VALUE._col4 (type: int), VALUE._col5 (type: int), VALUE._col6 (type: int), VALUE._col7 (type: int), VALUE._col8 (type: int), VALUE._col9 (type: int), VALUE._col10 (type: int), VALUE._col11 (type: int), VALUE._col12 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+PREHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+POSTHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL NULL 3244222 -29 470614135 470614135 -2999 -2999 -2999 -1888628267 original
+2 1 1 100 NULL 1903063783 -3651 46114 46114 NULL NULL NULL 1171027049 original
+3 1 0 72 NULL -93222 30 -66475 -66475 1 1 1 1272503892 original
+4 1 1 -90 NULL 3289094 46114 9250340 9250340 5299 5299 5299 1021033788 original
+5 2 560930 -1281818 127 1 84269672 -60 27094665 -36016110 -182 3244222 561431 new
+6 1 NULL NULL NULL -167 91 113 -164341325 -134237413 0 6229 NULL new
+PREHOOK: query: drop table part_change_various_various_int
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: drop table part_change_various_various_int
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 NULL NULL -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 1998287.3541 1998287.3541 1998287.3541 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_bigint
+ Statistics: Num rows: 6 Data size: 682 Basic stats: COMPLETE Column st
<TRUNCATED>
[14/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_table.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_table.q.out
new file mode 100644
index 0000000..2b799f9
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_table.q.out
@@ -0,0 +1,3741 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=11)
+ Output:["_col0","_col1","_col2"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=11)
+ Output:["_col0","_col1","_col2"]
+ TableScan [TS_0] (rows=10 width=11)
+ default@table_add_int_permute_select,table_add_int_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: drop table table_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: drop table table_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=15)
+ Output:["_col0","_col1","_col2"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=15)
+ Output:["_col0","_col1","_col2"]
+ TableScan [TS_0] (rows=10 width=15)
+ default@table_add_int_string_permute_select,table_add_int_string_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c d
+1 1 original NULL NULL
+10 6 new 200 two hundred
+2 2 original NULL NULL
+3 3 original NULL NULL
+4 4 original NULL NULL
+5 1 new 10 ten
+6 2 new 20 twenty
+7 3 new 30 thirty
+8 4 new 40 forty
+9 5 new 100 hundred
+PREHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a c d
+1 1 NULL NULL
+10 6 200 two hundred
+2 2 NULL NULL
+3 3 NULL NULL
+4 4 NULL NULL
+5 1 10 ten
+6 2 20 twenty
+7 3 30 thirty
+8 4 40 forty
+9 5 100 hundred
+PREHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a d
+1 1 NULL
+10 6 two hundred
+2 2 NULL
+3 3 NULL
+4 4 NULL
+5 1 ten
+6 2 twenty
+7 3 thirty
+8 4 forty
+9 5 hundred
+PREHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num d
+1 NULL
+10 two hundred
+2 NULL
+3 NULL
+4 NULL
+5 ten
+6 twenty
+7 thirty
+8 forty
+9 hundred
+PREHOOK: query: drop table table_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: drop table table_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=38)
+ Output:["_col0","_col1","_col2","_col3","_col4"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=38)
+ Output:["_col0","_col1","_col2","_col3","_col4"]
+ TableScan [TS_0] (rows=10 width=38)
+ default@table_change_string_group_double,table_change_string_group_double,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+insert_num c1 c2 c3 b
+1 753.7028 753.7028 753.7028 original
+10 9250340.75 9250340.75 9250340.75 new
+2 -3651.672121 -3651.672121 -3651.672121 original
+3 -29.0764 -29.0764 -29.0764 original
+4 -10.3 -10.3 -10.3 original
+5 30.774 30.774 30.774 new
+6 20.31 20.31 20.31 new
+7 46114.284799488 46114.284799488 46114.284799488 new
+8 -66475.561431 -66475.561431 -66475.561431 new
+9 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table table_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: drop table table_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=9 width=132)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=9 width=132)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=9 width=132)
+ default@table_change_date_group_string_group_timestamp,table_change_date_group_string_group_timestamp,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 6229-06-28 02:5 6229-06-28 02:54:28.970117179 6229-06-28 02:5 new
+9 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 5966-07-09 03:3 5966-07-09 03:30:50.597 5966-07-09 03:3 new
+PREHOOK: query: drop table table_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table table_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+c1 string
+c2 char(50)
+c3 char(15)
+c4 varchar(50)
+c5 varchar(15)
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 3
+ rawDataSize 195
+ totalSize 198
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=9 width=61)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=9 width=61)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=9 width=61)
+ default@table_change_date_group_string_group_date,table_change_date_group_string_group_date,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table table_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: drop table table_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ TableScan [TS_0] (rows=10 width=33)
+ default@table_change_numeric_group_string_group_multi_ints_string,table_change_numeric_group_string_group_multi_ints_string,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+10 17 90000 754072151 3289094 new
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+5 2000 72909 3244222 -93222 new
+6 1 200 2323322 5430907 new
+7 256 32768 31889 470614135 new
+8 5555 40000 -719017797 810662019 new
+9 100 5000 5443 0 new
+PREHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__17
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__17
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__18
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__18
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ TableScan [TS_0] (rows=10 width=33)
+ default@table_change_numeric_group_string_group_multi_ints_char,table_change_numeric_group_string_group_multi_ints_char,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+10 17 90000 754072151 3289094 new
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+5 2000 72909 3244222 -93222 new
+6 1 200 2323322 5430907 new
+7 256 32768 31889 470614135 new
+8 5555 40000 -719017797 810662019 new
+9 100 5000 5443 0 new
+PREHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__19
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__19
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.b SIMPLE [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.c1 EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.c2 EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.c3 EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.c4 EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char_trunc.insert_num EXPRESSION [(values__tmp__table__19)values__tmp__table__19.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__20
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char_trunc
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__20
+POSTHOOK: Outp
<TRUNCATED>
[22/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_fetchwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_fetchwork_table.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_fetchwork_table.q.out
deleted file mode 100644
index f849004..0000000
--- a/ql/src/test/results/clientpositive/tez/schema_evol_text_fetchwork_table.q.out
+++ /dev/null
@@ -1,298 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b
-1 new
-1 original
-2 new
-2 original
-3 new
-3 original
-4 new
-4 original
-5 new
-6 new
-PREHOOK: query: select a,b,c from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c
-1 new 10
-1 original NULL
-2 new 20
-2 original NULL
-3 new 30
-3 original NULL
-4 new 40
-4 original NULL
-5 new 100
-6 new 200
-PREHOOK: query: select a,b,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c d
-1 new 10 ten
-1 original NULL NULL
-2 new 20 twenty
-2 original NULL NULL
-3 new 30 thirty
-3 original NULL NULL
-4 new 40 forty
-4 original NULL NULL
-5 new 100 hundred
-6 new 200 two hundred
-PREHOOK: query: select a,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a c d
-1 10 ten
-1 NULL NULL
-2 20 twenty
-2 NULL NULL
-3 30 thirty
-3 NULL NULL
-4 40 forty
-4 NULL NULL
-5 100 hundred
-6 200 two hundred
-PREHOOK: query: select a,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a d
-1 NULL
-1 ten
-2 NULL
-2 twenty
-3 NULL
-3 thirty
-4 NULL
-4 forty
-5 hundred
-6 two hundred
-PREHOOK: query: select c from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select c from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-c
-10
-100
-20
-200
-30
-40
-NULL
-NULL
-NULL
-NULL
-PREHOOK: query: select d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-d
-NULL
-NULL
-NULL
-NULL
-forty
-hundred
-ten
-thirty
-twenty
-two hundred
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table2
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table2
-PREHOOK: query: insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table2
-PREHOOK: Output: default@table2
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table2
-POSTHOOK: Output: default@table2
-PREHOOK: query: insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: insert into table table2 values(5000, 'new'),(90000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(5000, 'new'),(90000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table2
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table2
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table2
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: DROP TABLE table1
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: DROP TABLE table1
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: DROP TABLE table2
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table2
-PREHOOK: Output: default@table2
-POSTHOOK: query: DROP TABLE table2
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table2
-POSTHOOK: Output: default@table2
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_mapwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_mapwork_table.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_mapwork_table.q.out
deleted file mode 100644
index f849004..0000000
--- a/ql/src/test/results/clientpositive/tez/schema_evol_text_mapwork_table.q.out
+++ /dev/null
@@ -1,298 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b
-1 new
-1 original
-2 new
-2 original
-3 new
-3 original
-4 new
-4 original
-5 new
-6 new
-PREHOOK: query: select a,b,c from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c
-1 new 10
-1 original NULL
-2 new 20
-2 original NULL
-3 new 30
-3 original NULL
-4 new 40
-4 original NULL
-5 new 100
-6 new 200
-PREHOOK: query: select a,b,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c d
-1 new 10 ten
-1 original NULL NULL
-2 new 20 twenty
-2 original NULL NULL
-3 new 30 thirty
-3 original NULL NULL
-4 new 40 forty
-4 original NULL NULL
-5 new 100 hundred
-6 new 200 two hundred
-PREHOOK: query: select a,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a c d
-1 10 ten
-1 NULL NULL
-2 20 twenty
-2 NULL NULL
-3 30 thirty
-3 NULL NULL
-4 40 forty
-4 NULL NULL
-5 100 hundred
-6 200 two hundred
-PREHOOK: query: select a,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a d
-1 NULL
-1 ten
-2 NULL
-2 twenty
-3 NULL
-3 thirty
-4 NULL
-4 forty
-5 hundred
-6 two hundred
-PREHOOK: query: select c from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select c from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-c
-10
-100
-20
-200
-30
-40
-NULL
-NULL
-NULL
-NULL
-PREHOOK: query: select d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-d
-NULL
-NULL
-NULL
-NULL
-forty
-hundred
-ten
-thirty
-twenty
-two hundred
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table2
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table2
-PREHOOK: query: insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table2
-PREHOOK: Output: default@table2
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table2
-POSTHOOK: Output: default@table2
-PREHOOK: query: insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: insert into table table2 values(5000, 'new'),(90000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(5000, 'new'),(90000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table2
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table2
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table2
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: DROP TABLE table1
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: DROP TABLE table1
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: DROP TABLE table2
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table2
-PREHOOK: Output: default@table2
-POSTHOOK: query: DROP TABLE table2
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table2
-POSTHOOK: Output: default@table2
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_fetchwork_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_fetchwork_part.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_fetchwork_part.q.out
deleted file mode 100644
index 44ce24e..0000000
--- a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_fetchwork_part.q.out
+++ /dev/null
@@ -1,642 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, FetchWork, Partitioned
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned1
-POSTHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, FetchWork, Partitioned
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@partitioned1@part=1
-POSTHOOK: query: insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@partitioned1@part=1
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@partitioned1
-PREHOOK: Output: default@partitioned1
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@partitioned1@part=2
-POSTHOOK: query: insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@partitioned1@part=2
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@partitioned1@part=1
-POSTHOOK: query: insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@partitioned1@part=1
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b
-1 1 original
-1 2 original
-1 3 original
-1 4 original
-1 5 new
-1 6 new
-2 1 new
-2 2 new
-2 3 new
-2 4 new
-PREHOOK: query: select part,a,b,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c
-1 1 original NULL
-1 2 original NULL
-1 3 original NULL
-1 4 original NULL
-1 5 new NULL
-1 6 new NULL
-2 1 new 10
-2 2 new 20
-2 3 new 30
-2 4 new 40
-PREHOOK: query: select part,a,b,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c d
-1 1 original NULL NULL
-1 2 original NULL NULL
-1 3 original NULL NULL
-1 4 original NULL NULL
-1 5 new NULL NULL
-1 6 new NULL NULL
-2 1 new 10 ten
-2 2 new 20 twenty
-2 3 new 30 thirty
-2 4 new 40 forty
-PREHOOK: query: select part,a,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a c d
-1 1 NULL NULL
-1 2 NULL NULL
-1 3 NULL NULL
-1 4 NULL NULL
-1 5 NULL NULL
-1 6 NULL NULL
-2 1 10 ten
-2 2 20 twenty
-2 3 30 thirty
-2 4 40 forty
-PREHOOK: query: select part,a,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a d
-1 1 NULL
-1 2 NULL
-1 3 NULL
-1 4 NULL
-1 5 NULL
-1 6 NULL
-2 1 ten
-2 2 twenty
-2 3 thirty
-2 4 forty
-PREHOOK: query: select part,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part c
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 10
-2 20
-2 30
-2 40
-PREHOOK: query: select part,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part d
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 forty
-2 ten
-2 thirty
-2 twenty
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@partitioned2@part=1
-POSTHOOK: query: insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@partitioned2@part=1
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@partitioned2
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@partitioned2@part=2
-POSTHOOK: query: insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@partitioned2@part=2
-POSTHOOK: Lineage: partitioned2 PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@partitioned2@part=1
-POSTHOOK: query: insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@partitioned2@part=1
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select part,a,b from partitioned2
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned2
-PREHOOK: Input: default@partitioned2@part=1
-PREHOOK: Input: default@partitioned2@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b from partitioned2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Input: default@partitioned2@part=1
-POSTHOOK: Input: default@partitioned2@part=2
-#### A masked pattern was here ####
-part a b
-1 1000 original
-1 3 original
-1 4 original
-1 5000 new
-1 6737 original
-1 NULL new
-2 200 new
-2 32768 new
-2 40000 new
-2 72909 new
-PREHOOK: query: --
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: --
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__7
-PREHOOK: Output: default@partitioned3@part=1
-POSTHOOK: query: insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__7
-POSTHOOK: Output: default@partitioned3@part=1
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).a EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@partitioned3
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@partitioned3
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__8
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__8
-POSTHOOK: Output: default@partitioned3@part=1
-POSTHOOK: Output: default@partitioned3@part=2
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).a EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).c EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).d SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).a EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).c EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).d SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3 _col4
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b
-1 1 original
-1 2 original
-1 3 original
-1 4 original
-1 5 new
-1 6 new
-2 1 new
-2 2 new
-2 3 new
-2 4 new
-PREHOOK: query: select part,a,b,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c
-1 1 original NULL
-1 2 original NULL
-1 3 original NULL
-1 4 original NULL
-1 5 new NULL
-1 6 new NULL
-2 1 new 10
-2 2 new 20
-2 3 new 30
-2 4 new 40
-PREHOOK: query: select part,a,b,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c d
-1 1 original NULL NULL
-1 2 original NULL NULL
-1 3 original NULL NULL
-1 4 original NULL NULL
-1 5 new NULL NULL
-1 6 new NULL NULL
-2 1 new 10 ten
-2 2 new 20 twenty
-2 3 new 30 thirty
-2 4 new 40 forty
-PREHOOK: query: select part,a,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a c d
-1 1 NULL NULL
-1 2 NULL NULL
-1 3 NULL NULL
-1 4 NULL NULL
-1 5 NULL NULL
-1 6 NULL NULL
-2 1 10 ten
-2 2 20 twenty
-2 3 30 thirty
-2 4 40 forty
-PREHOOK: query: select part,a,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a d
-1 1 NULL
-1 2 NULL
-1 3 NULL
-1 4 NULL
-1 5 NULL
-1 6 NULL
-2 1 ten
-2 2 twenty
-2 3 thirty
-2 4 forty
-PREHOOK: query: select part,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part c
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 10
-2 20
-2 30
-2 40
-PREHOOK: query: select part,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part d
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 forty
-2 ten
-2 thirty
-2 twenty
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned4
-PREHOOK: query: insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__9
-PREHOOK: Output: default@partitioned4@part=1
-POSTHOOK: query: insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__9
-POSTHOOK: Output: default@partitioned4@part=1
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).a EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@partitioned4
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Output: default@partitioned4
-PREHOOK: query: insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__10
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__10
-POSTHOOK: Output: default@partitioned4@part=1
-POSTHOOK: Output: default@partitioned4@part=2
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).a EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=2).a EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=2).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1 _col2
-PREHOOK: query: select part,a,b from partitioned4
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned4
-PREHOOK: Input: default@partitioned4@part=1
-PREHOOK: Input: default@partitioned4@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b from partitioned4
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Input: default@partitioned4@part=1
-POSTHOOK: Input: default@partitioned4@part=2
-#### A masked pattern was here ####
-part a b
-1 1000 original
-1 3 original
-1 4 original
-1 5000 new
-1 6737 original
-1 NULL new
-2 200 new
-2 32768 new
-2 40000 new
-2 72909 new
-PREHOOK: query: DROP TABLE partitioned1
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@partitioned1
-PREHOOK: Output: default@partitioned1
-POSTHOOK: query: DROP TABLE partitioned1
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: DROP TABLE partitioned2
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@partitioned2
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: DROP TABLE partitioned2
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: DROP TABLE partitioned3
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@partitioned3
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: DROP TABLE partitioned3
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@partitioned3
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: DROP TABLE partitioned4
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@partitioned4
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: DROP TABLE partitioned4
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Output: default@partitioned4
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_fetchwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_fetchwork_table.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_fetchwork_table.q.out
deleted file mode 100644
index 4003c20..0000000
--- a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_fetchwork_table.q.out
+++ /dev/null
@@ -1,297 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b
-1 original
-2 original
-3 original
-4 original
-PREHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: select a,b,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c d
-1 new 10 ten
-1 original NULL NULL
-2 new 20 twenty
-2 original NULL NULL
-3 new 30 thirty
-3 original NULL NULL
-4 new 40 forty
-4 original NULL NULL
-PREHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(e string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(e string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: table1.e SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
-_col0 _col1 _col2 _col3 _col4
-PREHOOK: query: select a,b,c,d,e from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d,e from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c d e
-1 new 10 ten NULL
-1 original NULL NULL NULL
-2 new 20 twenty NULL
-2 original NULL NULL NULL
-3 new 30 thirty NULL
-3 original NULL NULL NULL
-4 new 40 forty NULL
-4 original NULL NULL NULL
-5 new 100 hundred another1
-6 new 200 two hundred another2
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table3
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-3 original
-4 original
-6737 original
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-6737 original
-72909 new
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table3.e SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-_col0 _col1 _col2
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: DROP TABLE table1
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: DROP TABLE table1
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: DROP TABLE table2
-PREHOOK: type: DROPTABLE
-POSTHOOK: query: DROP TABLE table2
-POSTHOOK: type: DROPTABLE
-PREHOOK: query: DROP TABLE table3
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: DROP TABLE table3
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
[16/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part_all_complex.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part_all_complex.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part_all_complex.q.out
new file mode 100644
index 0000000..4e03c0b
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part_all_complex.q.out
@@ -0,0 +1,673 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_a_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_a_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:s1, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct1_a_txt.insert_num struct1_a_txt.s1 struct1_a_txt.b
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":-29.0764,"c7":4.70614135E8,"c8":470614135,"c9":"dynamic reptile ","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":n)\u06af} original
+2 1 {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":-3651.672,"c7":46114.284799488,"c8":46114.284799488,"c9":" baffling ","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":n)\u06af} original
+3 1 {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af} original
+4 1 {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af} original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_b_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_b_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).b SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).insert_num SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).s1 SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_b_txt.insert_num struct1_b_txt.s1 struct1_b_txt.b
+PREHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_c_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_c_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_c_txt.insert_num struct1_c_txt.s1 struct1_c_txt.b
+PREHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=6 width=151)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=6 width=151)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=6 width=151)
+ default@part_change_various_various_struct1,part_change_various_various_struct1,Tbl:COMPLETE,Col:NONE,Output:["insert_num","s1","b"]
+
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+PREHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":"TRUE","c2":null,"c3":null,"c4":"3244222","c5":"-99999999999","c6":"-29.0764","c7":"4.70614135E8","c8":"470614135","c9":"dynamic reptile","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":"n)\u06af"} original
+2 1 {"c1":null,"c2":"100","c3":null,"c4":"14","c5":"-23866739993","c6":"-3651.672","c7":"46114.284799488","c8":"46114.284799488","c9":" baffling","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":"n)\u06af"} original
+3 1 {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"} original
+4 1 {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"} original
+5 2 {"c1":"true","c2":"400","c3":"44388","c4":"-100","c5":"953967041.","c6":"62.079153","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":"timestamp","c12":"date","c13":"binary"} new
+6 1 {"c1":"FALSE","c2":"-67","c3":"833","c4":"63993","c5":"1255178165","c6":"905071.0","c7":"-4314.7918","c8":"-1240033819","c9":"trial","c10":"trial","c11":null,"c12":"2016-03-07","c13":"n)\u06af"} new
+PREHOOK: query: drop table part_change_various_various_struct1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: drop table part_change_various_various_struct1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1
+PREHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+insert_num part b
+1 1 original
+2 1 original
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_a_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_a_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_a_txt.insert_num struct2_a_txt.b struct2_a_txt.s2
+PREHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_b_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_b_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_b_txt.insert_num struct2_b_txt.b struct2_b_txt.s2
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af}
+6 2 new {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_c_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_c_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_c_txt.insert_num struct2_c_txt.b struct2_c_txt.s2
+PREHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_d_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_d_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_d_txt.insert_num struct2_d_txt.b struct2_d_txt.s2
+PREHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=8 width=113)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=8 width=113)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=8 width=113)
+ default@part_add_various_various_struct2,part_add_various_various_struct2,Tbl:COMPLETE,Col:NONE,Output:["insert_num","b","s2"]
+
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"}
+6 2 new {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"}
+7 2 new {"c1":"TRUE","c2":null,"c3":null,"c4":"-100","c5":"953967041","c6":"62.07915","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":null,"c12":null,"c13":"n)\u06af"}
+8 1 new NULL
+PREHOOK: query: drop table part_add_various_various_struct2
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: drop table part_add_various_various_struct2
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_a_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_a_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint>, comment:null), ]
+struct4_a_txt.insert_num struct4_a_txt.b struct4_a_txt.s3
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_b_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_b_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).b SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).insert_num SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).s3 SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_b_txt.insert_num struct4_b_txt.b struct4_b_txt.s3
+PREHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_c_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_c_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_c_txt.insert_num struct4_c_txt.b struct4_c_txt.s3
+PREHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=4 width=84)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=4 width=84)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=4 width=84)
+ default@part_add_to_various_various_struct4,part_add_to_various_various_struct4,Tbl:COMPLETE,Col:NONE,Output:["insert_num","b","s3"]
+
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+3 2 new {"c1":true,"c2":null,"c3":null,"c4":-100,"c5":953967041,"c6":62.07915,"c7":718.78,"c8":1,"c9":"verdict ","c10":"verdict","c11":null,"c12":null,"c13":n)\u06af}
+4 1 new {"c1":false,"c2":-67,"c3":833,"c4":63993,"c5":1255178165,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+PREHOOK: query: drop table part_add_to_various_various_struct4
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: drop table part_add_to_various_various_struct4
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
[03/50] [abbrv] hive git commit: HIVE-13629 : Expose Merge-File task
and Column-Truncate task from DDLTask (zhihai xu,
reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
HIVE-13629 : Expose Merge-File task and Column-Truncate task from DDLTask (zhihai xu, reviewed by Sergey Shelukhin)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/121d70f1
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/121d70f1
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/121d70f1
Branch: refs/heads/llap
Commit: 121d70f1c0a1130595337db68a0732a51d2e7c68
Parents: 67b9dc5
Author: Sergey Shelukhin <se...@apache.org>
Authored: Mon May 2 11:55:30 2016 -0700
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Mon May 2 11:55:30 2016 -0700
----------------------------------------------------------------------
ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java | 7 +++++++
1 file changed, 7 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/121d70f1/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
index cbeb361..39a1efc 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
@@ -251,6 +251,11 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
private MetaDataFormatter formatter;
private final HiveAuthorizationTranslator defaultAuthorizationTranslator = new DefaultHiveAuthorizationTranslator();
+ private Task<? extends Serializable> subtask = null;
+
+ public Task<? extends Serializable> getSubtask() {
+ return subtask;
+ }
@Override
public boolean requireLock() {
@@ -667,6 +672,7 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
// initialize the task and execute
task.initialize(queryState, getQueryPlan(), driverCxt, opContext);
+ subtask = task;
int ret = task.execute(driverCxt);
return ret;
}
@@ -4173,6 +4179,7 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
taskExec.initialize(queryState, null, driverCxt, null);
taskExec.setWork(truncateWork);
taskExec.setQueryPlan(this.getQueryPlan());
+ subtask = taskExec;
return taskExec.execute(driverCxt);
}
[11/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part_all_primitive.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part_all_primitive.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part_all_primitive.q.out
new file mode 100644
index 0000000..9abbcba
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_vecrow_mapwork_part_all_primitive.q.out
@@ -0,0 +1,2738 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 true 0004-09-22 18:26:29.519542222 original
+2 1 45 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 NULL NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 6229-06-28 02:54:28.970117179 original
+4 1 1 NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 time will come 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=96)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=96)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ TableScan [TS_0] (rows=6 width=96)
+ default@part_change_various_various_boolean,part_change_various_various_boolean,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+PREHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+POSTHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL true true true true true true true true original
+2 1 true true true true true true true false true original
+3 1 NULL NULL true true true true true true true original
+4 1 true NULL true true true true true true true original
+5 2 true true false true true false false true false new
+6 1 NULL NULL NULL NULL NULL NULL NULL true NULL new
+PREHOOK: query: drop table part_change_various_various_boolean
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: drop table part_change_various_various_boolean
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=97)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=97)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=97)
+ default@part_change_various_various_tinyint,part_change_various_various_tinyint,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+PREHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 -48 -51 -66 -29 119 119 73 73 73 -43 original
+2 1 1 -24 -63 -25 -67 34 34 NULL NULL NULL 105 original
+3 1 0 NULL -66 -38 30 85 85 1 1 1 84 original
+4 1 1 NULL 87 6 34 36 36 -77 -77 -77 60 original
+5 2 23 71 127 1 NULL -60 68 NULL NULL 40 93 new
+6 1 NULL 85 -126 NULL 91 113 -28 -63 0 8 NULL new
+PREHOOK: query: drop table part_change_various_various_tinyint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: drop table part_change_various_various_tinyint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=103)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=103)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=103)
+ default@part_change_various_various_smallint,part_change_various_various_smallint,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+PREHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+POSTHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL 7373 -32578 -29 119 119 -2999 -2999 -2999 -11819 original
+2 1 1 100 25025 29415 -3651 -19422 -19422 NULL NULL NULL 29801 original
+3 1 0 72 -32578 -27686 30 -939 -939 1 1 1 -8620 original
+4 1 1 -90 14935 12294 -19422 9764 9764 5299 5299 5299 -17092 original
+5 2 -30486 15230 3117 1 -117 -7131 20227 -24858 -28771 NULL NULL new
+6 1 NULL NULL -4844 15507 91 22385 -28 -12268 0 NULL NULL new
+PREHOOK: query: drop table part_change_various_various_smallint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: drop table part_change_various_various_smallint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 NULL -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=106)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=106)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=106)
+ default@part_change_various_various_int,part_change_various_various_int,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+PREHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+POSTHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL NULL 3244222 -29 470614135 470614135 -2999 -2999 -2999 -1888628267 original
+2 1 1 100 NULL 1903063783 -3651 46114 46114 NULL NULL NULL 1171027049 original
+3 1 0 72 NULL -93222 30 -66475 -66475 1 1 1 1272503892 original
+4 1 1 -90 NULL 3289094 46114 9250340 9250340 5299 5299 5299 1021033788 original
+5 2 560930 -1281818 127 1 84269672 -60 27094665 -36016110 -182 3244222 561431 new
+6 1 NULL NULL NULL -167 91 113 -164341325 -134237413 0 6229 NULL new
+PREHOOK: query: drop table part_change_various_various_int
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: drop table part_change_various_various_int
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 NULL NULL -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 1998287.3541 1998287.3541 1998287.3541 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=113)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=113)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=113)
+ default@part_change_various_various_bigint,part_change_various_various_bigint,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Input: default@part_change_various_various_bigint@part=1
+PREHOOK: Input: default@part_change_various_various_bigint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Input: default@part_change_various_various_bigint@part=1
+POSTHOOK: Input: default@part_change_various_various_bigint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL NULL 3244222 -29 470614135 470614135 -2999 -2999 -2999 -62018170411 original
+2 1 1 100 NULL NULL -3651 46114 46114 NULL NULL NULL 1171027049 original
+3 1 0 72 NULL -93222 30 -66475 -66475 1 1 1 134416490068 original
+4 1 1 -90 NULL 3289094 46114 9250340 9250340 1998287 NULL NULL 1021033788 original
+5 2 5573199346255528403 71 151775655 1 131 -60 6275638713485623898 -230 -695025 519542222 -29 new
+6 1 NULL NULL -126 NULL 91 113 -28 -63 0 3244222 NULL new
+PREHOOK: query: drop table part_change_various_various_bigint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: drop table part_change_various_various_bigint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> FLOAT
+--
+CREATE TABLE part_change_various_various_float(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_float
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> FLOAT
+--
+CREATE TABLE part_change_various_various_float(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_float
+PREHOOK: query: insert into table part_change_various_various_float partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '2402.3', '2402.3', '2402.3', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@part_change_various_various_float@part=1
+POSTHOOK: query: insert into table part_change_various_various_float partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '2402.3', '2402.3', '2402.3', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@part_change_various_various_float@part=1
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(par
<TRUNCATED>
[49/50] [abbrv] hive git commit: HIVE-13568: UDFs for use in
column-masking - includes updates for review comments (Madhan Neethiraj via
Gunther Hagleitner)
Posted by jd...@apache.org.
HIVE-13568: UDFs for use in column-masking - includes updates for review comments (Madhan Neethiraj via Gunther Hagleitner)
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/e9a72189
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/e9a72189
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/e9a72189
Branch: refs/heads/llap
Commit: e9a72189edfded23c2e4a14a890a0528781852e5
Parents: d5285d8
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Wed Apr 20 23:57:55 2016 -0700
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Mon May 2 18:13:30 2016 -0700
----------------------------------------------------------------------
.../test/resources/testconfiguration.properties | 6 +
.../hadoop/hive/ql/exec/FunctionRegistry.java | 8 +
.../hadoop/hive/ql/udf/generic/BaseMaskUDF.java | 473 +++++++++++++++++++
.../hive/ql/udf/generic/GenericUDFMask.java | 334 +++++++++++++
.../ql/udf/generic/GenericUDFMaskFirstN.java | 229 +++++++++
.../hive/ql/udf/generic/GenericUDFMaskHash.java | 77 +++
.../ql/udf/generic/GenericUDFMaskLastN.java | 193 ++++++++
.../udf/generic/GenericUDFMaskShowFirstN.java | 248 ++++++++++
.../ql/udf/generic/GenericUDFMaskShowLastN.java | 198 ++++++++
ql/src/test/queries/clientpositive/udf_mask.q | 13 +
.../queries/clientpositive/udf_mask_first_n.q | 13 +
.../test/queries/clientpositive/udf_mask_hash.q | 13 +
.../queries/clientpositive/udf_mask_last_n.q | 13 +
.../clientpositive/udf_mask_show_first_n.q | 13 +
.../clientpositive/udf_mask_show_last_n.q | 13 +
.../beelinepositive/show_functions.q.out | 6 +
.../results/clientpositive/show_functions.q.out | 12 +
.../test/results/clientpositive/udf_mask.q.out | 71 +++
.../clientpositive/udf_mask_first_n.q.out | 68 +++
.../results/clientpositive/udf_mask_hash.q.out | 59 +++
.../clientpositive/udf_mask_last_n.q.out | 68 +++
.../clientpositive/udf_mask_show_first_n.q.out | 68 +++
.../clientpositive/udf_mask_show_last_n.q.out | 68 +++
23 files changed, 2264 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties
index 346a38d..c791ede 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -665,6 +665,12 @@ beeline.positive.exclude=add_part_exist.q,\
udf_map.q,\
udf_map_keys.q,\
udf_map_values.q,\
+ udf_mask.q,\
+ udf_mask_first_n.q,\
+ udf_mask_hash.q,\
+ udf_mask_last_n.q,\
+ udf_mask_show_first_n.q,\
+ udf_mask_show_last_n.q,\
udf_max.q,\
udf_min.q,\
udf_named_struct.q,\
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
index 1343b39..00df3a0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
@@ -474,6 +474,14 @@ public final class FunctionRegistry {
system.registerHiddenBuiltIn(GenericUDFOPDTIPlus.class);
system.registerHiddenBuiltIn(GenericUDFOPNumericMinus.class);
system.registerHiddenBuiltIn(GenericUDFOPNumericPlus.class);
+
+ // mask UDFs
+ system.registerGenericUDF(GenericUDFMask.UDF_NAME, GenericUDFMask.class);
+ system.registerGenericUDF(GenericUDFMaskFirstN.UDF_NAME, GenericUDFMaskFirstN.class);
+ system.registerGenericUDF(GenericUDFMaskLastN.UDF_NAME, GenericUDFMaskLastN.class);
+ system.registerGenericUDF(GenericUDFMaskShowFirstN.UDF_NAME, GenericUDFMaskShowFirstN.class);
+ system.registerGenericUDF(GenericUDFMaskShowLastN.UDF_NAME, GenericUDFMaskShowLastN.class);
+ system.registerGenericUDF(GenericUDFMaskHash.UDF_NAME, GenericUDFMaskHash.class);
}
public static String getNormalizedFunctionName(String fn) throws SemanticException {
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/BaseMaskUDF.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/BaseMaskUDF.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/BaseMaskUDF.java
new file mode 100644
index 0000000..343f332
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/BaseMaskUDF.java
@@ -0,0 +1,473 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.udf.generic;
+
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hive.common.type.HiveChar;
+import org.apache.hadoop.hive.common.type.HiveVarchar;
+import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDF.DeferredObject;
+import org.apache.hadoop.hive.serde2.io.*;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.*;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
+
+import java.sql.Date;
+
+
+public abstract class BaseMaskUDF extends GenericUDF {
+ private static final Log LOG = LogFactory.getLog(BaseMaskUDF.class);
+
+ final protected AbstractTransformer transformer;
+ final protected String displayName;
+ protected AbstractTransformerAdapter transformerAdapter = null;
+
+ protected BaseMaskUDF(AbstractTransformer transformer, String displayName) {
+ this.transformer = transformer;
+ this.displayName = displayName;
+ }
+
+ public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException {
+ LOG.debug("==> BaseMaskUDF.initialize()");
+
+ checkArgPrimitive(arguments, 0); // first argument is the column to be transformed
+
+ PrimitiveObjectInspector columnType = ((PrimitiveObjectInspector) arguments[0]);
+
+ transformer.init(arguments, 1);
+
+ transformerAdapter = AbstractTransformerAdapter.getTransformerAdapter(columnType, transformer);
+
+ ObjectInspector ret = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(columnType.getPrimitiveCategory());
+
+ LOG.debug("<== BaseMaskUDF.initialize()");
+
+ return ret;
+ }
+
+ @Override
+ public Object evaluate(DeferredObject[] arguments) throws HiveException {
+ Object ret = transformerAdapter.getTransformedWritable(arguments[0]);
+
+ return ret;
+ }
+
+ @Override
+ public String getDisplayString(String[] children) {
+ return getStandardDisplayString(displayName, children);
+ }
+}
+
+
+/**
+ * Interface to be implemented by transformers which transform a given value according to its specification.
+ */
+abstract class AbstractTransformer {
+ /**
+ * Initialzie the transformer object
+ * @param arguments arguments given to GenericUDF.initialzie()
+ * @param startIdx index into array, from which the transformer should read values
+ */
+ abstract void init(ObjectInspector[] arguments, int startIdx);
+
+ /**
+ * Transform a String value
+ * @param value value to transform
+ * @return transformed value
+ */
+ abstract String transform(String value);
+
+ /**
+ * Transform a Byte value
+ * @param value value to transform
+ * @return transformed value
+ */
+ abstract Byte transform(Byte value);
+
+ /**
+ * Transform a Short value
+ * @param value value to transform
+ * @return transformed value
+ */
+ abstract Short transform(Short value);
+
+ /**
+ * Transform a Integer value
+ * @param value value to transform
+ * @return transformed value
+ */
+ abstract Integer transform(Integer value);
+
+ /**
+ * Transform a Long value
+ * @param value value to transform
+ * @return transformed value
+ */
+ abstract Long transform(Long value);
+
+ /**
+ * Transform a Date value
+ * @param value value to transform
+ * @return transformed value
+ */
+ abstract Date transform(Date value);
+}
+
+/**
+ * Interface to be implemented by datatype specific adapters that handle necessary conversion of the transformed value
+ * into appropriate Writable object, which GenericUDF.evaluate() is expected to return.
+ */
+abstract class AbstractTransformerAdapter {
+ final AbstractTransformer transformer;
+
+ AbstractTransformerAdapter(AbstractTransformer transformer) {
+ this.transformer = transformer;
+ }
+
+ abstract Object getTransformedWritable(DeferredObject value) throws HiveException;
+
+ static AbstractTransformerAdapter getTransformerAdapter(PrimitiveObjectInspector columnType, AbstractTransformer transformer) {
+ final AbstractTransformerAdapter ret;
+
+ switch(columnType.getPrimitiveCategory()) {
+ case STRING:
+ ret = new StringTransformerAdapter((StringObjectInspector)columnType, transformer);
+ break;
+
+ case CHAR:
+ ret = new HiveCharTransformerAdapter((HiveCharObjectInspector)columnType, transformer);
+ break;
+
+ case VARCHAR:
+ ret = new HiveVarcharTransformerAdapter((HiveVarcharObjectInspector)columnType, transformer);
+ break;
+
+ case BYTE:
+ ret = new ByteTransformerAdapter((ByteObjectInspector)columnType, transformer);
+ break;
+
+ case SHORT:
+ ret = new ShortTransformerAdapter((ShortObjectInspector)columnType, transformer);
+ break;
+
+ case INT:
+ ret = new IntegerTransformerAdapter((IntObjectInspector)columnType, transformer);
+ break;
+
+ case LONG:
+ ret = new LongTransformerAdapter((LongObjectInspector)columnType, transformer);
+ break;
+
+ case DATE:
+ ret = new DateTransformerAdapter((DateObjectInspector)columnType, transformer);
+ break;
+
+ default:
+ ret = new UnsupportedDatatypeTransformAdapter(columnType, transformer);
+ break;
+ }
+
+ return ret;
+ }
+}
+
+class ByteTransformerAdapter extends AbstractTransformerAdapter {
+ final ByteObjectInspector columnType;
+ final ByteWritable writable;
+
+ public ByteTransformerAdapter(ByteObjectInspector columnType, AbstractTransformer transformer) {
+ this(columnType, transformer, new ByteWritable());
+ }
+
+ public ByteTransformerAdapter(ByteObjectInspector columnType, AbstractTransformer transformer, ByteWritable writable) {
+ super(transformer);
+
+ this.columnType = columnType;
+ this.writable = writable;
+ }
+
+ @Override
+ public Object getTransformedWritable(DeferredObject object) throws HiveException {
+ Byte value = (Byte)columnType.getPrimitiveJavaObject(object.get());
+
+ if(value != null) {
+ Byte transformedValue = transformer.transform(value);
+
+ if(transformedValue != null) {
+ writable.set(transformedValue);
+
+ return writable;
+ }
+ }
+
+ return null;
+ }
+}
+
+class DateTransformerAdapter extends AbstractTransformerAdapter {
+ final DateObjectInspector columnType;
+ final DateWritable writable;
+
+ public DateTransformerAdapter(DateObjectInspector columnType, AbstractTransformer transformer) {
+ this(columnType, transformer, new DateWritable());
+ }
+
+ public DateTransformerAdapter(DateObjectInspector columnType, AbstractTransformer transformer, DateWritable writable) {
+ super(transformer);
+
+ this.columnType = columnType;
+ this.writable = writable;
+ }
+
+ @Override
+ public Object getTransformedWritable(DeferredObject object) throws HiveException {
+ Date value = columnType.getPrimitiveJavaObject(object.get());
+
+ if(value != null) {
+ Date transformedValue = transformer.transform(value);
+
+ if(transformedValue != null) {
+ writable.set(transformedValue);
+
+ return writable;
+ }
+ }
+
+ return null;
+ }
+}
+
+class HiveCharTransformerAdapter extends AbstractTransformerAdapter {
+ final HiveCharObjectInspector columnType;
+ final HiveCharWritable writable;
+
+ public HiveCharTransformerAdapter(HiveCharObjectInspector columnType, AbstractTransformer transformer) {
+ this(columnType, transformer, new HiveCharWritable());
+ }
+
+ public HiveCharTransformerAdapter(HiveCharObjectInspector columnType, AbstractTransformer transformer, HiveCharWritable writable) {
+ super(transformer);
+
+ this.columnType = columnType;
+ this.writable = writable;
+ }
+
+ @Override
+ public Object getTransformedWritable(DeferredObject object) throws HiveException {
+ HiveChar value = columnType.getPrimitiveJavaObject(object.get());
+
+ if(value != null) {
+ String transformedValue = transformer.transform(value.getValue());
+
+ if(transformedValue != null) {
+ writable.set(transformedValue);
+
+ return writable;
+ }
+ }
+
+ return null;
+ }
+}
+
+class HiveVarcharTransformerAdapter extends AbstractTransformerAdapter {
+ final HiveVarcharObjectInspector columnType;
+ final HiveVarcharWritable writable;
+
+ public HiveVarcharTransformerAdapter(HiveVarcharObjectInspector columnType, AbstractTransformer transformer) {
+ this(columnType, transformer, new HiveVarcharWritable());
+ }
+
+ public HiveVarcharTransformerAdapter(HiveVarcharObjectInspector columnType, AbstractTransformer transformer, HiveVarcharWritable writable) {
+ super(transformer);
+
+ this.columnType = columnType;
+ this.writable = writable;
+ }
+
+ @Override
+ public Object getTransformedWritable(DeferredObject object) throws HiveException {
+ HiveVarchar value = columnType.getPrimitiveJavaObject(object.get());
+
+ if(value != null) {
+ String transformedValue = transformer.transform(value.getValue());
+
+ if(transformedValue != null) {
+ writable.set(transformedValue);
+
+ return writable;
+ }
+ }
+
+ return null;
+ }
+}
+
+class IntegerTransformerAdapter extends AbstractTransformerAdapter {
+ final IntObjectInspector columnType;
+ final IntWritable writable;
+
+ public IntegerTransformerAdapter(IntObjectInspector columnType, AbstractTransformer transformer) {
+ this(columnType, transformer, new IntWritable());
+ }
+
+ public IntegerTransformerAdapter(IntObjectInspector columnType, AbstractTransformer transformer, IntWritable writable) {
+ super(transformer);
+
+ this.columnType = columnType;
+ this.writable = writable;
+ }
+
+ @Override
+ public Object getTransformedWritable(DeferredObject object) throws HiveException {
+ Integer value = (Integer)columnType.getPrimitiveJavaObject(object.get());
+
+ if(value != null) {
+ Integer transformedValue = transformer.transform(value);
+
+ if(transformedValue != null) {
+ writable.set(transformedValue);
+
+ return writable;
+ }
+ }
+
+ return null;
+ }
+}
+
+class LongTransformerAdapter extends AbstractTransformerAdapter {
+ final LongObjectInspector columnType;
+ final LongWritable writable;
+
+ public LongTransformerAdapter(LongObjectInspector columnType, AbstractTransformer transformer) {
+ this(columnType, transformer, new LongWritable());
+ }
+
+ public LongTransformerAdapter(LongObjectInspector columnType, AbstractTransformer transformer, LongWritable writable) {
+ super(transformer);
+
+ this.columnType = columnType;
+ this.writable = writable;
+ }
+
+ @Override
+ public Object getTransformedWritable(DeferredObject object) throws HiveException {
+ Long value = (Long)columnType.getPrimitiveJavaObject(object.get());
+
+ if(value != null) {
+ Long transformedValue = transformer.transform(value);
+
+ if(transformedValue != null) {
+ writable.set(transformedValue);
+
+ return writable;
+ }
+ }
+
+ return null;
+ }
+}
+
+class ShortTransformerAdapter extends AbstractTransformerAdapter {
+ final ShortObjectInspector columnType;
+ final ShortWritable writable;
+
+ public ShortTransformerAdapter(ShortObjectInspector columnType, AbstractTransformer transformer) {
+ this(columnType, transformer, new ShortWritable());
+ }
+
+ public ShortTransformerAdapter(ShortObjectInspector columnType, AbstractTransformer transformer, ShortWritable writable) {
+ super(transformer);
+
+ this.columnType = columnType;
+ this.writable = writable;
+ }
+
+ @Override
+ public Object getTransformedWritable(DeferredObject object) throws HiveException {
+ Short value = (Short)columnType.getPrimitiveJavaObject(object.get());
+
+ if(value != null) {
+ Short transformedValue = transformer.transform(value);
+
+ if(transformedValue != null) {
+ writable.set(transformedValue);
+
+ return writable;
+ }
+ }
+
+ return null;
+ }
+}
+
+class StringTransformerAdapter extends AbstractTransformerAdapter {
+ final StringObjectInspector columnType;
+ final Text writable;
+
+ public StringTransformerAdapter(StringObjectInspector columnType, AbstractTransformer transformer) {
+ this(columnType, transformer, new Text());
+ }
+
+ public StringTransformerAdapter(StringObjectInspector columnType, AbstractTransformer transformer, Text writable) {
+ super(transformer);
+
+ this.columnType = columnType;
+ this.writable = writable;
+ }
+
+ @Override
+ public Object getTransformedWritable(DeferredObject object) throws HiveException {
+ String value = columnType.getPrimitiveJavaObject(object.get());
+
+ if(value != null) {
+ String transformedValue = transformer.transform(value);
+
+ if(transformedValue != null) {
+ writable.set(transformedValue);
+
+ return writable;
+ }
+ }
+
+ return null;
+ }
+}
+
+class UnsupportedDatatypeTransformAdapter extends AbstractTransformerAdapter {
+ final PrimitiveObjectInspector columnType;
+
+ public UnsupportedDatatypeTransformAdapter(PrimitiveObjectInspector columnType, AbstractTransformer transformer) {
+ super(transformer);
+
+ this.columnType = columnType;
+ }
+
+ @Override
+ public Object getTransformedWritable(DeferredObject object) throws HiveException {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMask.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMask.java
new file mode 100644
index 0000000..cd35142
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMask.java
@@ -0,0 +1,334 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.udf.generic;
+
+
+import java.sql.Date;
+
+import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.*;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+
+
+@Description(name = "mask",
+ value = "masks the given value",
+ extended = "Examples:\n "
+ + " mask(ccn)\n "
+ + " mask(ccn, 'X', 'x', '0')\n "
+ + " mask(ccn, 'x', 'x', 'x')\n "
+ + "Arguments:\n "
+ + " mask(value, upperChar, lowerChar, digitChar, otherChar, numberChar, dayValue, monthValue, yearValue)\n "
+ + " value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR, DATE\n "
+ + " upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'\n "
+ + " lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'\n "
+ + " digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'\n "
+ + " otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1\n "
+ + " numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'\n "
+ + " dayValue - value to replace day field in a date with. Specify -1 to retain original value. Valid values: 1-31. Default value: 1\n "
+ + " monthValue - value to replace month field in a date with. Specify -1 to retain original value. Valid values: 0-11. Default value: 0\n "
+ + " yearValue - value to replace year field in a date with. Specify -1 to retain original value. Default value: 0\n "
+ )
+public class GenericUDFMask extends BaseMaskUDF {
+ public static final String UDF_NAME = "mask";
+
+ public GenericUDFMask() {
+ super(new MaskTransformer(), UDF_NAME);
+ }
+}
+
+class MaskTransformer extends AbstractTransformer {
+ final static int MASKED_UPPERCASE = 'X';
+ final static int MASKED_LOWERCASE = 'x';
+ final static int MASKED_DIGIT = 'n';
+ final static int MASKED_OTHER_CHAR = -1;
+ final static int MASKED_NUMBER = 1;
+ final static int MASKED_DAY_COMPONENT_VAL = 1;
+ final static int MASKED_MONTH_COMPONENT_VAL = 0;
+ final static int MASKED_YEAR_COMPONENT_VAL = 0;
+ final static int UNMASKED_VAL = -1;
+
+ int maskedUpperChar = MASKED_UPPERCASE;
+ int maskedLowerChar = MASKED_LOWERCASE;
+ int maskedDigitChar = MASKED_DIGIT;
+ int maskedOtherChar = MASKED_OTHER_CHAR;
+ int maskedNumber = MASKED_NUMBER;
+ int maskedDayValue = MASKED_DAY_COMPONENT_VAL;
+ int maskedMonthValue = MASKED_MONTH_COMPONENT_VAL;
+ int maskedYearValue = MASKED_YEAR_COMPONENT_VAL;
+
+ public MaskTransformer() {
+ }
+
+ @Override
+ public void init(ObjectInspector[] arguments, int startIdx) {
+ int idx = startIdx;
+
+ maskedUpperChar = getCharArg(arguments, idx++, MASKED_UPPERCASE);
+ maskedLowerChar = getCharArg(arguments, idx++, MASKED_LOWERCASE);
+ maskedDigitChar = getCharArg(arguments, idx++, MASKED_DIGIT);
+ maskedOtherChar = getCharArg(arguments, idx++, MASKED_OTHER_CHAR);
+ maskedNumber = getIntArg(arguments, idx++, MASKED_NUMBER);
+ maskedDayValue = getIntArg(arguments, idx++, MASKED_DAY_COMPONENT_VAL);
+ maskedMonthValue = getIntArg(arguments, idx++, MASKED_MONTH_COMPONENT_VAL);
+ maskedYearValue = getIntArg(arguments, idx++, MASKED_YEAR_COMPONENT_VAL);
+
+ if(maskedNumber < 0 || maskedNumber > 9) {
+ maskedNumber = MASKED_NUMBER;
+ }
+
+ if(maskedDayValue < 1 || maskedDayValue > 31) {
+ maskedDayValue = MASKED_DAY_COMPONENT_VAL;
+ }
+
+ if(maskedMonthValue < 0 || maskedMonthValue > 11) {
+ maskedMonthValue = MASKED_MONTH_COMPONENT_VAL;
+ }
+ }
+
+ @Override
+ String transform(final String val) {
+ StringBuilder ret = new StringBuilder(val.length());
+
+ for(int i = 0; i < val.length(); i++) {
+ ret.appendCodePoint(transformChar(val.charAt(i)));
+ }
+
+ return ret.toString();
+ }
+
+ @Override
+ Byte transform(final Byte value) {
+ byte val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ byte ret = 0;
+ int pos = 1;
+ while(val != 0) {
+ ret += maskedNumber * pos;
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Short transform(final Short value) {
+ short val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ short ret = 0;
+ int pos = 1;
+ while(val != 0) {
+ ret += maskedNumber * pos;
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Integer transform(final Integer value) {
+ int val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ int ret = 0;
+ int pos = 1;
+ while(val != 0) {
+ ret += maskedNumber * pos;
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Long transform(final Long value) {
+ long val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ long ret = 0;
+ long pos = 1;
+ for(int i = 0; val != 0; i++) {
+ ret += maskedNumber * pos;
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Date transform(final Date value) {
+ int year = maskedYearValue == UNMASKED_VAL ? value.getYear() : maskedYearValue;
+ int month = maskedMonthValue == UNMASKED_VAL ? value.getMonth() : maskedMonthValue;
+ int day = maskedDayValue == UNMASKED_VAL ? value.getDate() : maskedDayValue;
+
+ return new Date(year, month, day);
+ }
+
+ protected int transformChar(final int c) {
+ switch(Character.getType(c)) {
+ case Character.UPPERCASE_LETTER:
+ if(maskedUpperChar != UNMASKED_VAL) {
+ return maskedUpperChar;
+ }
+ break;
+
+ case Character.LOWERCASE_LETTER:
+ if(maskedLowerChar != UNMASKED_VAL) {
+ return maskedLowerChar;
+ }
+ break;
+
+ case Character.DECIMAL_DIGIT_NUMBER:
+ if(maskedDigitChar != UNMASKED_VAL) {
+ return maskedDigitChar;
+ }
+ break;
+
+ default:
+ if(maskedOtherChar != UNMASKED_VAL) {
+ return maskedOtherChar;
+ }
+ break;
+ }
+
+ return c;
+ }
+
+ int getCharArg(ObjectInspector[] arguments, int index, int defaultValue) {
+ int ret = defaultValue;
+
+ ObjectInspector arg = (arguments != null && arguments.length > index) ? arguments[index] : null;
+
+ if (arg != null) {
+ if(arg instanceof WritableConstantIntObjectInspector) {
+ IntWritable value = ((WritableConstantIntObjectInspector)arg).getWritableConstantValue();
+
+ if(value != null) {
+ ret = value.get();
+ }
+ } else if(arg instanceof WritableConstantLongObjectInspector) {
+ LongWritable value = ((WritableConstantLongObjectInspector)arg).getWritableConstantValue();
+
+ if(value != null) {
+ ret = (int)value.get();
+ }
+ } else if(arg instanceof WritableConstantShortObjectInspector) {
+ ShortWritable value = ((WritableConstantShortObjectInspector)arg).getWritableConstantValue();
+
+ if(value != null) {
+ ret = value.get();
+ }
+ } else if(arg instanceof ConstantObjectInspector) {
+ Object value = ((ConstantObjectInspector) arg).getWritableConstantValue();
+
+ if (value != null) {
+ String strValue = value.toString();
+
+ if (strValue != null && strValue.length() > 0) {
+ ret = strValue.charAt(0);
+ }
+ }
+ }
+ }
+
+ return ret;
+ }
+
+ int getIntArg(ObjectInspector[] arguments, int index, int defaultValue) {
+ int ret = defaultValue;
+
+ ObjectInspector arg = (arguments != null && arguments.length > index) ? arguments[index] : null;
+
+ if (arg != null) {
+ if (arg instanceof WritableConstantIntObjectInspector) {
+ IntWritable value = ((WritableConstantIntObjectInspector) arg).getWritableConstantValue();
+
+ if (value != null) {
+ ret = value.get();
+ }
+ } else if (arg instanceof WritableConstantLongObjectInspector) {
+ LongWritable value = ((WritableConstantLongObjectInspector) arg).getWritableConstantValue();
+
+ if (value != null) {
+ ret = (int) value.get();
+ }
+ } else if (arg instanceof WritableConstantShortObjectInspector) {
+ ShortWritable value = ((WritableConstantShortObjectInspector) arg).getWritableConstantValue();
+
+ if (value != null) {
+ ret = value.get();
+ }
+ } else if (arg instanceof ConstantObjectInspector) {
+ Object value = ((ConstantObjectInspector) arg).getWritableConstantValue();
+
+ if (value != null) {
+ String strValue = value.toString();
+
+ if (strValue != null && strValue.length() > 0) {
+ ret = Integer.parseInt(value.toString());
+ }
+ }
+ }
+ }
+
+ return ret;
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskFirstN.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskFirstN.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskFirstN.java
new file mode 100644
index 0000000..1ecf86f
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskFirstN.java
@@ -0,0 +1,229 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.udf.generic;
+
+import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+
+
+@Description(name = "mask_first_n",
+ value = "masks the first n characters of the value",
+ extended = "Examples:\n "
+ + " mask_first_n(ccn, 8)\n "
+ + " mask_first_n(ccn, 8, 'x', 'x', 'x')\n "
+ + "Arguments:\n "
+ + " mask(value, charCount, upperChar, lowerChar, digitChar, otherChar, numberChar)\n "
+ + " value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR\n "
+ + " charCount - number of characters. Default value: 4\n "
+ + " upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'\n "
+ + " lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'\n "
+ + " digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'\n "
+ + " otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1\n "
+ + " numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'\n "
+ )
+public class GenericUDFMaskFirstN extends BaseMaskUDF {
+ public static final String UDF_NAME = "mask_first_n";
+
+ public GenericUDFMaskFirstN() {
+ super(new MaskFirstNTransformer(), UDF_NAME);
+ }
+}
+
+class MaskFirstNTransformer extends MaskTransformer {
+ int charCount = 4;
+
+ public MaskFirstNTransformer() {
+ super();
+ }
+
+ @Override
+ public void init(ObjectInspector[] arguments, int argsStartIdx) {
+ super.init(arguments, argsStartIdx + 1); // first argument is charCount, which is consumed in this method below
+
+ charCount = getIntArg(arguments, argsStartIdx, 4);
+
+ if(charCount < 0) {
+ charCount = 0;
+ }
+ }
+
+ @Override
+ String transform(final String value) {
+ final StringBuilder ret = new StringBuilder(value.length());
+ final int endIdx = value.length() < charCount ? value.length() : charCount;
+
+ for(int i = 0; i < endIdx; i++) {
+ ret.appendCodePoint(transformChar(value.charAt(i)));
+ }
+
+ for(int i = endIdx; i < value.length(); i++) {
+ ret.appendCodePoint(value.charAt(i));
+ }
+
+ return ret.toString();
+ }
+
+ @Override
+ Byte transform(final Byte value) {
+ byte val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ // count number of digits in the value
+ int digitCount = 0;
+ for(byte v = val; v != 0; v /= 10) {
+ digitCount++;
+ }
+
+ // number of digits to retain from the end
+ final int retainCount = digitCount < charCount ? 0 : (digitCount - charCount);
+
+ byte ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i >= retainCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { //retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Short transform(final Short value) {
+ short val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ // count number of digits in the value
+ int digitCount = 0;
+ for(short v = val; v != 0; v /= 10) {
+ digitCount++;
+ }
+
+ // number of digits to retain from the end
+ final int retainCount = digitCount < charCount ? 0 : (digitCount - charCount);
+
+ short ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i >= retainCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { // retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Integer transform(final Integer value) {
+ int val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ // count number of digits in the value
+ int digitCount = 0;
+ for(int v = val; v != 0; v /= 10) {
+ digitCount++;
+ }
+
+ // number of digits to retain from the end
+ final int retainCount = digitCount < charCount ? 0 : (digitCount - charCount);
+
+ int ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i >= retainCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { // retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Long transform(final Long value) {
+ long val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ // count number of digits in the value
+ int digitCount = 0;
+ for(long v = val; v != 0; v /= 10) {
+ digitCount++;
+ }
+
+ // number of digits to retain from the end
+ final int retainCount = digitCount < charCount ? 0 : (digitCount - charCount);
+
+ long ret = 0;
+ long pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i >= retainCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { // retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskHash.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskHash.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskHash.java
new file mode 100644
index 0000000..c456f43
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskHash.java
@@ -0,0 +1,77 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.udf.generic;
+
+import java.sql.Date;
+
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+
+
+@Description(name = "mask_hash",
+ value = "returns hash of the given value",
+ extended = "Examples:\n "
+ + " mask_hash(value)\n "
+ + "Arguments:\n "
+ + " value - value to mask. Supported types: STRING, VARCHAR, CHAR"
+ )
+public class GenericUDFMaskHash extends BaseMaskUDF {
+ public static final String UDF_NAME = "mask_hash";
+
+ public GenericUDFMaskHash() {
+ super(new MaskHashTransformer(), UDF_NAME);
+ }
+}
+
+class MaskHashTransformer extends AbstractTransformer {
+ @Override
+ public void init(ObjectInspector[] arguments, int startIdx) {
+ }
+
+ @Override
+ String transform(final String value) {
+ return DigestUtils.md5Hex(value);
+ }
+
+ @Override
+ Byte transform(final Byte value) {
+ return null;
+ }
+
+ @Override
+ Short transform(final Short value) {
+ return null;
+ }
+
+ @Override
+ Integer transform(final Integer value) {
+ return null;
+ }
+
+ @Override
+ Long transform(final Long value) {
+ return null;
+ }
+
+ @Override
+ Date transform(final Date value) {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskLastN.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskLastN.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskLastN.java
new file mode 100644
index 0000000..2e867bc
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskLastN.java
@@ -0,0 +1,193 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.udf.generic;
+
+import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+
+
+@Description(name = "mask_last_n",
+ value = "masks the last n characters of the value",
+ extended = "Examples:\n "
+ + " mask_last_n(ccn, 8)\n "
+ + " mask_last_n(ccn, 8, 'x', 'x', 'x')\n "
+ + "Arguments:\n "
+ + " mask_last_n(value, charCount, upperChar, lowerChar, digitChar, otherChar, numberChar)\n "
+ + " value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR\n "
+ + " charCount - number of characters. Default value: 4\n "
+ + " upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'\n "
+ + " lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'\n "
+ + " digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'\n "
+ + " otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1\n "
+ + " numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'\n "
+ )
+public class GenericUDFMaskLastN extends BaseMaskUDF {
+ public static final String UDF_NAME = "mask_last_n";
+
+ public GenericUDFMaskLastN() {
+ super(new MaskLastNTransformer(), UDF_NAME);
+ }
+}
+
+class MaskLastNTransformer extends MaskTransformer {
+ int charCount = 4;
+
+ public MaskLastNTransformer() {
+ super();
+ }
+
+ @Override
+ public void init(ObjectInspector[] arguments, int argsStartIdx) {
+ super.init(arguments, argsStartIdx + 1); // first argument is charCount, which is consumed in this method below
+
+ charCount = getIntArg(arguments, argsStartIdx, 4);
+
+ if(charCount < 0) {
+ charCount = 0;
+ }
+ }
+
+ @Override
+ String transform(final String value) {
+ final StringBuilder ret = new StringBuilder(value.length());
+ final int startIdx = value.length() <= charCount ? 0 : (value.length() - charCount);
+
+ for(int i = 0; i < startIdx; i++) {
+ ret.appendCodePoint(value.charAt(i));
+ }
+
+ for(int i = startIdx; i < value.length(); i++) {
+ ret.appendCodePoint(transformChar(value.charAt(i)));
+ }
+
+ return ret.toString();
+ }
+
+ @Override
+ Byte transform(final Byte value) {
+ byte val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ byte ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i < charCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { //retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Short transform(final Short value) {
+ short val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ short ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i < charCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { // retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Integer transform(final Integer value) {
+ int val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ int ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i < charCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { // retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Long transform(final Long value) {
+ long val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ long ret = 0;
+ long pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i < charCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { // retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskShowFirstN.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskShowFirstN.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskShowFirstN.java
new file mode 100644
index 0000000..a9a1766
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskShowFirstN.java
@@ -0,0 +1,248 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.udf.generic;
+
+import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+
+
+@Description(name = "mask_show_first_n",
+ value = "masks all but first n characters of the value",
+ extended = "Examples:\n "
+ + " mask_show_first_n(ccn, 8)\n "
+ + " mask_show_first_n(ccn, 8, 'x', 'x', 'x')\n "
+ + "Arguments:\n "
+ + " mask_show_first_n(value, charCount, upperChar, lowerChar, digitChar, otherChar, numberChar)\n "
+ + " value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR\n "
+ + " charCount - number of characters. Default value: 4\n "
+ + " upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'\n "
+ + " lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'\n "
+ + " digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'\n "
+ + " otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1\n "
+ + " numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'\n "
+ )
+public class GenericUDFMaskShowFirstN extends BaseMaskUDF {
+ public static final String UDF_NAME = "mask_show_first_n";
+
+ public GenericUDFMaskShowFirstN() {
+ super(new MaskShowFirstNTransformer(), UDF_NAME);
+ }
+}
+
+class MaskShowFirstNTransformer extends MaskTransformer {
+ int charCount = 4;
+
+ public MaskShowFirstNTransformer() {
+ super();
+ }
+
+ @Override
+ public void init(ObjectInspector[] arguments, int argsStartIdx) {
+ super.init(arguments, argsStartIdx + 1); // first argument is charCount, which is consumed here
+
+ charCount = getIntArg(arguments, argsStartIdx, 4);
+
+ if(charCount < 0) {
+ charCount = 0;
+ }
+ }
+
+ @Override
+ String transform(final String value) {
+ if(value.length() <= charCount) {
+ return value;
+ }
+
+ final StringBuilder ret = new StringBuilder(value.length());
+
+ for(int i = 0; i < charCount; i++) {
+ ret.appendCodePoint(value.charAt(i));
+ }
+
+ for(int i = charCount; i < value.length(); i++) {
+ ret.appendCodePoint(transformChar(value.charAt(i)));
+ }
+
+ return ret.toString();
+ }
+
+ @Override
+ Byte transform(final Byte value) {
+ byte val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ // count number of digits in the value
+ int digitCount = 0;
+ for(byte v = val; v != 0; v /= 10) {
+ digitCount++;
+ }
+
+ // number of digits to mask from the end
+ final int maskCount = digitCount - charCount;
+
+ if(maskCount <= 0) {
+ return value;
+ }
+
+ byte ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i < maskCount) { // mask this digit
+ ret += (maskedNumber * pos);
+ } else { //retain this digit
+ ret += ((val % 10) * pos);
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Short transform(final Short value) {
+ short val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ // count number of digits in the value
+ int digitCount = 0;
+ for(short v = val; v != 0; v /= 10) {
+ digitCount++;
+ }
+
+ // number of digits to mask from the end
+ final int maskCount = digitCount - charCount;
+
+ if(maskCount <= 0) {
+ return value;
+ }
+
+ short ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i < maskCount) { // mask this digit
+ ret += (maskedNumber * pos);
+ } else { // retain this digit
+ ret += ((val % 10) * pos);
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Integer transform(final Integer value) {
+ int val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ // count number of digits in the value
+ int digitCount = 0;
+ for(int v = val; v != 0; v /= 10) {
+ digitCount++;
+ }
+
+ // number of digits to mask from the end
+ final int maskCount = digitCount - charCount;
+
+ if(maskCount <= 0) {
+ return value;
+ }
+
+ int ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i < maskCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { // retain this digit
+ ret += ((val % 10) * pos);
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Long transform(final Long value) {
+ long val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ // count number of digits in the value
+ int digitCount = 0;
+ for(long v = val; v != 0; v /= 10) {
+ digitCount++;
+ }
+
+ // number of digits to mask from the end
+ final int maskCount = digitCount - charCount;
+
+ if(maskCount <= 0) {
+ return value;
+ }
+
+ long ret = 0;
+ long pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i < maskCount) { // mask this digit
+ ret += (maskedNumber * pos);
+ } else { // retain this digit
+ ret += ((val % 10) * pos);
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskShowLastN.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskShowLastN.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskShowLastN.java
new file mode 100644
index 0000000..2d05319
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMaskShowLastN.java
@@ -0,0 +1,198 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.udf.generic;
+
+import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+
+
+@Description(name = "mask_show_last_n",
+ value = "masks all but last n characters of the value",
+ extended = "Examples:\n "
+ + " mask_show_last_n(ccn, 8)\n "
+ + " mask_show_last_n(ccn, 8, 'x', 'x', 'x')\n "
+ + "Arguments:\n "
+ + " mask_show_last_n(value, charCount, upperChar, lowerChar, digitChar, otherChar, numberChar)\n "
+ + " value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR\n "
+ + " charCount - number of characters. Default value: 4\n "
+ + " upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'\n "
+ + " lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'\n "
+ + " digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'\n "
+ + " otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1\n "
+ + " numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'\n "
+ )
+public class GenericUDFMaskShowLastN extends BaseMaskUDF {
+ public static final String UDF_NAME = "mask_show_last_n";
+
+ public GenericUDFMaskShowLastN() {
+ super(new MaskShowLastNTransformer(), UDF_NAME);
+ }
+}
+
+class MaskShowLastNTransformer extends MaskTransformer {
+ int charCount = 4;
+
+ public MaskShowLastNTransformer() {
+ super();
+ }
+
+ @Override
+ public void init(ObjectInspector[] arguments, int argsStartIdx) {
+ super.init(arguments, argsStartIdx + 1); // first argument is charCount, which is consumed in this method below
+
+ charCount = getIntArg(arguments, argsStartIdx, 4);
+
+ if(charCount < 0) {
+ charCount = 0;
+ }
+ }
+
+
+ @Override
+ String transform(final String value) {
+ if(value.length() <= charCount) {
+ return value;
+ }
+
+ final StringBuilder ret = new StringBuilder(value.length());
+ final int endIdx = value.length() - charCount;
+
+ for(int i = 0; i < endIdx; i++) {
+ ret.appendCodePoint(transformChar(value.charAt(i)));
+ }
+
+ for(int i = endIdx; i < value.length(); i++) {
+ ret.appendCodePoint(value.charAt(i));
+ }
+
+ return ret.toString();
+ }
+
+ @Override
+ Byte transform(final Byte value) {
+ byte val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ byte ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i >= charCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { //retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Short transform(final Short value) {
+ short val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ short ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i >= charCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { // retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Integer transform(final Integer value) {
+ int val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ int ret = 0;
+ int pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i >= charCount) { // mask this digit
+ ret += maskedNumber * pos;
+ } else { // retain this digit
+ ret += (val % 10) * pos;
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+
+ @Override
+ Long transform(final Long value) {
+ long val = value;
+
+ if(value < 0) {
+ val *= -1;
+ }
+
+ long ret = 0;
+ long pos = 1;
+ for(int i = 0; val != 0; i++) {
+ if(i >= charCount) { // mask this digit
+ ret += (maskedNumber * pos);
+ } else { // retain this digit
+ ret += ((val % 10) * pos);
+ }
+
+ val /= 10;
+ pos *= 10;
+ }
+
+ if(value < 0) {
+ ret *= -1;
+ }
+
+ return ret;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/queries/clientpositive/udf_mask.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/udf_mask.q b/ql/src/test/queries/clientpositive/udf_mask.q
new file mode 100644
index 0000000..82b8ee7
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/udf_mask.q
@@ -0,0 +1,13 @@
+DESCRIBE FUNCTION mask;
+DESC FUNCTION EXTENDED mask;
+
+explain select mask('TestString-123', 'X', 'x', '0', '1');
+
+select mask('TestString-123', 'X', 'x', '0', ':'),
+ mask(cast('TestString-123' as varchar(24)), 'X', 'x', '0', ':'),
+ mask(cast('TestString-123' as char(24)), 'X', 'x', '0', ':'),
+ mask(cast(123 as tinyint), -1, -1, -1, -1, '5'),
+ mask(cast(12345 as smallint), -1, -1, -1, -1, '5'),
+ mask(cast(12345 as int), -1, -1, -1, -1, '5'),
+ mask(cast(12345 as bigint), -1, -1, -1, -1, '5'),
+ mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 0, 0, 0);
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/queries/clientpositive/udf_mask_first_n.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/udf_mask_first_n.q b/ql/src/test/queries/clientpositive/udf_mask_first_n.q
new file mode 100644
index 0000000..3cd3962
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/udf_mask_first_n.q
@@ -0,0 +1,13 @@
+DESCRIBE FUNCTION mask_first_n;
+DESC FUNCTION EXTENDED mask_first_n;
+
+explain select mask_first_n('TestString-123', 4, 'X', 'x', '0', '1');
+
+select mask_first_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_first_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_first_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_first_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0);
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/queries/clientpositive/udf_mask_hash.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/udf_mask_hash.q b/ql/src/test/queries/clientpositive/udf_mask_hash.q
new file mode 100644
index 0000000..698f6b3
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/udf_mask_hash.q
@@ -0,0 +1,13 @@
+DESCRIBE FUNCTION mask_hash;
+DESC FUNCTION EXTENDED mask_hash;
+
+explain select mask_hash('TestString-123');
+
+select mask_hash('TestString-123'),
+ mask_hash(cast('TestString-123' as varchar(24))),
+ mask_hash(cast('TestString-123' as char(24))),
+ mask_hash(cast(123 as tinyint)),
+ mask_hash(cast(12345 as smallint)),
+ mask_hash(cast(12345 as int)),
+ mask_hash(cast(12345 as bigint)),
+ mask_hash(cast('2016-04-20' as date));
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/queries/clientpositive/udf_mask_last_n.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/udf_mask_last_n.q b/ql/src/test/queries/clientpositive/udf_mask_last_n.q
new file mode 100644
index 0000000..89eb05d
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/udf_mask_last_n.q
@@ -0,0 +1,13 @@
+DESCRIBE FUNCTION mask_last_n;
+DESC FUNCTION EXTENDED mask_last_n;
+
+explain select mask_last_n('TestString-123', 4, 'X', 'x', '0', '1');
+
+select mask_last_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_last_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_last_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_last_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0);
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/queries/clientpositive/udf_mask_show_first_n.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/udf_mask_show_first_n.q b/ql/src/test/queries/clientpositive/udf_mask_show_first_n.q
new file mode 100644
index 0000000..1425a82
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/udf_mask_show_first_n.q
@@ -0,0 +1,13 @@
+DESCRIBE FUNCTION mask_show_first_n;
+DESC FUNCTION EXTENDED mask_show_first_n;
+
+explain select mask_show_first_n('TestString-123', 4, 'X', 'x', '0', '1');
+
+select mask_show_first_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_show_first_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_first_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_first_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0);
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/queries/clientpositive/udf_mask_show_last_n.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/udf_mask_show_last_n.q b/ql/src/test/queries/clientpositive/udf_mask_show_last_n.q
new file mode 100644
index 0000000..c4d15fb
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/udf_mask_show_last_n.q
@@ -0,0 +1,13 @@
+DESCRIBE FUNCTION mask_show_last_n;
+DESC FUNCTION EXTENDED mask_show_last_n;
+
+explain select mask_show_last_n('TestString-123', 4, 'X', 'x', '0', '1');
+
+select mask_show_last_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_show_last_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_last_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_last_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_show_last_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0);
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/results/beelinepositive/show_functions.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/beelinepositive/show_functions.q.out b/ql/src/test/results/beelinepositive/show_functions.q.out
index d7f706b..4f3ec40 100644
--- a/ql/src/test/results/beelinepositive/show_functions.q.out
+++ b/ql/src/test/results/beelinepositive/show_functions.q.out
@@ -96,6 +96,12 @@ Saving all output to "!!{outputDirectory}!!/show_functions.q.raw". Enter "record
'map'
'map_keys'
'map_values'
+'mask'
+'mask_first_n'
+'mask_hash'
+'mask_last_n'
+'mask_show_first_n'
+'mask_show_last_n'
'max'
'min'
'minute'
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/results/clientpositive/show_functions.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/show_functions.q.out b/ql/src/test/results/clientpositive/show_functions.q.out
index 3cddcce..5c8b982 100644
--- a/ql/src/test/results/clientpositive/show_functions.q.out
+++ b/ql/src/test/results/clientpositive/show_functions.q.out
@@ -127,6 +127,12 @@ ltrim
map
map_keys
map_values
+mask
+mask_first_n
+mask_hash
+mask_last_n
+mask_show_first_n
+mask_show_last_n
matchpath
max
md5
@@ -340,6 +346,12 @@ POSTHOOK: type: SHOWFUNCTIONS
map
map_keys
map_values
+mask
+mask_first_n
+mask_hash
+mask_last_n
+mask_show_first_n
+mask_show_last_n
matchpath
max
md5
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/results/clientpositive/udf_mask.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_mask.q.out b/ql/src/test/results/clientpositive/udf_mask.q.out
new file mode 100644
index 0000000..cbafaee
--- /dev/null
+++ b/ql/src/test/results/clientpositive/udf_mask.q.out
@@ -0,0 +1,71 @@
+PREHOOK: query: DESCRIBE FUNCTION mask
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESCRIBE FUNCTION mask
+POSTHOOK: type: DESCFUNCTION
+masks the given value
+PREHOOK: query: DESC FUNCTION EXTENDED mask
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESC FUNCTION EXTENDED mask
+POSTHOOK: type: DESCFUNCTION
+masks the given value
+Examples:
+ mask(ccn)
+ mask(ccn, 'X', 'x', '0')
+ mask(ccn, 'x', 'x', 'x')
+ Arguments:
+ mask(value, upperChar, lowerChar, digitChar, otherChar, numberChar, dayValue, monthValue, yearValue)
+ value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR, DATE
+ upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'
+ lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'
+ digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'
+ otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1
+ numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'
+ dayValue - value to replace day field in a date with. Specify -1 to retain original value. Valid values: 1-31. Default value: 1
+ monthValue - value to replace month field in a date with. Specify -1 to retain original value. Valid values: 0-11. Default value: 0
+ yearValue - value to replace year field in a date with. Specify -1 to retain original value. Default value: 0
+
+PREHOOK: query: explain select mask('TestString-123', 'X', 'x', '0', '1')
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select mask('TestString-123', 'X', 'x', '0', '1')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: 'XxxxXxxxxx1000' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 98 Basic stats: COMPLETE Column stats: COMPLETE
+ ListSink
+
+PREHOOK: query: select mask('TestString-123', 'X', 'x', '0', ':'),
+ mask(cast('TestString-123' as varchar(24)), 'X', 'x', '0', ':'),
+ mask(cast('TestString-123' as char(24)), 'X', 'x', '0', ':'),
+ mask(cast(123 as tinyint), -1, -1, -1, -1, '5'),
+ mask(cast(12345 as smallint), -1, -1, -1, -1, '5'),
+ mask(cast(12345 as int), -1, -1, -1, -1, '5'),
+ mask(cast(12345 as bigint), -1, -1, -1, -1, '5'),
+ mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 0, 0, 0)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select mask('TestString-123', 'X', 'x', '0', ':'),
+ mask(cast('TestString-123' as varchar(24)), 'X', 'x', '0', ':'),
+ mask(cast('TestString-123' as char(24)), 'X', 'x', '0', ':'),
+ mask(cast(123 as tinyint), -1, -1, -1, -1, '5'),
+ mask(cast(12345 as smallint), -1, -1, -1, -1, '5'),
+ mask(cast(12345 as int), -1, -1, -1, -1, '5'),
+ mask(cast(12345 as bigint), -1, -1, -1, -1, '5'),
+ mask(cast('2016-04-20' as date), -1, -1, -1, -1, -1, 0, 0, 0)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+XxxxXxxxxx:000 XxxxXxxxxx:000 XxxxXxxxxx:000:::::::::: 43 -9981 55555 55555 1900-01-01
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/results/clientpositive/udf_mask_first_n.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_mask_first_n.q.out b/ql/src/test/results/clientpositive/udf_mask_first_n.q.out
new file mode 100644
index 0000000..988cf70
--- /dev/null
+++ b/ql/src/test/results/clientpositive/udf_mask_first_n.q.out
@@ -0,0 +1,68 @@
+PREHOOK: query: DESCRIBE FUNCTION mask_first_n
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESCRIBE FUNCTION mask_first_n
+POSTHOOK: type: DESCFUNCTION
+masks the first n characters of the value
+PREHOOK: query: DESC FUNCTION EXTENDED mask_first_n
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESC FUNCTION EXTENDED mask_first_n
+POSTHOOK: type: DESCFUNCTION
+masks the first n characters of the value
+Examples:
+ mask_first_n(ccn, 8)
+ mask_first_n(ccn, 8, 'x', 'x', 'x')
+ Arguments:
+ mask(value, charCount, upperChar, lowerChar, digitChar, otherChar, numberChar)
+ value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR
+ charCount - number of characters. Default value: 4
+ upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'
+ lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'
+ digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'
+ otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1
+ numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'
+
+PREHOOK: query: explain select mask_first_n('TestString-123', 4, 'X', 'x', '0', '1')
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select mask_first_n('TestString-123', 4, 'X', 'x', '0', '1')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: 'XxxxString-123' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 98 Basic stats: COMPLETE Column stats: COMPLETE
+ ListSink
+
+PREHOOK: query: select mask_first_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_first_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_first_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_first_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select mask_first_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_first_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_first_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_first_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_first_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+XxxxString-123 XxxxString-123 XxxxString-123 43 -9981 55555 55555 1900-01-01
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/results/clientpositive/udf_mask_hash.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_mask_hash.q.out b/ql/src/test/results/clientpositive/udf_mask_hash.q.out
new file mode 100644
index 0000000..9fc34bb
--- /dev/null
+++ b/ql/src/test/results/clientpositive/udf_mask_hash.q.out
@@ -0,0 +1,59 @@
+PREHOOK: query: DESCRIBE FUNCTION mask_hash
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESCRIBE FUNCTION mask_hash
+POSTHOOK: type: DESCFUNCTION
+returns hash of the given value
+PREHOOK: query: DESC FUNCTION EXTENDED mask_hash
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESC FUNCTION EXTENDED mask_hash
+POSTHOOK: type: DESCFUNCTION
+returns hash of the given value
+Examples:
+ mask_hash(value)
+ Arguments:
+ value - value to mask. Supported types: STRING, VARCHAR, CHAR
+PREHOOK: query: explain select mask_hash('TestString-123')
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select mask_hash('TestString-123')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: 'dd78d68ad1b23bde126812482dd70ac6' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: COMPLETE
+ ListSink
+
+PREHOOK: query: select mask_hash('TestString-123'),
+ mask_hash(cast('TestString-123' as varchar(24))),
+ mask_hash(cast('TestString-123' as char(24))),
+ mask_hash(cast(123 as tinyint)),
+ mask_hash(cast(12345 as smallint)),
+ mask_hash(cast(12345 as int)),
+ mask_hash(cast(12345 as bigint)),
+ mask_hash(cast('2016-04-20' as date))
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select mask_hash('TestString-123'),
+ mask_hash(cast('TestString-123' as varchar(24))),
+ mask_hash(cast('TestString-123' as char(24))),
+ mask_hash(cast(123 as tinyint)),
+ mask_hash(cast(12345 as smallint)),
+ mask_hash(cast(12345 as int)),
+ mask_hash(cast(12345 as bigint)),
+ mask_hash(cast('2016-04-20' as date))
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+dd78d68ad1b23bde126812482dd70ac6 dd78d68ad1b23bde126812482dd70ac6 835735ba20f1297683efca69fabd0fba NULL NULL NULL NULL NULL
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/results/clientpositive/udf_mask_last_n.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_mask_last_n.q.out b/ql/src/test/results/clientpositive/udf_mask_last_n.q.out
new file mode 100644
index 0000000..ae75d51
--- /dev/null
+++ b/ql/src/test/results/clientpositive/udf_mask_last_n.q.out
@@ -0,0 +1,68 @@
+PREHOOK: query: DESCRIBE FUNCTION mask_last_n
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESCRIBE FUNCTION mask_last_n
+POSTHOOK: type: DESCFUNCTION
+masks the last n characters of the value
+PREHOOK: query: DESC FUNCTION EXTENDED mask_last_n
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESC FUNCTION EXTENDED mask_last_n
+POSTHOOK: type: DESCFUNCTION
+masks the last n characters of the value
+Examples:
+ mask_last_n(ccn, 8)
+ mask_last_n(ccn, 8, 'x', 'x', 'x')
+ Arguments:
+ mask_last_n(value, charCount, upperChar, lowerChar, digitChar, otherChar, numberChar)
+ value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR
+ charCount - number of characters. Default value: 4
+ upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'
+ lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'
+ digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'
+ otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1
+ numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'
+
+PREHOOK: query: explain select mask_last_n('TestString-123', 4, 'X', 'x', '0', '1')
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select mask_last_n('TestString-123', 4, 'X', 'x', '0', '1')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: 'TestString1000' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 98 Basic stats: COMPLETE Column stats: COMPLETE
+ ListSink
+
+PREHOOK: query: select mask_last_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_last_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_last_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_last_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select mask_last_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_last_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_last_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_last_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_last_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+TestString:000 TestString:000 TestString-123 :::: 43 15555 15555 15555 1900-01-01
http://git-wip-us.apache.org/repos/asf/hive/blob/e9a72189/ql/src/test/results/clientpositive/udf_mask_show_first_n.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_mask_show_first_n.q.out b/ql/src/test/results/clientpositive/udf_mask_show_first_n.q.out
new file mode 100644
index 0000000..d8ada97
--- /dev/null
+++ b/ql/src/test/results/clientpositive/udf_mask_show_first_n.q.out
@@ -0,0 +1,68 @@
+PREHOOK: query: DESCRIBE FUNCTION mask_show_first_n
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESCRIBE FUNCTION mask_show_first_n
+POSTHOOK: type: DESCFUNCTION
+masks all but first n characters of the value
+PREHOOK: query: DESC FUNCTION EXTENDED mask_show_first_n
+PREHOOK: type: DESCFUNCTION
+POSTHOOK: query: DESC FUNCTION EXTENDED mask_show_first_n
+POSTHOOK: type: DESCFUNCTION
+masks all but first n characters of the value
+Examples:
+ mask_show_first_n(ccn, 8)
+ mask_show_first_n(ccn, 8, 'x', 'x', 'x')
+ Arguments:
+ mask_show_first_n(value, charCount, upperChar, lowerChar, digitChar, otherChar, numberChar)
+ value - value to mask. Supported types: TINYINT, SMALLINT, INT, BIGINT, STRING, VARCHAR, CHAR
+ charCount - number of characters. Default value: 4
+ upperChar - character to replace upper-case characters with. Specify -1 to retain original character. Default value: 'X'
+ lowerChar - character to replace lower-case characters with. Specify -1 to retain original character. Default value: 'x'
+ digitChar - character to replace digit characters with. Specify -1 to retain original character. Default value: 'n'
+ otherChar - character to replace all other characters with. Specify -1 to retain original character. Default value: -1
+ numberChar - character to replace digits in a number with. Valid values: 0-9. Default value: '1'
+
+PREHOOK: query: explain select mask_show_first_n('TestString-123', 4, 'X', 'x', '0', '1')
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select mask_show_first_n('TestString-123', 4, 'X', 'x', '0', '1')
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: 'TestXxxxxx1000' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 98 Basic stats: COMPLETE Column stats: COMPLETE
+ ListSink
+
+PREHOOK: query: select mask_show_first_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_show_first_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_first_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_first_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select mask_show_first_n('TestString-123', 4, 'X', 'x', '0', ':'),
+ mask_show_first_n(cast('TestString-123' as varchar(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_first_n(cast('TestString-123' as char(24)), 4, 'X', 'x', '0', ':'),
+ mask_show_first_n(cast(123 as tinyint), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast(12345 as smallint), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast(12345 as int), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast(12345 as bigint), 4, -1, -1, -1, -1, '5'),
+ mask_show_first_n(cast('2016-04-20' as date), 4, -1, -1, -1, -1, -1, 0, 0, 0)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+TestXxxxxx:000 TestXxxxxx:000 TestXxxxxx:000:::::::::: 123 12345 12345 12345 1900-01-01
[07/50] [abbrv] hive git commit: HIVE-11887 : some tests break the
build on a shared machine, can break HiveQA (Sergey Shelukhin,
reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
HIVE-11887 : some tests break the build on a shared machine, can break HiveQA (Sergey Shelukhin, reviewed by Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/2f0339b0
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/2f0339b0
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/2f0339b0
Branch: refs/heads/llap
Commit: 2f0339b08b375a1b656a178627600fc26c0a974c
Parents: 3b2ea24
Author: Sergey Shelukhin <se...@apache.org>
Authored: Mon May 2 15:13:25 2016 -0700
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Mon May 2 15:13:25 2016 -0700
----------------------------------------------------------------------
itests/pom.xml | 3 ---
1 file changed, 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/2f0339b0/itests/pom.xml
----------------------------------------------------------------------
diff --git a/itests/pom.xml b/itests/pom.xml
index fb0a613..b68aa50 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -91,9 +91,6 @@
mkdir -p $DOWNLOAD_DIR
download "http://d3jw87u4immizc.cloudfront.net/spark-tarball/spark-${spark.version}-bin-hadoop2-without-hive.tgz" "spark"
cp -f $HIVE_ROOT/data/conf/spark/log4j2.properties $BASE_DIR/spark/conf/
- sed '/package /d' ${basedir}/${hive.path.to.root}/contrib/src/java/org/apache/hadoop/hive/contrib/udf/example/UDFExampleAdd.java > /tmp/UDFExampleAdd.java
- javac -cp ${settings.localRepository}/org/apache/hive/hive-exec/${project.version}/hive-exec-${project.version}.jar /tmp/UDFExampleAdd.java -d /tmp
- jar -cf /tmp/udfexampleadd-1.0.jar -C /tmp UDFExampleAdd.class
</echo>
</target>
</configuration>
[08/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java b/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java
index f44a84b..b375d26 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java
@@ -18,24 +18,15 @@
package org.apache.hadoop.hive.serde2.lazy.fast;
-import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.CharacterCodingException;
import java.sql.Date;
-import java.sql.Timestamp;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.common.type.HiveIntervalDayTime;
import org.apache.hadoop.hive.common.type.HiveIntervalYearMonth;
import org.apache.hadoop.hive.serde2.fast.DeserializeRead;
-import org.apache.hadoop.hive.serde2.io.DateWritable;
-import org.apache.hadoop.hive.serde2.io.HiveCharWritable;
-import org.apache.hadoop.hive.serde2.io.HiveIntervalDayTimeWritable;
-import org.apache.hadoop.hive.serde2.io.HiveIntervalYearMonthWritable;
-import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
-import org.apache.hadoop.hive.serde2.io.TimestampWritable;
import org.apache.hadoop.hive.serde2.lazy.LazyBinary;
import org.apache.hadoop.hive.serde2.lazy.LazyByte;
import org.apache.hadoop.hive.serde2.lazy.LazyInteger;
@@ -43,11 +34,8 @@ import org.apache.hadoop.hive.serde2.lazy.LazyLong;
import org.apache.hadoop.hive.serde2.lazy.LazySerDeParameters;
import org.apache.hadoop.hive.serde2.lazy.LazyShort;
import org.apache.hadoop.hive.serde2.lazy.LazyUtils;
-import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
import org.apache.hadoop.io.Text;
import org.apache.hive.common.util.TimestampParser;
@@ -66,17 +54,17 @@ import org.apache.hive.common.util.TimestampParser;
* other type specific buffers. So, those references are only valid until the next time set is
* called.
*/
-public final class LazySimpleDeserializeRead implements DeserializeRead {
+public final class LazySimpleDeserializeRead extends DeserializeRead {
public static final Logger LOG = LoggerFactory.getLogger(LazySimpleDeserializeRead.class.getName());
- private TypeInfo[] typeInfos;
-
+ private int[] startPosition;
private byte separator;
private boolean isEscaped;
private byte escapeChar;
private byte[] nullSequenceBytes;
private boolean isExtendedBooleanLiteral;
+ private boolean lastColumnTakesRest;
private byte[] bytes;
private int start;
@@ -87,34 +75,18 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
private int fieldStart;
private int fieldLength;
- private boolean saveBool;
- private byte saveByte;
- private short saveShort;
- private int saveInt;
- private long saveLong;
- private float saveFloat;
- private double saveDouble;
- private byte[] saveBytes;
- private int saveBytesStart;
- private int saveBytesLength;
- private Date saveDate;
- private Timestamp saveTimestamp;
- private HiveIntervalYearMonth saveIntervalYearMonth;
- private HiveIntervalDayTime saveIntervalDayTime;
- private HiveDecimal saveDecimal;
- private DecimalTypeInfo saveDecimalTypeInfo;
-
private Text tempText;
private TimestampParser timestampParser;
- private boolean readBeyondConfiguredFieldsWarned;
- private boolean readBeyondBufferRangeWarned;
- private boolean bufferRangeHasExtraDataWarned;
+ private boolean extraFieldWarned;
+ private boolean missingFieldWarned;
public LazySimpleDeserializeRead(TypeInfo[] typeInfos,
byte separator, LazySerDeParameters lazyParams) {
+ super(typeInfos);
- this.typeInfos = typeInfos;
+ // Field length is difference between positions hence one extra.
+ startPosition = new int[typeInfos.length + 1];
this.separator = separator;
@@ -122,24 +94,21 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
escapeChar = lazyParams.getEscapeChar();
nullSequenceBytes = lazyParams.getNullSequence().getBytes();
isExtendedBooleanLiteral = lazyParams.isExtendedBooleanLiteral();
+ lastColumnTakesRest = lazyParams.isLastColumnTakesRest();
fieldCount = typeInfos.length;
tempText = new Text();
- readBeyondConfiguredFieldsWarned = false;
- readBeyondBufferRangeWarned = false;
- bufferRangeHasExtraDataWarned = false;
+ extraFieldWarned = false;
+ missingFieldWarned = false;
}
- // Not public since we must have the field count so every 8 fields NULL bytes can be navigated.
- private LazySimpleDeserializeRead() {
+ public LazySimpleDeserializeRead(TypeInfo[] typeInfos, LazySerDeParameters lazyParams) {
+ this(typeInfos, lazyParams.getSeparators()[0], lazyParams);
}
- /*
- * The type information for all fields.
- */
- @Override
- public TypeInfo[] typeInfos() {
- return typeInfos;
+ // Not public since we must have the field count so every 8 fields NULL bytes can be navigated.
+ private LazySimpleDeserializeRead() {
+ super();
}
/*
@@ -154,6 +123,64 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
fieldIndex = -1;
}
+ /**
+ * Parse the byte[] and fill each field.
+ *
+ * This is an adapted version of the parse method in the LazyStruct class.
+ * They should parse things the same way.
+ */
+ private void parse() {
+
+ int structByteEnd = end;
+ int fieldId = 0;
+ int fieldByteBegin = start;
+ int fieldByteEnd = start;
+
+ // Go through all bytes in the byte[]
+ while (fieldByteEnd <= structByteEnd) {
+ if (fieldByteEnd == structByteEnd || bytes[fieldByteEnd] == separator) {
+ // Reached the end of a field?
+ if (lastColumnTakesRest && fieldId == fieldCount - 1) {
+ fieldByteEnd = structByteEnd;
+ }
+ startPosition[fieldId] = fieldByteBegin;
+ fieldId++;
+ if (fieldId == fieldCount || fieldByteEnd == structByteEnd) {
+ // All fields have been parsed, or bytes have been parsed.
+ // We need to set the startPosition of fields.length to ensure we
+ // can use the same formula to calculate the length of each field.
+ // For missing fields, their starting positions will all be the same,
+ // which will make their lengths to be -1 and uncheckedGetField will
+ // return these fields as NULLs.
+ for (int i = fieldId; i <= fieldCount; i++) {
+ startPosition[i] = fieldByteEnd + 1;
+ }
+ break;
+ }
+ fieldByteBegin = fieldByteEnd + 1;
+ fieldByteEnd++;
+ } else {
+ if (isEscaped && bytes[fieldByteEnd] == escapeChar
+ && fieldByteEnd + 1 < structByteEnd) {
+ // ignore the char after escape_char
+ fieldByteEnd += 2;
+ } else {
+ fieldByteEnd++;
+ }
+ }
+ }
+
+ // Extra bytes at the end?
+ if (!extraFieldWarned && fieldByteEnd < structByteEnd) {
+ doExtraFieldWarned();
+ }
+
+ // Missing fields?
+ if (!missingFieldWarned && fieldId < fieldCount) {
+ doMissingFieldWarned(fieldId);
+ }
+ }
+
/*
* Reads the NULL information for a field.
*
@@ -162,57 +189,24 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
*/
@Override
public boolean readCheckNull() {
- if (++fieldIndex >= fieldCount) {
- // Reading beyond the specified field count produces NULL.
- if (!readBeyondConfiguredFieldsWarned) {
- // Warn only once.
- LOG.info("Reading beyond configured fields! Configured " + fieldCount + " fields but "
- + " reading more (NULLs returned). Ignoring similar problems.");
- readBeyondConfiguredFieldsWarned = true;
- }
+ if (fieldIndex == -1) {
+ parse();
+ fieldIndex = 0;
+ } else if (fieldIndex + 1 >= fieldCount) {
return true;
+ } else {
+ fieldIndex++;
}
- if (offset > end) {
- // We must allow for an empty field at the end, so no strict >= checking.
- if (!readBeyondBufferRangeWarned) {
- // Warn only once.
- int length = end - start;
- LOG.info("Reading beyond buffer range! Buffer range " + start
- + " for length " + length + " but reading more (NULLs returned)."
- + " Ignoring similar problems.");
- readBeyondBufferRangeWarned = true;
- }
-
- // char[] charsBuffer = new char[end - start];
- // for (int c = 0; c < charsBuffer.length; c++) {
- // charsBuffer[c] = (char) (bytes[start + c] & 0xFF);
- // }
+ // Do we want this field?
+ if (columnsToInclude != null && !columnsToInclude[fieldIndex]) {
return true;
}
- fieldStart = offset;
- while (true) {
- if (offset >= end) {
- fieldLength = offset - fieldStart;
- break;
- }
- if (bytes[offset] == separator) {
- fieldLength = (offset++ - fieldStart);
- break;
- }
- if (isEscaped && bytes[offset] == escapeChar
- && offset + 1 < end) {
- // Ignore the char after escape char.
- offset += 2;
- } else {
- offset++;
- }
- }
-
- char[] charField = new char[fieldLength];
- for (int c = 0; c < charField.length; c++) {
- charField[c] = (char) (bytes[fieldStart + c] & 0xFF);
+ fieldStart = startPosition[fieldIndex];
+ fieldLength = startPosition[fieldIndex + 1] - startPosition[fieldIndex] - 1;
+ if (fieldLength < 0) {
+ return true;
}
// Is the field the configured string representing NULL?
@@ -231,7 +225,10 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
}
}
- switch (((PrimitiveTypeInfo) typeInfos[fieldIndex]).getPrimitiveCategory()) {
+ /*
+ * We have a field and are positioned to it. Read it.
+ */
+ switch (primitiveCategories[fieldIndex]) {
case BOOLEAN:
{
int i = fieldStart;
@@ -240,7 +237,7 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
(bytes[i + 1] == 'R' || bytes[i + 1] == 'r') &&
(bytes[i + 2] == 'U' || bytes[i + 1] == 'u') &&
(bytes[i + 3] == 'E' || bytes[i + 3] == 'e')) {
- saveBool = true;
+ currentBoolean = true;
} else {
// No boolean value match for 5 char field.
return true;
@@ -251,7 +248,7 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
(bytes[i + 2] == 'L' || bytes[i + 2] == 'l') &&
(bytes[i + 3] == 'S' || bytes[i + 3] == 's') &&
(bytes[i + 4] == 'E' || bytes[i + 4] == 'e')) {
- saveBool = false;
+ currentBoolean = false;
} else {
// No boolean value match for 4 char field.
return true;
@@ -259,9 +256,9 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
} else if (isExtendedBooleanLiteral && fieldLength == 1) {
byte b = bytes[fieldStart];
if (b == '1' || b == 't' || b == 'T') {
- saveBool = true;
+ currentBoolean = true;
} else if (b == '0' || b == 'f' || b == 'F') {
- saveBool = false;
+ currentBoolean = false;
} else {
// No boolean value match for extended 1 char field.
return true;
@@ -274,66 +271,42 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
break;
case BYTE:
try {
- saveByte = LazyByte.parseByte(bytes, fieldStart, fieldLength, 10);
+ currentByte = LazyByte.parseByte(bytes, fieldStart, fieldLength, 10);
} catch (NumberFormatException e) {
logExceptionMessage(bytes, fieldStart, fieldLength, "TINYINT");
return true;
}
-// if (!parseLongFast()) {
-// return true;
-// }
-// saveShort = (short) saveLong;
-// if (saveShort != saveLong) {
-// return true;
-// }
break;
case SHORT:
try {
- saveShort = LazyShort.parseShort(bytes, fieldStart, fieldLength, 10);
+ currentShort = LazyShort.parseShort(bytes, fieldStart, fieldLength, 10);
} catch (NumberFormatException e) {
logExceptionMessage(bytes, fieldStart, fieldLength, "SMALLINT");
return true;
}
-// if (!parseLongFast()) {
-// return true;
-// }
-// saveShort = (short) saveLong;
-// if (saveShort != saveLong) {
-// return true;
-// }
break;
case INT:
try {
- saveInt = LazyInteger.parseInt(bytes, fieldStart, fieldLength, 10);
+ currentInt = LazyInteger.parseInt(bytes, fieldStart, fieldLength, 10);
} catch (NumberFormatException e) {
logExceptionMessage(bytes, fieldStart, fieldLength, "INT");
return true;
}
-// if (!parseLongFast()) {
-// return true;
-// }
-// saveInt = (int) saveLong;
-// if (saveInt != saveLong) {
-// return true;
-// }
break;
case LONG:
try {
- saveLong = LazyLong.parseLong(bytes, fieldStart, fieldLength, 10);
+ currentLong = LazyLong.parseLong(bytes, fieldStart, fieldLength, 10);
} catch (NumberFormatException e) {
logExceptionMessage(bytes, fieldStart, fieldLength, "BIGINT");
return true;
}
-// if (!parseLongFast()) {
-// return true;
-// }
break;
case FLOAT:
{
String byteData = null;
try {
byteData = Text.decode(bytes, fieldStart, fieldLength);
- saveFloat = Float.parseFloat(byteData);
+ currentFloat = Float.parseFloat(byteData);
} catch (NumberFormatException e) {
LOG.debug("Data not in the Float data type range so converted to null. Given data is :"
+ byteData, e);
@@ -343,16 +316,13 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
return true;
}
}
-// if (!parseFloat()) {
-// return true;
-// }
break;
case DOUBLE:
{
String byteData = null;
try {
byteData = Text.decode(bytes, fieldStart, fieldLength);
- saveDouble = Double.parseDouble(byteData);
+ currentDouble = Double.parseDouble(byteData);
} catch (NumberFormatException e) {
LOG.debug("Data not in the Double data type range so converted to null. Given data is :"
+ byteData, e);
@@ -362,9 +332,6 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
return true;
}
}
-// if (!parseDouble()) {
-// return true;
-// }
break;
case STRING:
@@ -372,14 +339,14 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
case VARCHAR:
if (isEscaped) {
LazyUtils.copyAndEscapeStringDataToText(bytes, fieldStart, fieldLength, escapeChar, tempText);
- saveBytes = tempText.getBytes();
- saveBytesStart = 0;
- saveBytesLength = tempText.getLength();
+ currentBytes = tempText.getBytes();
+ currentBytesStart = 0;
+ currentBytesLength = tempText.getLength();
} else {
// if the data is not escaped, simply copy the data.
- saveBytes = bytes;
- saveBytesStart = fieldStart;
- saveBytesLength = fieldLength;
+ currentBytes = bytes;
+ currentBytesStart = fieldStart;
+ currentBytesLength = fieldLength;
}
break;
case BINARY:
@@ -389,9 +356,9 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
byte[] decoded = LazyBinary.decodeIfNeeded(recv);
// use the original bytes in case decoding should fail
decoded = decoded.length > 0 ? decoded : recv;
- saveBytes = decoded;
- saveBytesStart = 0;
- saveBytesLength = decoded.length;
+ currentBytes = decoded;
+ currentBytesStart = 0;
+ currentBytesLength = decoded.length;
}
break;
case DATE:
@@ -399,15 +366,12 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
String s = null;
try {
s = Text.decode(bytes, fieldStart, fieldLength);
- saveDate = Date.valueOf(s);
+ currentDateWritable.set(Date.valueOf(s));
} catch (Exception e) {
logExceptionMessage(bytes, fieldStart, fieldLength, "DATE");
return true;
}
}
-// if (!parseDate()) {
-// return true;
-// }
break;
case TIMESTAMP:
{
@@ -427,46 +391,37 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
if (timestampParser == null) {
timestampParser = new TimestampParser();
}
- saveTimestamp = timestampParser.parseTimestamp(s);
+ currentTimestampWritable.set(timestampParser.parseTimestamp(s));
} catch (IllegalArgumentException e) {
logExceptionMessage(bytes, fieldStart, fieldLength, "TIMESTAMP");
return true;
}
}
}
-// if (!parseTimestamp()) {
-// return true;
-// }
break;
case INTERVAL_YEAR_MONTH:
{
String s = null;
try {
s = Text.decode(bytes, fieldStart, fieldLength);
- saveIntervalYearMonth = HiveIntervalYearMonth.valueOf(s);
+ currentHiveIntervalYearMonthWritable.set(HiveIntervalYearMonth.valueOf(s));
} catch (Exception e) {
logExceptionMessage(bytes, fieldStart, fieldLength, "INTERVAL_YEAR_MONTH");
return true;
}
}
-// if (!parseIntervalYearMonth()) {
-// return true;
-// }
break;
case INTERVAL_DAY_TIME:
{
String s = null;
try {
s = Text.decode(bytes, fieldStart, fieldLength);
- saveIntervalDayTime = HiveIntervalDayTime.valueOf(s);
+ currentHiveIntervalDayTimeWritable.set(HiveIntervalDayTime.valueOf(s));
} catch (Exception e) {
logExceptionMessage(bytes, fieldStart, fieldLength, "INTERVAL_DAY_TIME");
return true;
}
}
-// if (!parseIntervalDayTime()) {
-// return true;
-// }
break;
case DECIMAL:
{
@@ -478,25 +433,23 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
return true;
}
- saveDecimal = HiveDecimal.create(byteData);
- saveDecimalTypeInfo = (DecimalTypeInfo) typeInfos[fieldIndex];
- int precision = saveDecimalTypeInfo.getPrecision();
- int scale = saveDecimalTypeInfo.getScale();
- saveDecimal = HiveDecimal.enforcePrecisionScale(saveDecimal, precision,
- scale);
- if (saveDecimal == null) {
+ HiveDecimal decimal = HiveDecimal.create(byteData);
+ DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) typeInfos[fieldIndex];
+ int precision = decimalTypeInfo.getPrecision();
+ int scale = decimalTypeInfo.getScale();
+ decimal = HiveDecimal.enforcePrecisionScale(
+ decimal, precision, scale);
+ if (decimal == null) {
LOG.debug("Data not in the HiveDecimal data type range so converted to null. Given data is :"
+ byteData);
return true;
}
+ currentHiveDecimalWritable.set(decimal);
}
-// if (!parseDecimal()) {
-// return true;
-// }
break;
default:
- throw new Error("Unexpected primitive category " + ((PrimitiveTypeInfo) typeInfos[fieldIndex]).getPrimitiveCategory());
+ throw new Error("Unexpected primitive category " + primitiveCategories[fieldIndex].name());
}
return false;
@@ -520,17 +473,7 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
*/
@Override
public void extraFieldsCheck() {
- if (offset < end) {
- // We did not consume all of the byte range.
- if (!bufferRangeHasExtraDataWarned) {
- // Warn only once.
- int length = end - start;
- LOG.info("Not all fields were read in the buffer range! Buffer range " + start
- + " for length " + length + " but reading more (NULLs returned)."
- + " Ignoring similar problems.");
- bufferRangeHasExtraDataWarned = true;
- }
- }
+ // UNDONE: Get rid of...
}
/*
@@ -538,407 +481,30 @@ public final class LazySimpleDeserializeRead implements DeserializeRead {
*/
@Override
public boolean readBeyondConfiguredFieldsWarned() {
- return readBeyondConfiguredFieldsWarned;
+ return missingFieldWarned;
}
@Override
public boolean readBeyondBufferRangeWarned() {
- return readBeyondBufferRangeWarned;
+ return extraFieldWarned;
}
@Override
public boolean bufferRangeHasExtraDataWarned() {
- return bufferRangeHasExtraDataWarned;
- }
-
- /*
- * BOOLEAN.
- */
- @Override
- public boolean readBoolean() {
- return saveBool;
- }
-
- /*
- * BYTE.
- */
- @Override
- public byte readByte() {
- return saveByte;
- }
-
- /*
- * SHORT.
- */
- @Override
- public short readShort() {
- return saveShort;
- }
-
- /*
- * INT.
- */
- @Override
- public int readInt() {
- return saveInt;
- }
-
- /*
- * LONG.
- */
- @Override
- public long readLong() {
- return saveLong;
- }
-
- /*
- * FLOAT.
- */
- @Override
- public float readFloat() {
- return saveFloat;
- }
-
- /*
- * DOUBLE.
- */
- @Override
- public double readDouble() {
- return saveDouble;
- }
-
- /*
- * STRING.
- *
- * Can be used to read CHAR and VARCHAR when the caller takes responsibility for
- * truncation/padding issues.
- */
-
- // This class is for internal use.
- private class LazySimpleReadStringResults extends ReadStringResults {
- public LazySimpleReadStringResults() {
- super();
- }
- }
-
- // Reading a STRING field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different bytes field.
- @Override
- public ReadStringResults createReadStringResults() {
- return new LazySimpleReadStringResults();
- }
-
- @Override
- public void readString(ReadStringResults readStringResults) {
- readStringResults.bytes = saveBytes;
- readStringResults.start = saveBytesStart;
- readStringResults.length = saveBytesLength;
- }
-
- /*
- * CHAR.
- */
-
- // This class is for internal use.
- private static class LazySimpleReadHiveCharResults extends ReadHiveCharResults {
-
- // Use our STRING reader.
- public LazySimpleReadStringResults readStringResults;
-
- public LazySimpleReadHiveCharResults() {
- super();
- }
-
- public HiveCharWritable getHiveCharWritable() {
- return hiveCharWritable;
- }
- }
-
- // Reading a CHAR field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different CHAR field.
- @Override
- public ReadHiveCharResults createReadHiveCharResults() {
- return new LazySimpleReadHiveCharResults();
- }
-
- @Override
- public void readHiveChar(ReadHiveCharResults readHiveCharResults) throws IOException {
- LazySimpleReadHiveCharResults LazySimpleReadHiveCharResults = (LazySimpleReadHiveCharResults) readHiveCharResults;
-
- if (!LazySimpleReadHiveCharResults.isInit()) {
- LazySimpleReadHiveCharResults.init((CharTypeInfo) typeInfos[fieldIndex]);
- }
-
- if (LazySimpleReadHiveCharResults.readStringResults == null) {
- LazySimpleReadHiveCharResults.readStringResults = new LazySimpleReadStringResults();
- }
- LazySimpleReadStringResults readStringResults = LazySimpleReadHiveCharResults.readStringResults;
-
- // Read the bytes using our basic method.
- readString(readStringResults);
-
- // Copy the bytes into our Text object, then truncate.
- HiveCharWritable hiveCharWritable = LazySimpleReadHiveCharResults.getHiveCharWritable();
- hiveCharWritable.getTextValue().set(readStringResults.bytes, readStringResults.start, readStringResults.length);
- hiveCharWritable.enforceMaxLength(LazySimpleReadHiveCharResults.getMaxLength());
-
- readHiveCharResults.bytes = hiveCharWritable.getTextValue().getBytes();
- readHiveCharResults.start = 0;
- readHiveCharResults.length = hiveCharWritable.getTextValue().getLength();
- }
-
- /*
- * VARCHAR.
- */
-
- // This class is for internal use.
- private static class LazySimpleReadHiveVarcharResults extends ReadHiveVarcharResults {
-
- // Use our bytes reader.
- public LazySimpleReadStringResults readStringResults;
-
- public LazySimpleReadHiveVarcharResults() {
- super();
- }
-
- public HiveVarcharWritable getHiveVarcharWritable() {
- return hiveVarcharWritable;
- }
- }
-
- // Reading a VARCHAR field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different VARCHAR field.
- @Override
- public ReadHiveVarcharResults createReadHiveVarcharResults() {
- return new LazySimpleReadHiveVarcharResults();
- }
-
- @Override
- public void readHiveVarchar(ReadHiveVarcharResults readHiveVarcharResults) throws IOException {
- LazySimpleReadHiveVarcharResults lazySimpleReadHiveVarvarcharResults = (LazySimpleReadHiveVarcharResults) readHiveVarcharResults;
-
- if (!lazySimpleReadHiveVarvarcharResults.isInit()) {
- lazySimpleReadHiveVarvarcharResults.init((VarcharTypeInfo) typeInfos[fieldIndex]);
- }
-
- if (lazySimpleReadHiveVarvarcharResults.readStringResults == null) {
- lazySimpleReadHiveVarvarcharResults.readStringResults = new LazySimpleReadStringResults();
- }
- LazySimpleReadStringResults readStringResults = lazySimpleReadHiveVarvarcharResults.readStringResults;
-
- // Read the bytes using our basic method.
- readString(readStringResults);
-
- // Copy the bytes into our Text object, then truncate.
- HiveVarcharWritable hiveVarcharWritable = lazySimpleReadHiveVarvarcharResults.getHiveVarcharWritable();
- hiveVarcharWritable.getTextValue().set(readStringResults.bytes, readStringResults.start, readStringResults.length);
- hiveVarcharWritable.enforceMaxLength(lazySimpleReadHiveVarvarcharResults.getMaxLength());
-
- readHiveVarcharResults.bytes = hiveVarcharWritable.getTextValue().getBytes();
- readHiveVarcharResults.start = 0;
- readHiveVarcharResults.length = hiveVarcharWritable.getTextValue().getLength();
- }
-
- /*
- * BINARY.
- */
-
- // This class is for internal use.
- private class LazySimpleReadBinaryResults extends ReadBinaryResults {
- public LazySimpleReadBinaryResults() {
- super();
- }
- }
-
- // Reading a BINARY field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different bytes field.
- @Override
- public ReadBinaryResults createReadBinaryResults() {
- return new LazySimpleReadBinaryResults();
- }
-
- @Override
- public void readBinary(ReadBinaryResults readBinaryResults) {
- readBinaryResults.bytes = saveBytes;
- readBinaryResults.start = saveBytesStart;
- readBinaryResults.length = saveBytesLength;
- }
-
- /*
- * DATE.
- */
-
- // This class is for internal use.
- private static class LazySimpleReadDateResults extends ReadDateResults {
-
- public LazySimpleReadDateResults() {
- super();
- }
-
- public DateWritable getDateWritable() {
- return dateWritable;
- }
- }
-
- // Reading a DATE field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different DATE field.
- @Override
- public ReadDateResults createReadDateResults() {
- return new LazySimpleReadDateResults();
- }
-
- @Override
- public void readDate(ReadDateResults readDateResults) {
- LazySimpleReadDateResults lazySimpleReadDateResults = (LazySimpleReadDateResults) readDateResults;
-
- DateWritable dateWritable = lazySimpleReadDateResults.getDateWritable();
- dateWritable.set(saveDate);
- saveDate = null;
- }
-
-
- /*
- * INTERVAL_YEAR_MONTH.
- */
-
- // This class is for internal use.
- private static class LazySimpleReadIntervalYearMonthResults extends ReadIntervalYearMonthResults {
-
- public LazySimpleReadIntervalYearMonthResults() {
- super();
- }
-
- public HiveIntervalYearMonthWritable getHiveIntervalYearMonthWritable() {
- return hiveIntervalYearMonthWritable;
- }
- }
-
- // Reading a INTERVAL_YEAR_MONTH field require a results object to receive value information.
- // A separate results object is created by the caller at initialization per different
- // INTERVAL_YEAR_MONTH field.
- @Override
- public ReadIntervalYearMonthResults createReadIntervalYearMonthResults() {
- return new LazySimpleReadIntervalYearMonthResults();
- }
-
- @Override
- public void readIntervalYearMonth(ReadIntervalYearMonthResults readIntervalYearMonthResults)
- throws IOException {
- LazySimpleReadIntervalYearMonthResults lazySimpleReadIntervalYearMonthResults =
- (LazySimpleReadIntervalYearMonthResults) readIntervalYearMonthResults;
-
- HiveIntervalYearMonthWritable hiveIntervalYearMonthWritable =
- lazySimpleReadIntervalYearMonthResults.getHiveIntervalYearMonthWritable();
- hiveIntervalYearMonthWritable.set(saveIntervalYearMonth);
- saveIntervalYearMonth = null;
- }
-
- /*
- * INTERVAL_DAY_TIME.
- */
-
- // This class is for internal use.
- private static class LazySimpleReadIntervalDayTimeResults extends ReadIntervalDayTimeResults {
-
- public LazySimpleReadIntervalDayTimeResults() {
- super();
- }
-
- public HiveIntervalDayTimeWritable getHiveIntervalDayTimeWritable() {
- return hiveIntervalDayTimeWritable;
- }
+ return false; // UNDONE: Get rid of...
}
- // Reading a INTERVAL_DAY_TIME field require a results object to receive value information.
- // A separate results object is created by the caller at initialization per different
- // INTERVAL_DAY_TIME field.
- @Override
- public ReadIntervalDayTimeResults createReadIntervalDayTimeResults() {
- return new LazySimpleReadIntervalDayTimeResults();
+ private void doExtraFieldWarned() {
+ extraFieldWarned = true;
+ LOG.warn("Extra bytes detected at the end of the row! Ignoring similar "
+ + "problems.");
}
- @Override
- public void readIntervalDayTime(ReadIntervalDayTimeResults readIntervalDayTimeResults)
- throws IOException {
- LazySimpleReadIntervalDayTimeResults lazySimpleReadIntervalDayTimeResults =
- (LazySimpleReadIntervalDayTimeResults) readIntervalDayTimeResults;
-
- HiveIntervalDayTimeWritable hiveIntervalDayTimeWritable =
- lazySimpleReadIntervalDayTimeResults.getHiveIntervalDayTimeWritable();
- hiveIntervalDayTimeWritable.set(saveIntervalDayTime);
- saveIntervalDayTime = null;
+ private void doMissingFieldWarned(int fieldId) {
+ missingFieldWarned = true;
+ LOG.info("Missing fields! Expected " + fieldCount + " fields but "
+ + "only got " + fieldId + "! Ignoring similar problems.");
}
- /*
- * TIMESTAMP.
- */
-
- // This class is for internal use.
- private static class LazySimpleReadTimestampResults extends ReadTimestampResults {
-
- public LazySimpleReadTimestampResults() {
- super();
- }
-
- public TimestampWritable getTimestampWritable() {
- return timestampWritable;
- }
- }
-
- // Reading a TIMESTAMP field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different TIMESTAMP field.
- @Override
- public ReadTimestampResults createReadTimestampResults() {
- return new LazySimpleReadTimestampResults();
- }
-
- @Override
- public void readTimestamp(ReadTimestampResults readTimestampResults) {
- LazySimpleReadTimestampResults lazySimpleReadTimestampResults =
- (LazySimpleReadTimestampResults) readTimestampResults;
-
- TimestampWritable timestampWritable = lazySimpleReadTimestampResults.getTimestampWritable();
- timestampWritable.set(saveTimestamp);
- saveTimestamp = null;
- }
-
- /*
- * DECIMAL.
- */
-
- // This class is for internal use.
- private static class LazySimpleReadDecimalResults extends ReadDecimalResults {
-
- HiveDecimal hiveDecimal;
-
- public LazySimpleReadDecimalResults() {
- super();
- }
-
- @Override
- public HiveDecimal getHiveDecimal() {
- return hiveDecimal;
- }
- }
-
- // Reading a DECIMAL field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different DECIMAL field.
- @Override
- public ReadDecimalResults createReadDecimalResults() {
- return new LazySimpleReadDecimalResults();
- }
-
- @Override
- public void readHiveDecimal(ReadDecimalResults readDecimalResults) {
- LazySimpleReadDecimalResults lazySimpleReadDecimalResults = (LazySimpleReadDecimalResults) readDecimalResults;
-
- if (!lazySimpleReadDecimalResults.isInit()) {
- lazySimpleReadDecimalResults.init(saveDecimalTypeInfo);
- }
-
- lazySimpleReadDecimalResults.hiveDecimal = saveDecimal;
-
- saveDecimal = null;
- saveDecimalTypeInfo = null;
- }
+ //------------------------------------------------------------------------------------------------
private static byte[] maxLongBytes = ((Long) Long.MAX_VALUE).toString().getBytes();
private static int maxLongDigitsCount = maxLongBytes.length;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/fast/LazyBinaryDeserializeRead.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/fast/LazyBinaryDeserializeRead.java b/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/fast/LazyBinaryDeserializeRead.java
index c5f0730..4415431 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/fast/LazyBinaryDeserializeRead.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/fast/LazyBinaryDeserializeRead.java
@@ -20,28 +20,17 @@ package org.apache.hadoop.hive.serde2.lazybinary.fast;
import java.io.EOFException;
import java.io.IOException;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.serde2.fast.DeserializeRead;
-import org.apache.hadoop.hive.serde2.io.DateWritable;
-import org.apache.hadoop.hive.serde2.io.HiveCharWritable;
-import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
-import org.apache.hadoop.hive.serde2.io.HiveIntervalDayTimeWritable;
-import org.apache.hadoop.hive.serde2.io.HiveIntervalYearMonthWritable;
-import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritable;
import org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe;
import org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryUtils;
import org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryUtils.VInt;
import org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryUtils.VLong;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
-import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
/*
* Directly deserialize with the caller reading field-by-field the LazyBinary serialization format.
@@ -57,11 +46,9 @@ import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
* other type specific buffers. So, those references are only valid until the next time set is
* called.
*/
-public final class LazyBinaryDeserializeRead implements DeserializeRead {
+public final class LazyBinaryDeserializeRead extends DeserializeRead {
public static final Logger LOG = LoggerFactory.getLogger(LazyBinaryDeserializeRead.class.getName());
- private TypeInfo[] typeInfos;
-
private byte[] bytes;
private int start;
private int offset;
@@ -70,20 +57,16 @@ public final class LazyBinaryDeserializeRead implements DeserializeRead {
private int fieldIndex;
private byte nullByte;
- private DecimalTypeInfo saveDecimalTypeInfo;
- private HiveDecimal saveDecimal;
-
// Object to receive results of reading a decoded variable length int or long.
private VInt tempVInt;
private VLong tempVLong;
- private HiveDecimalWritable tempHiveDecimalWritable;
private boolean readBeyondConfiguredFieldsWarned;
private boolean readBeyondBufferRangeWarned;
private boolean bufferRangeHasExtraDataWarned;
public LazyBinaryDeserializeRead(TypeInfo[] typeInfos) {
- this.typeInfos = typeInfos;
+ super(typeInfos);
fieldCount = typeInfos.length;
tempVInt = new VInt();
tempVLong = new VLong();
@@ -94,13 +77,7 @@ public final class LazyBinaryDeserializeRead implements DeserializeRead {
// Not public since we must have the field count so every 8 fields NULL bytes can be navigated.
private LazyBinaryDeserializeRead() {
- }
-
- /*
- * The type information for all fields.
- */
- public TypeInfo[] typeInfos() {
- return typeInfos;
+ super();
}
/*
@@ -144,7 +121,11 @@ public final class LazyBinaryDeserializeRead implements DeserializeRead {
}
// NOTE: The bit is set to 1 if a field is NOT NULL.
- if ((nullByte & (1 << (fieldIndex % 8))) != 0) {
+ boolean isNull;
+ if ((nullByte & (1 << (fieldIndex % 8))) == 0) {
+ isNull = true;
+ } else {
+ isNull = false; // Assume.
// Make sure there is at least one byte that can be read for a value.
if (offset >= end) {
@@ -153,18 +134,192 @@ public final class LazyBinaryDeserializeRead implements DeserializeRead {
warnBeyondEof();
}
- // We have a field and are positioned to it.
+ /*
+ * We have a field and are positioned to it. Read it.
+ */
+ switch (primitiveCategories[fieldIndex]) {
+ case BOOLEAN:
+ // No check needed for single byte read.
+ currentBoolean = (bytes[offset++] != 0);
+ break;
+ case BYTE:
+ // No check needed for single byte read.
+ currentByte = bytes[offset++];
+ break;
+ case SHORT:
+ // Last item -- ok to be at end.
+ if (offset + 2 > end) {
+ warnBeyondEof();
+ }
+ currentShort = LazyBinaryUtils.byteArrayToShort(bytes, offset);
+ offset += 2;
+ break;
+ case INT:
+ LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
+ offset += tempVInt.length;
+ // Last item -- ok to be at end.
+ if (offset > end) {
+ warnBeyondEof();
+ }
+ currentInt = tempVInt.value;
+ break;
+ case LONG:
+ LazyBinaryUtils.readVLong(bytes, offset, tempVLong);
+ offset += tempVLong.length;
+ // Last item -- ok to be at end.
+ if (offset > end) {
+ warnBeyondEof();
+ }
+ currentLong = tempVLong.value;
+ break;
+ case FLOAT:
+ // Last item -- ok to be at end.
+ if (offset + 4 > end) {
+ warnBeyondEof();
+ }
+ currentFloat = Float.intBitsToFloat(LazyBinaryUtils.byteArrayToInt(bytes, offset));
+ offset += 4;
+ break;
+ case DOUBLE:
+ // Last item -- ok to be at end.
+ if (offset + 8 > end) {
+ warnBeyondEof();
+ }
+ currentDouble = Double.longBitsToDouble(LazyBinaryUtils.byteArrayToLong(bytes, offset));
+ offset += 8;
+ break;
+
+ case BINARY:
+ case STRING:
+ case CHAR:
+ case VARCHAR:
+ {
+ // using vint instead of 4 bytes
+ LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
+ offset += tempVInt.length;
+ // Could be last item for empty string -- ok to be at end.
+ if (offset > end) {
+ warnBeyondEof();
+ }
+ int saveStart = offset;
+ int length = tempVInt.value;
+ offset += length;
+ // Last item -- ok to be at end.
+ if (offset > end) {
+ warnBeyondEof();
+ }
+
+ currentBytes = bytes;
+ currentBytesStart = saveStart;
+ currentBytesLength = length;
+ }
+ break;
+ case DATE:
+ LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
+ offset += tempVInt.length;
+ // Last item -- ok to be at end.
+ if (offset > end) {
+ warnBeyondEof();
+ }
+
+ currentDateWritable.set(tempVInt.value);
+ break;
+ case TIMESTAMP:
+ {
+ int length = TimestampWritable.getTotalLength(bytes, offset);
+ int saveStart = offset;
+ offset += length;
+ // Last item -- ok to be at end.
+ if (offset > end) {
+ warnBeyondEof();
+ }
+
+ currentTimestampWritable.set(bytes, saveStart);
+ }
+ break;
+ case INTERVAL_YEAR_MONTH:
+ LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
+ offset += tempVInt.length;
+ // Last item -- ok to be at end.
+ if (offset > end) {
+ warnBeyondEof();
+ }
+ currentHiveIntervalYearMonthWritable.set(tempVInt.value);
+ break;
+ case INTERVAL_DAY_TIME:
+ LazyBinaryUtils.readVLong(bytes, offset, tempVLong);
+ offset += tempVLong.length;
+ if (offset >= end) {
+ // Overshoot or not enough for next item.
+ warnBeyondEof();
+ }
+ LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
+ offset += tempVInt.length;
+ // Last item -- ok to be at end.
+ if (offset > end) {
+ warnBeyondEof();
+ }
+
+ currentHiveIntervalDayTimeWritable.set(tempVLong.value, tempVInt.value);
+ break;
+ case DECIMAL:
+ {
+ // Since enforcing precision and scale can cause a HiveDecimal to become NULL,
+ // we must read it, enforce it here, and either return NULL or buffer the result.
+
+ // These calls are to see how much data there is. The setFromBytes call below will do the same
+ // readVInt reads but actually unpack the decimal.
+ LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
+ int saveStart = offset;
+ offset += tempVInt.length;
+ if (offset >= end) {
+ // Overshoot or not enough for next item.
+ warnBeyondEof();
+ }
+ LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
+ offset += tempVInt.length;
+ if (offset >= end) {
+ // Overshoot or not enough for next item.
+ warnBeyondEof();
+ }
+ offset += tempVInt.value;
+ // Last item -- ok to be at end.
+ if (offset > end) {
+ warnBeyondEof();
+ }
+ int length = offset - saveStart;
+
+ LazyBinarySerDe.setFromBytes(bytes, saveStart, length,
+ currentHiveDecimalWritable);
+
+ DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) typeInfos[fieldIndex];
+
+ int precision = decimalTypeInfo.getPrecision();
+ int scale = decimalTypeInfo.getScale();
+
+ HiveDecimal decimal = currentHiveDecimalWritable.getHiveDecimal(precision, scale);
+ if (decimal == null) {
+ isNull = true;
+ } else {
+ // Put value back into writable.
+ currentHiveDecimalWritable.set(decimal);
+ }
+ }
+ break;
- if (((PrimitiveTypeInfo) typeInfos[fieldIndex]).getPrimitiveCategory() != PrimitiveCategory.DECIMAL) {
- return false;
+ default:
+ throw new Error("Unexpected primitive category " + primitiveCategories[fieldIndex].name());
}
- // Since enforcing precision and scale may turn a HiveDecimal into a NULL, we must read
- // it here.
- return earlyReadHiveDecimal();
+ /*
+ * Now that we have read through the field -- did we really want it?
+ */
+ if (columnsToInclude != null && !columnsToInclude[fieldIndex]) {
+ isNull = true;
+ }
}
- // When NULL, we need to move past this field.
+ // Logically move past this field.
fieldIndex++;
// Every 8 fields we read a new NULL byte.
@@ -178,7 +333,7 @@ public final class LazyBinaryDeserializeRead implements DeserializeRead {
}
}
- return true;
+ return isNull;
}
/*
@@ -191,7 +346,7 @@ public final class LazyBinaryDeserializeRead implements DeserializeRead {
// Warn only once.
int length = end - start;
int remaining = end - offset;
- LOG.info("Not all fields were read in the buffer range! Buffer range " + start
+ LOG.info("Not all fields were read in the buffer range! Buffer range " + start
+ " for length " + length + " but " + remaining + " bytes remain. "
+ "(total buffer length " + bytes.length + ")"
+ " Ignoring similar problems.");
@@ -220,726 +375,11 @@ public final class LazyBinaryDeserializeRead implements DeserializeRead {
if (!readBeyondBufferRangeWarned) {
// Warn only once.
int length = end - start;
- LOG.info("Reading beyond buffer range! Buffer range " + start
+ LOG.info("Reading beyond buffer range! Buffer range " + start
+ " for length " + length + " but reading more... "
+ "(total buffer length " + bytes.length + ")"
+ " Ignoring similar problems.");
readBeyondBufferRangeWarned = true;
}
}
-
- /*
- * BOOLEAN.
- */
- @Override
- public boolean readBoolean() throws IOException {
- // No check needed for single byte read.
- byte result = bytes[offset++];
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- return (result != 0);
- }
-
- /*
- * BYTE.
- */
- @Override
- public byte readByte() throws IOException {
- // No check needed for single byte read.
- byte result = bytes[offset++];
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- if ((fieldIndex % 8) == 0) {
- nullByte = bytes[offset++];
- }
- }
-
- return result;
- }
-
- /*
- * SHORT.
- */
- @Override
- public short readShort() throws IOException {
- // Last item -- ok to be at end.
- if (offset + 2 > end) {
- warnBeyondEof();
- }
- short result = LazyBinaryUtils.byteArrayToShort(bytes, offset);
- offset += 2;
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- return result;
- }
-
- /*
- * INT.
- */
- @Override
- public int readInt() throws IOException {
- LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
- offset += tempVInt.length;
- // Last item -- ok to be at end.
- if (offset > end) {
- warnBeyondEof();
- }
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- return tempVInt.value;
- }
-
- /*
- * LONG.
- */
- @Override
- public long readLong() throws IOException {
- LazyBinaryUtils.readVLong(bytes, offset, tempVLong);
- offset += tempVLong.length;
- // Last item -- ok to be at end.
- if (offset > end) {
- warnBeyondEof();
- }
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- return tempVLong.value;
- }
-
- /*
- * FLOAT.
- */
- @Override
- public float readFloat() throws IOException {
- // Last item -- ok to be at end.
- if (offset + 4 > end) {
- warnBeyondEof();
- }
- float result = Float.intBitsToFloat(LazyBinaryUtils.byteArrayToInt(bytes, offset));
- offset += 4;
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- return result;
- }
-
- /*
- * DOUBLE.
- */
- @Override
- public double readDouble() throws IOException {
- // Last item -- ok to be at end.
- if (offset + 8 > end) {
- warnBeyondEof();
- }
- double result = Double.longBitsToDouble(LazyBinaryUtils.byteArrayToLong(bytes, offset));
- offset += 8;
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- return result;
- }
-
- /*
- * STRING.
- *
- * Can be used to read CHAR and VARCHAR when the caller takes responsibility for
- * truncation/padding issues.
- */
-
- // This class is for internal use.
- private class LazyBinaryReadStringResults extends ReadStringResults {
- public LazyBinaryReadStringResults() {
- super();
- }
- }
-
- // Reading a STRING field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different bytes field.
- @Override
- public ReadStringResults createReadStringResults() {
- return new LazyBinaryReadStringResults();
- }
-
- @Override
- public void readString(ReadStringResults readStringResults) throws IOException {
- // using vint instead of 4 bytes
- LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
- offset += tempVInt.length;
- // Could be last item for empty string -- ok to be at end.
- if (offset > end) {
- warnBeyondEof();
- }
- int saveStart = offset;
- int length = tempVInt.value;
- offset += length;
- // Last item -- ok to be at end.
- if (offset > end) {
- warnBeyondEof();
- }
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- readStringResults.bytes = bytes;
- readStringResults.start = saveStart;
- readStringResults.length = length;
- }
-
- /*
- * CHAR.
- */
-
- // This class is for internal use.
- private static class LazyBinaryReadHiveCharResults extends ReadHiveCharResults {
-
- // Use our STRING reader.
- public LazyBinaryReadStringResults readStringResults;
-
- public LazyBinaryReadHiveCharResults() {
- super();
- }
-
- public HiveCharWritable getHiveCharWritable() {
- return hiveCharWritable;
- }
- }
-
- // Reading a CHAR field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different CHAR field.
- @Override
- public ReadHiveCharResults createReadHiveCharResults() {
- return new LazyBinaryReadHiveCharResults();
- }
-
- public void readHiveChar(ReadHiveCharResults readHiveCharResults) throws IOException {
- LazyBinaryReadHiveCharResults lazyBinaryReadHiveCharResults = (LazyBinaryReadHiveCharResults) readHiveCharResults;
-
- if (!lazyBinaryReadHiveCharResults.isInit()) {
- lazyBinaryReadHiveCharResults.init((CharTypeInfo) typeInfos[fieldIndex]);
- }
-
- if (lazyBinaryReadHiveCharResults.readStringResults == null) {
- lazyBinaryReadHiveCharResults.readStringResults = new LazyBinaryReadStringResults();
- }
- LazyBinaryReadStringResults readStringResults = lazyBinaryReadHiveCharResults.readStringResults;
-
- // Read the bytes using our basic method.
- readString(readStringResults);
-
- // Copy the bytes into our Text object, then truncate.
- HiveCharWritable hiveCharWritable = lazyBinaryReadHiveCharResults.getHiveCharWritable();
- hiveCharWritable.getTextValue().set(readStringResults.bytes, readStringResults.start, readStringResults.length);
- hiveCharWritable.enforceMaxLength(lazyBinaryReadHiveCharResults.getMaxLength());
-
- readHiveCharResults.bytes = hiveCharWritable.getTextValue().getBytes();
- readHiveCharResults.start = 0;
- readHiveCharResults.length = hiveCharWritable.getTextValue().getLength();
- }
-
- /*
- * VARCHAR.
- */
-
- // This class is for internal use.
- private static class LazyBinaryReadHiveVarcharResults extends ReadHiveVarcharResults {
-
- // Use our STRING reader.
- public LazyBinaryReadStringResults readStringResults;
-
- public LazyBinaryReadHiveVarcharResults() {
- super();
- }
-
- public HiveVarcharWritable getHiveVarcharWritable() {
- return hiveVarcharWritable;
- }
- }
-
- // Reading a VARCHAR field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different VARCHAR field.
- @Override
- public ReadHiveVarcharResults createReadHiveVarcharResults() {
- return new LazyBinaryReadHiveVarcharResults();
- }
-
- public void readHiveVarchar(ReadHiveVarcharResults readHiveVarcharResults) throws IOException {
- LazyBinaryReadHiveVarcharResults lazyBinaryReadHiveVarcharResults = (LazyBinaryReadHiveVarcharResults) readHiveVarcharResults;
-
- if (!lazyBinaryReadHiveVarcharResults.isInit()) {
- lazyBinaryReadHiveVarcharResults.init((VarcharTypeInfo) typeInfos[fieldIndex]);
- }
-
- if (lazyBinaryReadHiveVarcharResults.readStringResults == null) {
- lazyBinaryReadHiveVarcharResults.readStringResults = new LazyBinaryReadStringResults();
- }
- LazyBinaryReadStringResults readStringResults = lazyBinaryReadHiveVarcharResults.readStringResults;
-
- // Read the bytes using our basic method.
- readString(readStringResults);
-
- // Copy the bytes into our Text object, then truncate.
- HiveVarcharWritable hiveVarcharWritable = lazyBinaryReadHiveVarcharResults.getHiveVarcharWritable();
- hiveVarcharWritable.getTextValue().set(readStringResults.bytes, readStringResults.start, readStringResults.length);
- hiveVarcharWritable.enforceMaxLength(lazyBinaryReadHiveVarcharResults.getMaxLength());
-
- readHiveVarcharResults.bytes = hiveVarcharWritable.getTextValue().getBytes();
- readHiveVarcharResults.start = 0;
- readHiveVarcharResults.length = hiveVarcharWritable.getTextValue().getLength();
- }
-
- /*
- * BINARY.
- */
-
- // This class is for internal use.
- private class LazyBinaryReadBinaryResults extends ReadBinaryResults {
-
- // Use our STRING reader.
- public LazyBinaryReadStringResults readStringResults;
-
- public LazyBinaryReadBinaryResults() {
- super();
- }
- }
-
- // Reading a BINARY field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different bytes field.
- @Override
- public ReadBinaryResults createReadBinaryResults() {
- return new LazyBinaryReadBinaryResults();
- }
-
- public void readBinary(ReadBinaryResults readBinaryResults) throws IOException {
- LazyBinaryReadBinaryResults lazyBinaryReadBinaryResults = (LazyBinaryReadBinaryResults) readBinaryResults;
-
- if (lazyBinaryReadBinaryResults.readStringResults == null) {
- lazyBinaryReadBinaryResults.readStringResults = new LazyBinaryReadStringResults();
- }
- LazyBinaryReadStringResults readStringResults = lazyBinaryReadBinaryResults.readStringResults;
-
- // Read the bytes using our basic method.
- readString(readStringResults);
-
- readBinaryResults.bytes = readStringResults.bytes;
- readBinaryResults.start = readStringResults.start;
- readBinaryResults.length = readStringResults.length;
- }
-
- /*
- * DATE.
- */
-
- // This class is for internal use.
- private static class LazyBinaryReadDateResults extends ReadDateResults {
-
- public LazyBinaryReadDateResults() {
- super();
- }
-
- public DateWritable getDateWritable() {
- return dateWritable;
- }
- }
-
- // Reading a DATE field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different DATE field.
- @Override
- public ReadDateResults createReadDateResults() {
- return new LazyBinaryReadDateResults();
- }
-
- @Override
- public void readDate(ReadDateResults readDateResults) throws IOException {
- LazyBinaryReadDateResults lazyBinaryReadDateResults = (LazyBinaryReadDateResults) readDateResults;
- LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
- offset += tempVInt.length;
- // Last item -- ok to be at end.
- if (offset > end) {
- warnBeyondEof();
- }
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- DateWritable dateWritable = lazyBinaryReadDateResults.getDateWritable();
- dateWritable.set(tempVInt.value);
- }
-
- /*
- * INTERVAL_YEAR_MONTH.
- */
-
- // This class is for internal use.
- private static class LazyBinaryReadIntervalYearMonthResults extends ReadIntervalYearMonthResults {
-
- public LazyBinaryReadIntervalYearMonthResults() {
- super();
- }
-
- public HiveIntervalYearMonthWritable getHiveIntervalYearMonthWritable() {
- return hiveIntervalYearMonthWritable;
- }
- }
-
- // Reading a INTERVAL_YEAR_MONTH field require a results object to receive value information.
- // A separate results object is created by the caller at initialization per different
- // INTERVAL_YEAR_MONTH field.
- @Override
- public ReadIntervalYearMonthResults createReadIntervalYearMonthResults() {
- return new LazyBinaryReadIntervalYearMonthResults();
- }
-
- @Override
- public void readIntervalYearMonth(ReadIntervalYearMonthResults readIntervalYearMonthResults)
- throws IOException {
- LazyBinaryReadIntervalYearMonthResults lazyBinaryReadIntervalYearMonthResults =
- (LazyBinaryReadIntervalYearMonthResults) readIntervalYearMonthResults;
-
- LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
- offset += tempVInt.length;
- // Last item -- ok to be at end.
- if (offset > end) {
- warnBeyondEof();
- }
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- HiveIntervalYearMonthWritable hiveIntervalYearMonthWritable =
- lazyBinaryReadIntervalYearMonthResults.getHiveIntervalYearMonthWritable();
- hiveIntervalYearMonthWritable.set(tempVInt.value);
- }
-
- /*
- * INTERVAL_DAY_TIME.
- */
-
- // This class is for internal use.
- private static class LazyBinaryReadIntervalDayTimeResults extends ReadIntervalDayTimeResults {
-
- public LazyBinaryReadIntervalDayTimeResults() {
- super();
- }
-
- public HiveIntervalDayTimeWritable getHiveIntervalDayTimeWritable() {
- return hiveIntervalDayTimeWritable;
- }
- }
-
- // Reading a INTERVAL_DAY_TIME field require a results object to receive value information.
- // A separate results object is created by the caller at initialization per different
- // INTERVAL_DAY_TIME field.
- @Override
- public ReadIntervalDayTimeResults createReadIntervalDayTimeResults() {
- return new LazyBinaryReadIntervalDayTimeResults();
- }
-
- @Override
- public void readIntervalDayTime(ReadIntervalDayTimeResults readIntervalDayTimeResults)
- throws IOException {
- LazyBinaryReadIntervalDayTimeResults lazyBinaryReadIntervalDayTimeResults =
- (LazyBinaryReadIntervalDayTimeResults) readIntervalDayTimeResults;
- LazyBinaryUtils.readVLong(bytes, offset, tempVLong);
- offset += tempVLong.length;
- if (offset >= end) {
- // Overshoot or not enough for next item.
- warnBeyondEof();
- }
- LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
- offset += tempVInt.length;
- // Last item -- ok to be at end.
- if (offset > end) {
- warnBeyondEof();
- }
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- HiveIntervalDayTimeWritable hiveIntervalDayTimeWritable =
- lazyBinaryReadIntervalDayTimeResults.getHiveIntervalDayTimeWritable();
- hiveIntervalDayTimeWritable.set(tempVLong.value, tempVInt.value);
- }
-
- /*
- * TIMESTAMP.
- */
-
- // This class is for internal use.
- private static class LazyBinaryReadTimestampResults extends ReadTimestampResults {
-
- public LazyBinaryReadTimestampResults() {
- super();
- }
-
- public TimestampWritable getTimestampWritable() {
- return timestampWritable;
- }
- }
-
- // Reading a TIMESTAMP field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different TIMESTAMP field.
- @Override
- public ReadTimestampResults createReadTimestampResults() {
- return new LazyBinaryReadTimestampResults();
- }
-
- @Override
- public void readTimestamp(ReadTimestampResults readTimestampResults) throws IOException {
- LazyBinaryReadTimestampResults lazyBinaryReadTimestampResults = (LazyBinaryReadTimestampResults) readTimestampResults;
- int length = TimestampWritable.getTotalLength(bytes, offset);
- int saveStart = offset;
- offset += length;
- // Last item -- ok to be at end.
- if (offset > end) {
- warnBeyondEof();
- }
-
- // Move past this NOT NULL field.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- TimestampWritable timestampWritable = lazyBinaryReadTimestampResults.getTimestampWritable();
- timestampWritable.set(bytes, saveStart);
- }
-
- /*
- * DECIMAL.
- */
-
- // This class is for internal use.
- private static class LazyBinaryReadDecimalResults extends ReadDecimalResults {
-
- public HiveDecimal hiveDecimal;
-
- public void init(DecimalTypeInfo decimalTypeInfo) {
- super.init(decimalTypeInfo);
- }
-
- @Override
- public HiveDecimal getHiveDecimal() {
- return hiveDecimal;
- }
- }
-
- // Reading a DECIMAL field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different DECIMAL field.
- @Override
- public ReadDecimalResults createReadDecimalResults() {
- return new LazyBinaryReadDecimalResults();
- }
-
- @Override
- public void readHiveDecimal(ReadDecimalResults readDecimalResults) throws IOException {
- LazyBinaryReadDecimalResults lazyBinaryReadDecimalResults = (LazyBinaryReadDecimalResults) readDecimalResults;
-
- if (!lazyBinaryReadDecimalResults.isInit()) {
- lazyBinaryReadDecimalResults.init(saveDecimalTypeInfo);
- }
-
- lazyBinaryReadDecimalResults.hiveDecimal = saveDecimal;
-
- saveDecimal = null;
- saveDecimalTypeInfo = null;
- }
-
- /**
- * We read the whole HiveDecimal value and then enforce precision and scale, which may
- * make it a NULL.
- * @return Returns true if this HiveDecimal enforced to a NULL.
- */
- private boolean earlyReadHiveDecimal() throws EOFException {
-
- // Since enforcing precision and scale can cause a HiveDecimal to become NULL,
- // we must read it, enforce it here, and either return NULL or buffer the result.
-
- // These calls are to see how much data there is. The setFromBytes call below will do the same
- // readVInt reads but actually unpack the decimal.
- LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
- int saveStart = offset;
- offset += tempVInt.length;
- if (offset >= end) {
- // Overshoot or not enough for next item.
- warnBeyondEof();
- }
- LazyBinaryUtils.readVInt(bytes, offset, tempVInt);
- offset += tempVInt.length;
- if (offset >= end) {
- // Overshoot or not enough for next item.
- warnBeyondEof();
- }
- offset += tempVInt.value;
- // Last item -- ok to be at end.
- if (offset > end) {
- warnBeyondEof();
- }
- int length = offset - saveStart;
-
- if (tempHiveDecimalWritable == null) {
- tempHiveDecimalWritable = new HiveDecimalWritable();
- }
- LazyBinarySerDe.setFromBytes(bytes, saveStart, length,
- tempHiveDecimalWritable);
-
- saveDecimalTypeInfo = (DecimalTypeInfo) typeInfos[fieldIndex];
-
- int precision = saveDecimalTypeInfo.getPrecision();
- int scale = saveDecimalTypeInfo.getScale();
-
- saveDecimal = tempHiveDecimalWritable.getHiveDecimal(precision, scale);
-
- // Move past this field whether it is NULL or NOT NULL.
- fieldIndex++;
-
- // Every 8 fields we read a new NULL byte.
- if (fieldIndex < fieldCount) {
- if ((fieldIndex % 8) == 0) {
- // Get next null byte.
- if (offset >= end) {
- warnBeyondEof();
- }
- nullByte = bytes[offset++];
- }
- }
-
- // Now return whether it is NULL or NOT NULL.
- return (saveDecimal == null);
- }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/serde/src/test/org/apache/hadoop/hive/serde2/VerifyFast.java
----------------------------------------------------------------------
diff --git a/serde/src/test/org/apache/hadoop/hive/serde2/VerifyFast.java b/serde/src/test/org/apache/hadoop/hive/serde2/VerifyFast.java
index fc845a5..e27c6b1 100644
--- a/serde/src/test/org/apache/hadoop/hive/serde2/VerifyFast.java
+++ b/serde/src/test/org/apache/hadoop/hive/serde2/VerifyFast.java
@@ -32,8 +32,11 @@ import org.apache.hadoop.hive.common.type.HiveVarchar;
import org.apache.hadoop.hive.serde2.fast.DeserializeRead;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
import org.apache.hadoop.hive.serde2.fast.SerializeWrite;
+import org.apache.hadoop.hive.serde2.io.DateWritable;
+import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
import org.apache.hadoop.io.Text;
/**
@@ -58,7 +61,7 @@ public class VerifyFast {
switch (primitiveTypeInfo.getPrimitiveCategory()) {
case BOOLEAN:
{
- boolean value = deserializeRead.readBoolean();
+ boolean value = deserializeRead.currentBoolean;
if (!(object instanceof Boolean)) {
TestCase.fail("Boolean expected object not Boolean");
}
@@ -70,7 +73,7 @@ public class VerifyFast {
break;
case BYTE:
{
- byte value = deserializeRead.readByte();
+ byte value = deserializeRead.currentByte;
if (!(object instanceof Byte)) {
TestCase.fail("Byte expected object not Byte");
}
@@ -82,7 +85,7 @@ public class VerifyFast {
break;
case SHORT:
{
- short value = deserializeRead.readShort();
+ short value = deserializeRead.currentShort;
if (!(object instanceof Short)) {
TestCase.fail("Short expected object not Short");
}
@@ -94,7 +97,7 @@ public class VerifyFast {
break;
case INT:
{
- int value = deserializeRead.readInt();
+ int value = deserializeRead.currentInt;
if (!(object instanceof Integer)) {
TestCase.fail("Integer expected object not Integer");
}
@@ -106,7 +109,7 @@ public class VerifyFast {
break;
case LONG:
{
- long value = deserializeRead.readLong();
+ long value = deserializeRead.currentLong;
if (!(object instanceof Long)) {
TestCase.fail("Long expected object not Long");
}
@@ -118,7 +121,7 @@ public class VerifyFast {
break;
case FLOAT:
{
- float value = deserializeRead.readFloat();
+ float value = deserializeRead.currentFloat;
Float expected = (Float) object;
if (!(object instanceof Float)) {
TestCase.fail("Float expected object not Float");
@@ -130,7 +133,7 @@ public class VerifyFast {
break;
case DOUBLE:
{
- double value = deserializeRead.readDouble();
+ double value = deserializeRead.currentDouble;
Double expected = (Double) object;
if (!(object instanceof Double)) {
TestCase.fail("Double expected object not Double");
@@ -142,9 +145,10 @@ public class VerifyFast {
break;
case STRING:
{
- DeserializeRead.ReadStringResults readStringResults = deserializeRead.createReadStringResults();
- deserializeRead.readString(readStringResults);
- byte[] stringBytes = Arrays.copyOfRange(readStringResults.bytes, readStringResults.start, readStringResults.start + readStringResults.length);
+ byte[] stringBytes = Arrays.copyOfRange(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesStart + deserializeRead.currentBytesLength);
Text text = new Text(stringBytes);
String string = text.toString();
String expected = (String) object;
@@ -155,9 +159,15 @@ public class VerifyFast {
break;
case CHAR:
{
- DeserializeRead.ReadHiveCharResults readHiveCharResults = deserializeRead.createReadHiveCharResults();
- deserializeRead.readHiveChar(readHiveCharResults);
- HiveChar hiveChar = readHiveCharResults.getHiveChar();
+ byte[] stringBytes = Arrays.copyOfRange(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesStart + deserializeRead.currentBytesLength);
+ Text text = new Text(stringBytes);
+ String string = text.toString();
+
+ HiveChar hiveChar = new HiveChar(string, ((CharTypeInfo) primitiveTypeInfo).getLength());
+
HiveChar expected = (HiveChar) object;
if (!hiveChar.equals(expected)) {
TestCase.fail("Char field mismatch (expected '" + expected + "' found '" + hiveChar + "')");
@@ -166,9 +176,15 @@ public class VerifyFast {
break;
case VARCHAR:
{
- DeserializeRead.ReadHiveVarcharResults readHiveVarcharResults = deserializeRead.createReadHiveVarcharResults();
- deserializeRead.readHiveVarchar(readHiveVarcharResults);
- HiveVarchar hiveVarchar = readHiveVarcharResults.getHiveVarchar();
+ byte[] stringBytes = Arrays.copyOfRange(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesStart + deserializeRead.currentBytesLength);
+ Text text = new Text(stringBytes);
+ String string = text.toString();
+
+ HiveVarchar hiveVarchar = new HiveVarchar(string, ((VarcharTypeInfo) primitiveTypeInfo).getLength());
+
HiveVarchar expected = (HiveVarchar) object;
if (!hiveVarchar.equals(expected)) {
TestCase.fail("Varchar field mismatch (expected '" + expected + "' found '" + hiveVarchar + "')");
@@ -177,9 +193,7 @@ public class VerifyFast {
break;
case DECIMAL:
{
- DeserializeRead.ReadDecimalResults readDecimalResults = deserializeRead.createReadDecimalResults();
- deserializeRead.readHiveDecimal(readDecimalResults);
- HiveDecimal value = readDecimalResults.getHiveDecimal();
+ HiveDecimal value = deserializeRead.currentHiveDecimalWritable.getHiveDecimal();
if (value == null) {
TestCase.fail("Decimal field evaluated to NULL");
}
@@ -194,9 +208,7 @@ public class VerifyFast {
break;
case DATE:
{
- DeserializeRead.ReadDateResults readDateResults = deserializeRead.createReadDateResults();
- deserializeRead.readDate(readDateResults);
- Date value = readDateResults.getDate();
+ Date value = deserializeRead.currentDateWritable.get();
Date expected = (Date) object;
if (!value.equals(expected)) {
TestCase.fail("Date field mismatch (expected " + expected.toString() + " found " + value.toString() + ")");
@@ -205,9 +217,7 @@ public class VerifyFast {
break;
case TIMESTAMP:
{
- DeserializeRead.ReadTimestampResults readTimestampResults = deserializeRead.createReadTimestampResults();
- deserializeRead.readTimestamp(readTimestampResults);
- Timestamp value = readTimestampResults.getTimestamp();
+ Timestamp value = deserializeRead.currentTimestampWritable.getTimestamp();
Timestamp expected = (Timestamp) object;
if (!value.equals(expected)) {
TestCase.fail("Timestamp field mismatch (expected " + expected.toString() + " found " + value.toString() + ")");
@@ -216,9 +226,7 @@ public class VerifyFast {
break;
case INTERVAL_YEAR_MONTH:
{
- DeserializeRead.ReadIntervalYearMonthResults readIntervalYearMonthResults = deserializeRead.createReadIntervalYearMonthResults();
- deserializeRead.readIntervalYearMonth(readIntervalYearMonthResults);
- HiveIntervalYearMonth value = readIntervalYearMonthResults.getHiveIntervalYearMonth();
+ HiveIntervalYearMonth value = deserializeRead.currentHiveIntervalYearMonthWritable.getHiveIntervalYearMonth();
HiveIntervalYearMonth expected = (HiveIntervalYearMonth) object;
if (!value.equals(expected)) {
TestCase.fail("HiveIntervalYearMonth field mismatch (expected " + expected.toString() + " found " + value.toString() + ")");
@@ -227,9 +235,7 @@ public class VerifyFast {
break;
case INTERVAL_DAY_TIME:
{
- DeserializeRead.ReadIntervalDayTimeResults readIntervalDayTimeResults = deserializeRead.createReadIntervalDayTimeResults();
- deserializeRead.readIntervalDayTime(readIntervalDayTimeResults);
- HiveIntervalDayTime value = readIntervalDayTimeResults.getHiveIntervalDayTime();
+ HiveIntervalDayTime value = deserializeRead.currentHiveIntervalDayTimeWritable.getHiveIntervalDayTime();
HiveIntervalDayTime expected = (HiveIntervalDayTime) object;
if (!value.equals(expected)) {
TestCase.fail("HiveIntervalDayTime field mismatch (expected " + expected.toString() + " found " + value.toString() + ")");
@@ -238,9 +244,10 @@ public class VerifyFast {
break;
case BINARY:
{
- DeserializeRead.ReadBinaryResults readBinaryResults = deserializeRead.createReadBinaryResults();
- deserializeRead.readBinary(readBinaryResults);
- byte[] byteArray = Arrays.copyOfRange(readBinaryResults.bytes, readBinaryResults.start, readBinaryResults.start + readBinaryResults.length);
+ byte[] byteArray = Arrays.copyOfRange(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesStart + deserializeRead.currentBytesLength);
byte[] expected = (byte[]) object;
if (byteArray.length != expected.length){
TestCase.fail("Byte Array field mismatch (expected " + Arrays.toString(expected)
[45/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorDeserializeRow.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorDeserializeRow.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorDeserializeRow.java
index 3eadc12..2e8331a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorDeserializeRow.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorDeserializeRow.java
@@ -24,22 +24,40 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.hadoop.hive.common.type.HiveDecimal;
-import org.apache.hadoop.hive.common.type.HiveIntervalDayTime;
-import org.apache.hadoop.hive.common.type.HiveIntervalYearMonth;
import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.plan.VectorPartitionConversion;
import org.apache.hadoop.hive.serde2.fast.DeserializeRead;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DateWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.HiveCharWritable;
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
+import org.apache.hadoop.hive.serde2.io.HiveIntervalDayTimeWritable;
+import org.apache.hadoop.hive.serde2.io.HiveIntervalYearMonthWritable;
+import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.hive.serde2.io.TimestampWritable;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
-import org.apache.hive.common.util.DateUtils;
+import org.apache.hadoop.io.BooleanWritable;
+import org.apache.hadoop.io.BytesWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
+import org.apache.hadoop.io.Writable;
+
+import com.google.common.base.Charsets;
+import com.google.common.base.Preconditions;
/**
* This class deserializes a serialization format into a row of a VectorizedRowBatch.
- *
+ *
* The caller provides the hive type names and output column numbers in the order desired to
* deserialize.
*
@@ -54,667 +72,592 @@ public final class VectorDeserializeRow<T extends DeserializeRead> {
private T deserializeRead;
- private Reader<T>[] readersByValue;
- private Reader<T>[] readersByReference;
- private TypeInfo[] typeInfos;
+ private TypeInfo[] sourceTypeInfos;
public VectorDeserializeRow(T deserializeRead) {
this();
this.deserializeRead = deserializeRead;
- typeInfos = deserializeRead.typeInfos();
-
+ sourceTypeInfos = deserializeRead.typeInfos();
}
// Not public since we must have the deserialize read object.
private VectorDeserializeRow() {
}
- private abstract class Reader<R extends DeserializeRead> {
- protected int columnIndex;
-
- Reader(int columnIndex) {
- this.columnIndex = columnIndex;
- }
-
- abstract void apply(VectorizedRowBatch batch, int batchIndex) throws IOException;
- }
-
- private abstract class AbstractLongReader extends Reader<T> {
-
- AbstractLongReader(int columnIndex) {
- super(columnIndex);
- }
- }
-
- private class BooleanReader extends AbstractLongReader {
-
- BooleanReader(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- LongColumnVector colVector = (LongColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- boolean value = deserializeRead.readBoolean();
- colVector.vector[batchIndex] = (value ? 1 : 0);
- colVector.isNull[batchIndex] = false;
- }
- }
- }
-
- private class ByteReader extends AbstractLongReader {
-
- ByteReader(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- LongColumnVector colVector = (LongColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- byte value = deserializeRead.readByte();
- colVector.vector[batchIndex] = (long) value;
- colVector.isNull[batchIndex] = false;
- }
- }
- }
-
- private class ShortReader extends AbstractLongReader {
-
- ShortReader(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- LongColumnVector colVector = (LongColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- short value = deserializeRead.readShort();
- colVector.vector[batchIndex] = (long) value;
- colVector.isNull[batchIndex] = false;
- }
- }
- }
-
- private class IntReader extends AbstractLongReader {
-
- IntReader(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- LongColumnVector colVector = (LongColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- int value = deserializeRead.readInt();
- colVector.vector[batchIndex] = (long) value;
- colVector.isNull[batchIndex] = false;
- }
- }
- }
-
- private class LongReader extends AbstractLongReader {
-
- LongReader(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- LongColumnVector colVector = (LongColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- long value = deserializeRead.readLong();
- colVector.vector[batchIndex] = value;
- colVector.isNull[batchIndex] = false;
- }
- }
- }
-
- private class DateReader extends AbstractLongReader {
-
- DeserializeRead.ReadDateResults readDateResults;
-
- DateReader(int columnIndex) {
- super(columnIndex);
- readDateResults = deserializeRead.createReadDateResults();
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- LongColumnVector colVector = (LongColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- deserializeRead.readDate(readDateResults);
- colVector.vector[batchIndex] = (long) readDateResults.getDays();
- colVector.isNull[batchIndex] = false;
- }
- }
- }
-
- private abstract class AbstractTimestampReader extends Reader<T> {
-
- AbstractTimestampReader(int columnIndex) {
- super(columnIndex);
- }
- }
-
- private class TimestampReader extends AbstractTimestampReader {
-
- DeserializeRead.ReadTimestampResults readTimestampResults;
-
- TimestampReader(int columnIndex) {
- super(columnIndex);
- readTimestampResults = deserializeRead.createReadTimestampResults();
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- TimestampColumnVector colVector = (TimestampColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- deserializeRead.readTimestamp(readTimestampResults);
- colVector.set(batchIndex, readTimestampResults.getTimestamp());
- colVector.isNull[batchIndex] = false;
- }
- }
-
- }
-
- private class IntervalYearMonthReader extends AbstractLongReader {
-
- DeserializeRead.ReadIntervalYearMonthResults readIntervalYearMonthResults;
-
- IntervalYearMonthReader(int columnIndex) {
- super(columnIndex);
- readIntervalYearMonthResults = deserializeRead.createReadIntervalYearMonthResults();
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- LongColumnVector colVector = (LongColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- deserializeRead.readIntervalYearMonth(readIntervalYearMonthResults);
- HiveIntervalYearMonth hiym = readIntervalYearMonthResults.getHiveIntervalYearMonth();
- colVector.vector[batchIndex] = hiym.getTotalMonths();
- colVector.isNull[batchIndex] = false;
+ /*
+ * These members have information for deserializing a row into the VectorizedRowBatch
+ * columns.
+ *
+ * We say "source" because when there is conversion we are converting th deserialized source into
+ * a target data type.
+ */
+ boolean[] isConvert;
+ // For each column, are we converting the row column?
+
+ int[] projectionColumnNums;
+ // Assigning can be a subset of columns, so this is the projection --
+ // the batch column numbers.
+
+ Category[] sourceCategories;
+ // The data type category of each column being deserialized.
+
+ PrimitiveCategory[] sourcePrimitiveCategories;
+ //The data type primitive category of each column being deserialized.
+
+ int[] maxLengths;
+ // For the CHAR and VARCHAR data types, the maximum character length of
+ // the columns. Otherwise, 0.
+
+ /*
+ * These members have information for data type conversion.
+ * Not defined if there is no conversion.
+ */
+ Writable[] convertSourceWritables;
+ // Conversion requires source be placed in writable so we can call upon
+ // VectorAssignRow to convert and assign the row column.
+
+ VectorAssignRow convertVectorAssignRow;
+ // Use its conversion ability.
+
+ /*
+ * Allocate the source deserialization related arrays.
+ */
+ private void allocateArrays(int count) {
+ isConvert = new boolean[count];
+ projectionColumnNums = new int[count];
+ sourceCategories = new Category[count];
+ sourcePrimitiveCategories = new PrimitiveCategory[count];
+ maxLengths = new int[count];
+ }
+
+ /*
+ * Allocate the conversion related arrays (optional).
+ */
+ private void allocateConvertArrays(int count) {
+ convertSourceWritables = new Writable[count];
+ }
+
+ /*
+ * Initialize one column's source deserializtion related arrays.
+ */
+ private void initSourceEntry(int logicalColumnIndex, int projectionColumnNum, TypeInfo sourceTypeInfo) {
+ isConvert[logicalColumnIndex] = false;
+ projectionColumnNums[logicalColumnIndex] = projectionColumnNum;
+ Category sourceCategory = sourceTypeInfo.getCategory();
+ sourceCategories[logicalColumnIndex] = sourceCategory;
+ if (sourceCategory == Category.PRIMITIVE) {
+ PrimitiveTypeInfo sourcePrimitiveTypeInfo = (PrimitiveTypeInfo) sourceTypeInfo;
+ PrimitiveCategory sourcePrimitiveCategory = sourcePrimitiveTypeInfo.getPrimitiveCategory();
+ sourcePrimitiveCategories[logicalColumnIndex] = sourcePrimitiveCategory;
+ switch (sourcePrimitiveCategory) {
+ case CHAR:
+ maxLengths[logicalColumnIndex] = ((CharTypeInfo) sourcePrimitiveTypeInfo).getLength();
+ break;
+ case VARCHAR:
+ maxLengths[logicalColumnIndex] = ((VarcharTypeInfo) sourcePrimitiveTypeInfo).getLength();
+ break;
+ default:
+ // No additional data type specific setting.
+ break;
}
+ } else {
+ // We don't currently support complex types.
+ Preconditions.checkState(false);
}
}
- private abstract class AbstractIntervalDayTimeReader extends Reader<T> {
+ /*
+ * Initialize the conversion related arrays. Assumes initSourceEntry has already been called.
+ */
+ private void initConvertTargetEntry(int logicalColumnIndex) {
+ isConvert[logicalColumnIndex] = true;
- AbstractIntervalDayTimeReader(int columnIndex) {
- super(columnIndex);
+ if (sourceCategories[logicalColumnIndex] == Category.PRIMITIVE) {
+ convertSourceWritables[logicalColumnIndex] =
+ VectorizedBatchUtil.getPrimitiveWritable(sourcePrimitiveCategories[logicalColumnIndex]);
+ } else {
+ // We don't currently support complex types.
+ Preconditions.checkState(false);
}
}
- private class IntervalDayTimeReader extends AbstractIntervalDayTimeReader {
-
- DeserializeRead.ReadIntervalDayTimeResults readIntervalDayTimeResults;
-
- IntervalDayTimeReader(int columnIndex) {
- super(columnIndex);
- readIntervalDayTimeResults = deserializeRead.createReadIntervalDayTimeResults();
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- IntervalDayTimeColumnVector colVector = (IntervalDayTimeColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- deserializeRead.readIntervalDayTime(readIntervalDayTimeResults);
- HiveIntervalDayTime idt = readIntervalDayTimeResults.getHiveIntervalDayTime();
- colVector.set(batchIndex, idt);
- colVector.isNull[batchIndex] = false;
- }
- }
- }
+ /*
+ * Specify the columns to deserialize into as an array.
+ */
+ public void init(int[] outputColumns) throws HiveException {
- private abstract class AbstractDoubleReader extends Reader<T> {
+ final int count = sourceTypeInfos.length;
+ allocateArrays(count);
- AbstractDoubleReader(int columnIndex) {
- super(columnIndex);
+ for (int i = 0; i < count; i++) {
+ int outputColumn = outputColumns[i];
+ initSourceEntry(i, outputColumn, sourceTypeInfos[i]);
}
}
- private class FloatReader extends AbstractDoubleReader {
-
- FloatReader(int columnIndex) {
- super(columnIndex);
- }
+ /*
+ * Specify the columns to deserialize into as a list.
+ */
+ public void init(List<Integer> outputColumns) throws HiveException {
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- DoubleColumnVector colVector = (DoubleColumnVector) batch.cols[columnIndex];
+ final int count = sourceTypeInfos.length;
+ allocateArrays(count);
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- float value = deserializeRead.readFloat();
- colVector.vector[batchIndex] = (double) value;
- colVector.isNull[batchIndex] = false;
- }
+ for (int i = 0; i < count; i++) {
+ int outputColumn = outputColumns.get(i);
+ initSourceEntry(i, outputColumn, sourceTypeInfos[i]);
}
}
- private class DoubleReader extends AbstractDoubleReader {
-
- DoubleReader(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- DoubleColumnVector colVector = (DoubleColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- double value = deserializeRead.readDouble();
- colVector.vector[batchIndex] = value;
- colVector.isNull[batchIndex] = false;
- }
- }
- }
+ /*
+ * Specify the columns to deserialize into a range starting at a column number.
+ */
+ public void init(int startColumn) throws HiveException {
- private abstract class AbstractBytesReader extends Reader<T> {
+ final int count = sourceTypeInfos.length;
+ allocateArrays(count);
- AbstractBytesReader(int columnIndex) {
- super(columnIndex);
+ for (int i = 0; i < count; i++) {
+ int outputColumn = startColumn + i;
+ initSourceEntry(i, outputColumn, sourceTypeInfos[i]);
}
}
- private class StringReaderByValue extends AbstractBytesReader {
-
- private DeserializeRead.ReadStringResults readStringResults;
-
- StringReaderByValue(int columnIndex) {
- super(columnIndex);
- readStringResults = deserializeRead.createReadStringResults();
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- BytesColumnVector colVector = (BytesColumnVector) batch.cols[columnIndex];
+ public void init(boolean[] columnsToIncludeTruncated) throws HiveException {
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- deserializeRead.readString(readStringResults);
- colVector.setVal(batchIndex, readStringResults.bytes,
- readStringResults.start, readStringResults.length);
- colVector.isNull[batchIndex] = false;
- }
+ if (columnsToIncludeTruncated != null) {
+ deserializeRead.setColumnsToInclude(columnsToIncludeTruncated);
}
- }
- private class StringReaderByReference extends AbstractBytesReader {
+ final int columnCount = (columnsToIncludeTruncated == null ?
+ sourceTypeInfos.length : columnsToIncludeTruncated.length);
+ allocateArrays(columnCount);
- private DeserializeRead.ReadStringResults readStringResults;
+ for (int i = 0; i < columnCount; i++) {
- StringReaderByReference(int columnIndex) {
- super(columnIndex);
- readStringResults = deserializeRead.createReadStringResults();
- }
+ if (columnsToIncludeTruncated != null && !columnsToIncludeTruncated[i]) {
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- BytesColumnVector colVector = (BytesColumnVector) batch.cols[columnIndex];
+ // Field not included in query.
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
} else {
- deserializeRead.readString(readStringResults);
- colVector.setRef(batchIndex, readStringResults.bytes,
- readStringResults.start, readStringResults.length);
- colVector.isNull[batchIndex] = false;
- }
- }
- }
-
- private class CharReaderByValue extends AbstractBytesReader {
- private DeserializeRead.ReadStringResults readStringResults;
+ initSourceEntry(i, i, sourceTypeInfos[i]);
- private CharTypeInfo charTypeInfo;
-
- CharReaderByValue(CharTypeInfo charTypeInfo, int columnIndex) {
- super(columnIndex);
- readStringResults = deserializeRead.createReadStringResults();
- this.charTypeInfo = charTypeInfo;
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- BytesColumnVector colVector = (BytesColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- // Use the basic STRING bytes read to get access, then use our optimal truncate/trim method
- // that does not use Java String objects.
- deserializeRead.readString(readStringResults);
- int adjustedLength = StringExpr.rightTrimAndTruncate(readStringResults.bytes,
- readStringResults.start, readStringResults.length, charTypeInfo.getLength());
- colVector.setVal(batchIndex, readStringResults.bytes, readStringResults.start, adjustedLength);
- colVector.isNull[batchIndex] = false;
}
}
}
- private class CharReaderByReference extends AbstractBytesReader {
-
- private DeserializeRead.ReadStringResults readStringResults;
-
- private CharTypeInfo charTypeInfo;
-
- CharReaderByReference(CharTypeInfo charTypeInfo, int columnIndex) {
- super(columnIndex);
- readStringResults = deserializeRead.createReadStringResults();
- this.charTypeInfo = charTypeInfo;
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- BytesColumnVector colVector = (BytesColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- // Use the basic STRING bytes read to get access, then use our optimal truncate/trim method
- // that does not use Java String objects.
- deserializeRead.readString(readStringResults);
- int adjustedLength = StringExpr.rightTrimAndTruncate(readStringResults.bytes,
- readStringResults.start, readStringResults.length, charTypeInfo.getLength());
- colVector.setRef(batchIndex, readStringResults.bytes, readStringResults.start, adjustedLength);
- colVector.isNull[batchIndex] = false;
- }
+ /**
+ * Initialize for converting the source data type that are going to be read with the
+ * DeserializedRead interface passed to the constructor to the target data types desired in
+ * the VectorizedRowBatch.
+ *
+ * No projection -- the column range 0 .. count-1
+ *
+ * where count is the minimum of the target data type array size, included array size,
+ * and source data type array size.
+ *
+ * @param targetTypeInfos
+ * @param columnsToIncludeTruncated
+ * @return the minimum count described above is returned. That is, the number of columns
+ * that will be processed by deserialize.
+ * @throws HiveException
+ */
+ public int initConversion(TypeInfo[] targetTypeInfos,
+ boolean[] columnsToIncludeTruncated) throws HiveException {
+
+ if (columnsToIncludeTruncated != null) {
+ deserializeRead.setColumnsToInclude(columnsToIncludeTruncated);
+ }
+
+ int targetColumnCount;
+ if (columnsToIncludeTruncated == null) {
+ targetColumnCount = targetTypeInfos.length;
+ } else {
+ targetColumnCount = Math.min(targetTypeInfos.length, columnsToIncludeTruncated.length);
}
- }
- private class VarcharReaderByValue extends AbstractBytesReader {
+ int sourceColumnCount = Math.min(sourceTypeInfos.length, targetColumnCount);
+ allocateArrays(sourceColumnCount);
+ allocateConvertArrays(sourceColumnCount);
- private DeserializeRead.ReadStringResults readStringResults;
+ boolean atLeastOneConvert = false;
+ for (int i = 0; i < sourceColumnCount; i++) {
- private VarcharTypeInfo varcharTypeInfo;
+ if (columnsToIncludeTruncated != null && !columnsToIncludeTruncated[i]) {
- VarcharReaderByValue(VarcharTypeInfo varcharTypeInfo, int columnIndex) {
- super(columnIndex);
- readStringResults = deserializeRead.createReadStringResults();
- this.varcharTypeInfo = varcharTypeInfo;
- }
+ // Field not included in query.
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- BytesColumnVector colVector = (BytesColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
} else {
- // Use the basic STRING bytes read to get access, then use our optimal truncate/trim method
- // that does not use Java String objects.
- deserializeRead.readString(readStringResults);
- int adjustedLength = StringExpr.truncate(readStringResults.bytes,
- readStringResults.start, readStringResults.length, varcharTypeInfo.getLength());
- colVector.setVal(batchIndex, readStringResults.bytes, readStringResults.start, adjustedLength);
- colVector.isNull[batchIndex] = false;
- }
- }
- }
-
- private class VarcharReaderByReference extends AbstractBytesReader {
- private DeserializeRead.ReadStringResults readStringResults;
+ TypeInfo sourceTypeInfo = sourceTypeInfos[i];
+ TypeInfo targetTypeInfo = targetTypeInfos[i];
- private VarcharTypeInfo varcharTypeInfo;
-
- VarcharReaderByReference(VarcharTypeInfo varcharTypeInfo, int columnIndex) {
- super(columnIndex);
- readStringResults = deserializeRead.createReadStringResults();
- this.varcharTypeInfo = varcharTypeInfo;
- }
+ if (!sourceTypeInfo.equals(targetTypeInfo)) {
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- BytesColumnVector colVector = (BytesColumnVector) batch.cols[columnIndex];
+ if (VectorPartitionConversion.isImplicitVectorColumnConversion(sourceTypeInfo, targetTypeInfo)) {
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- // Use the basic STRING bytes read to get access, then use our optimal truncate/trim method
- // that does not use Java String objects.
- deserializeRead.readString(readStringResults);
- int adjustedLength = StringExpr.truncate(readStringResults.bytes,
- readStringResults.start, readStringResults.length, varcharTypeInfo.getLength());
- colVector.setRef(batchIndex, readStringResults.bytes, readStringResults.start, adjustedLength);
- colVector.isNull[batchIndex] = false;
- }
- }
- }
+ // Do implicit conversion from source type to target type.
+ initSourceEntry(i, i, sourceTypeInfo);
- private class BinaryReaderByValue extends AbstractBytesReader {
+ } else {
- private DeserializeRead.ReadBinaryResults readBinaryResults;
+ // Do formal conversion...
+ initSourceEntry(i, i, sourceTypeInfo);
+ initConvertTargetEntry(i);
+ atLeastOneConvert = true;
- BinaryReaderByValue(int columnIndex) {
- super(columnIndex);
- readBinaryResults = deserializeRead.createReadBinaryResults();
- }
+ }
+ } else {
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- BytesColumnVector colVector = (BytesColumnVector) batch.cols[columnIndex];
+ // No conversion.
+ initSourceEntry(i, i, sourceTypeInfo);
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- deserializeRead.readBinary(readBinaryResults);
- colVector.setVal(batchIndex, readBinaryResults.bytes,
- readBinaryResults.start, readBinaryResults.length);
- colVector.isNull[batchIndex] = false;
+ }
}
}
- }
- private class BinaryReaderByReference extends AbstractBytesReader {
+ if (atLeastOneConvert) {
- private DeserializeRead.ReadBinaryResults readBinaryResults;
-
- BinaryReaderByReference(int columnIndex) {
- super(columnIndex);
- readBinaryResults = deserializeRead.createReadBinaryResults();
+ // Let the VectorAssignRow class do the conversion.
+ convertVectorAssignRow = new VectorAssignRow();
+ convertVectorAssignRow.initConversion(sourceTypeInfos, targetTypeInfos,
+ columnsToIncludeTruncated);
}
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- BytesColumnVector colVector = (BytesColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- deserializeRead.readBinary(readBinaryResults);
- colVector.setRef(batchIndex, readBinaryResults.bytes,
- readBinaryResults.start, readBinaryResults.length);
- colVector.isNull[batchIndex] = false;
- }
- }
+ return sourceColumnCount;
}
- private class HiveDecimalReader extends Reader<T> {
-
- private DeserializeRead.ReadDecimalResults readDecimalResults;
-
- HiveDecimalReader(int columnIndex) {
- super(columnIndex);
- readDecimalResults = deserializeRead.createReadDecimalResults();
- }
-
- @Override
- void apply(VectorizedRowBatch batch, int batchIndex) throws IOException {
- DecimalColumnVector colVector = (DecimalColumnVector) batch.cols[columnIndex];
-
- if (deserializeRead.readCheckNull()) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- deserializeRead.readHiveDecimal(readDecimalResults);
- HiveDecimal hiveDecimal = readDecimalResults.getHiveDecimal();
- colVector.vector[batchIndex].set(hiveDecimal);
- colVector.isNull[batchIndex] = false;
- }
- }
+ public void init() throws HiveException {
+ init(0);
}
- private void addReader(int index, int outputColumn) throws HiveException {
- Reader<T> readerByValue = null;
- Reader<T> readerByReference = null;
-
- PrimitiveTypeInfo primitiveTypeInfo = (PrimitiveTypeInfo) typeInfos[index];
- PrimitiveCategory primitiveCategory = primitiveTypeInfo.getPrimitiveCategory();
- switch (primitiveCategory) {
- // case VOID:
- // UNDONE:
- // break;
- case BOOLEAN:
- readerByValue = new BooleanReader(outputColumn);
- break;
- case BYTE:
- readerByValue = new ByteReader(outputColumn);
- break;
- case SHORT:
- readerByValue = new ShortReader(outputColumn);
- break;
- case INT:
- readerByValue = new IntReader(outputColumn);
- break;
- case LONG:
- readerByValue = new LongReader(outputColumn);
- break;
- case DATE:
- readerByValue = new DateReader(outputColumn);
- break;
- case TIMESTAMP:
- readerByValue = new TimestampReader(outputColumn);
- break;
- case FLOAT:
- readerByValue = new FloatReader(outputColumn);
- break;
- case DOUBLE:
- readerByValue = new DoubleReader(outputColumn);
- break;
- case STRING:
- readerByValue = new StringReaderByValue(outputColumn);
- readerByReference = new StringReaderByReference(outputColumn);
- break;
- case CHAR:
+ /**
+ * Deserialize one row column value.
+ *
+ * @param batch
+ * @param batchIndex
+ * @param logicalColumnIndex
+ * @throws IOException
+ */
+ private void deserializeRowColumn(VectorizedRowBatch batch, int batchIndex,
+ int logicalColumnIndex) throws IOException {
+ final int projectionColumnNum = projectionColumnNums[logicalColumnIndex];
+ if (deserializeRead.readCheckNull()) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+
+ // We have a value for the row column.
+ Category sourceCategory = sourceCategories[logicalColumnIndex];
+ if (sourceCategory == null) {
+ /*
+ * This is a column that we don't want (i.e. not included).
+ * The deserializeRead.readCheckNull() has read the field, so we are done.
+ */
+ return;
+ }
+ switch (sourceCategory) {
+ case PRIMITIVE:
{
- CharTypeInfo charTypeInfo = (CharTypeInfo) primitiveTypeInfo;
- readerByValue = new CharReaderByValue(charTypeInfo, outputColumn);
- readerByReference = new CharReaderByReference(charTypeInfo, outputColumn);
+ PrimitiveCategory sourcePrimitiveCategory = sourcePrimitiveCategories[logicalColumnIndex];
+ switch (sourcePrimitiveCategory) {
+ case VOID:
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ case BOOLEAN:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ (deserializeRead.currentBoolean ? 1 : 0);
+ break;
+ case BYTE:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ deserializeRead.currentByte;
+ break;
+ case SHORT:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ deserializeRead.currentShort;
+ break;
+ case INT:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ deserializeRead.currentInt;
+ break;
+ case LONG:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ deserializeRead.currentLong;
+ break;
+ case TIMESTAMP:
+ ((TimestampColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, deserializeRead.currentTimestampWritable.getTimestamp());
+ break;
+ case DATE:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ deserializeRead.currentDateWritable.getDays();
+ break;
+ case FLOAT:
+ ((DoubleColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ deserializeRead.currentFloat;
+ break;
+ case DOUBLE:
+ ((DoubleColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ deserializeRead.currentDouble;
+ break;
+ case BINARY:
+ case STRING:
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex,
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesLength);
+ break;
+ case VARCHAR:
+ {
+ // Use the basic STRING bytes read to get access, then use our optimal truncate/trim method
+ // that does not use Java String objects.
+ int adjustedLength = StringExpr.truncate(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesLength,
+ maxLengths[logicalColumnIndex]);
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex,
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ adjustedLength);
+ }
+ break;
+ case CHAR:
+ {
+ // Use the basic STRING bytes read to get access, then use our optimal truncate/trim method
+ // that does not use Java String objects.
+ int adjustedLength = StringExpr.rightTrimAndTruncate(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesLength,
+ maxLengths[logicalColumnIndex]);
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex,
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ adjustedLength);
+ }
+ break;
+ case DECIMAL:
+ ((DecimalColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, deserializeRead.currentHiveDecimalWritable.getHiveDecimal());
+ break;
+ case INTERVAL_YEAR_MONTH:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ deserializeRead.currentHiveIntervalYearMonthWritable.getHiveIntervalYearMonth().getTotalMonths();
+ break;
+ case INTERVAL_DAY_TIME:
+ ((IntervalDayTimeColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, deserializeRead.currentHiveIntervalDayTimeWritable.getHiveIntervalDayTime());
+ break;
+ default:
+ throw new RuntimeException("Primitive category " + sourcePrimitiveCategory.name() +
+ " not supported");
+ }
}
break;
- case VARCHAR:
+ default:
+ throw new RuntimeException("Category " + sourceCategory.name() + " not supported");
+ }
+
+ // We always set the null flag to false when there is a value.
+ batch.cols[projectionColumnNum].isNull[batchIndex] = false;
+ }
+
+ /**
+ * Deserialize and convert one row column value.
+ *
+ * We deserialize into a writable and then pass that writable to an instance of VectorAssignRow
+ * to convert the writable to the target data type and assign it into the VectorizedRowBatch.
+ *
+ * @param batch
+ * @param batchIndex
+ * @param logicalColumnIndex
+ * @throws IOException
+ */
+ private void deserializeConvertRowColumn(VectorizedRowBatch batch, int batchIndex,
+ int logicalColumnIndex) throws IOException {
+ final int projectionColumnNum = projectionColumnNums[logicalColumnIndex];
+ if (deserializeRead.readCheckNull()) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+
+ // We have a value for the row column.
+ Category sourceCategory = sourceCategories[logicalColumnIndex];
+ if (sourceCategory == null) {
+ /*
+ * This is a column that we don't want (i.e. not included).
+ * The deserializeRead.readCheckNull() has read the field, so we are done.
+ */
+ return;
+ }
+ Writable convertSourceWritable = convertSourceWritables[logicalColumnIndex];
+ switch (sourceCategory) {
+ case PRIMITIVE:
{
- VarcharTypeInfo varcharTypeInfo = (VarcharTypeInfo) primitiveTypeInfo;
- readerByValue = new VarcharReaderByValue(varcharTypeInfo, outputColumn);
- readerByReference = new VarcharReaderByReference(varcharTypeInfo, outputColumn);
+ PrimitiveCategory sourcePrimitiveCategory = sourcePrimitiveCategories[logicalColumnIndex];
+ switch (sourcePrimitiveCategory) {
+ case VOID:
+ convertSourceWritable = null;
+ break;
+ case BOOLEAN:
+ ((BooleanWritable) convertSourceWritable).set(deserializeRead.currentBoolean);
+ break;
+ case BYTE:
+ ((ByteWritable) convertSourceWritable).set(deserializeRead.currentByte);
+ break;
+ case SHORT:
+ ((ShortWritable) convertSourceWritable).set(deserializeRead.currentShort);
+ break;
+ case INT:
+ ((IntWritable) convertSourceWritable).set(deserializeRead.currentInt);
+ break;
+ case LONG:
+ ((LongWritable) convertSourceWritable).set(deserializeRead.currentLong);
+ break;
+ case TIMESTAMP:
+ ((TimestampWritable) convertSourceWritable).set(deserializeRead.currentTimestampWritable);
+ break;
+ case DATE:
+ ((DateWritable) convertSourceWritable).set(deserializeRead.currentDateWritable);
+ break;
+ case FLOAT:
+ ((FloatWritable) convertSourceWritable).set(deserializeRead.currentFloat);
+ break;
+ case DOUBLE:
+ ((DoubleWritable) convertSourceWritable).set(deserializeRead.currentDouble);
+ break;
+ case BINARY:
+ if (deserializeRead.currentBytes == null) {
+ LOG.info("null binary entry: batchIndex " + batchIndex + " projection column num " + projectionColumnNum);
+ }
+
+ ((BytesWritable) convertSourceWritable).set(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesLength);
+ break;
+ case STRING:
+ if (deserializeRead.currentBytes == null) {
+ throw new RuntimeException(
+ "null string entry: batchIndex " + batchIndex + " projection column num " + projectionColumnNum);
+ }
+
+ // Use org.apache.hadoop.io.Text as our helper to go from byte[] to String.
+ ((Text) convertSourceWritable).set(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesLength);
+ break;
+ case VARCHAR:
+ {
+ // Use the basic STRING bytes read to get access, then use our optimal truncate/trim method
+ // that does not use Java String objects.
+ if (deserializeRead.currentBytes == null) {
+ throw new RuntimeException(
+ "null varchar entry: batchIndex " + batchIndex + " projection column num " + projectionColumnNum);
+ }
+
+ int adjustedLength = StringExpr.truncate(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesLength,
+ maxLengths[logicalColumnIndex]);
+
+ ((HiveVarcharWritable) convertSourceWritable).set(
+ new String(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ adjustedLength,
+ Charsets.UTF_8),
+ -1);
+ }
+ break;
+ case CHAR:
+ {
+ // Use the basic STRING bytes read to get access, then use our optimal truncate/trim method
+ // that does not use Java String objects.
+ if (deserializeRead.currentBytes == null) {
+ throw new RuntimeException(
+ "null char entry: batchIndex " + batchIndex + " projection column num " + projectionColumnNum);
+ }
+
+ int adjustedLength = StringExpr.rightTrimAndTruncate(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesLength,
+ maxLengths[logicalColumnIndex]);
+
+ ((HiveCharWritable) convertSourceWritable).set(
+ new String(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ adjustedLength, Charsets.UTF_8),
+ -1);
+ }
+ break;
+ case DECIMAL:
+ ((HiveDecimalWritable) convertSourceWritable).set(
+ deserializeRead.currentHiveDecimalWritable);
+ break;
+ case INTERVAL_YEAR_MONTH:
+ ((HiveIntervalYearMonthWritable) convertSourceWritable).set(
+ deserializeRead.currentHiveIntervalYearMonthWritable);
+ break;
+ case INTERVAL_DAY_TIME:
+ ((HiveIntervalDayTimeWritable) convertSourceWritable).set(
+ deserializeRead.currentHiveIntervalDayTimeWritable);
+ break;
+ default:
+ throw new RuntimeException("Primitive category " + sourcePrimitiveCategory.name() +
+ " not supported");
+ }
}
break;
- case BINARY:
- readerByValue = new BinaryReaderByValue(outputColumn);
- readerByReference = new BinaryReaderByReference(outputColumn);
- break;
- case DECIMAL:
- readerByValue = new HiveDecimalReader(outputColumn);
- break;
- case INTERVAL_YEAR_MONTH:
- readerByValue = new IntervalYearMonthReader(outputColumn);
- break;
- case INTERVAL_DAY_TIME:
- readerByValue = new IntervalDayTimeReader(outputColumn);
- break;
default:
- throw new HiveException("Unexpected primitive type category " + primitiveCategory);
- }
-
- readersByValue[index] = readerByValue;
- if (readerByReference == null) {
- readersByReference[index] = readerByValue;
- } else {
- readersByReference[index] = readerByReference;
- }
- }
-
- public void init(int[] outputColumns) throws HiveException {
-
- readersByValue = new Reader[typeInfos.length];
- readersByReference = new Reader[typeInfos.length];
-
- for (int i = 0; i < typeInfos.length; i++) {
- int outputColumn = outputColumns[i];
- addReader(i, outputColumn);
- }
- }
-
- public void init(List<Integer> outputColumns) throws HiveException {
-
- readersByValue = new Reader[typeInfos.length];
- readersByReference = new Reader[typeInfos.length];
-
- for (int i = 0; i < typeInfos.length; i++) {
- int outputColumn = outputColumns.get(i);
- addReader(i, outputColumn);
- }
- }
-
- public void init(int startColumn) throws HiveException {
-
- readersByValue = new Reader[typeInfos.length];
- readersByReference = new Reader[typeInfos.length];
-
- for (int i = 0; i < typeInfos.length; i++) {
- int outputColumn = startColumn + i;
- addReader(i, outputColumn);
+ throw new RuntimeException("Category " + sourceCategory.name() + " not supported");
}
- }
- public void init() throws HiveException {
- init(0);
+ /*
+ * Convert our source object we just read into the target object and store that in the
+ * VectorizedRowBatch.
+ */
+ convertVectorAssignRow.assignConvertRowColumn(batch, batchIndex, logicalColumnIndex,
+ convertSourceWritable);
}
+ /**
+ * Specify the range of bytes to deserialize in the next call to the deserialize method.
+ *
+ * @param bytes
+ * @param offset
+ * @param length
+ */
public void setBytes(byte[] bytes, int offset, int length) {
deserializeRead.set(bytes, offset, length);
}
- public void deserializeByValue(VectorizedRowBatch batch, int batchIndex) throws IOException {
+ /**
+ * Deserialize a row from the range of bytes specified by setBytes.
+ *
+ * @param batch
+ * @param batchIndex
+ * @throws IOException
+ */
+ public void deserialize(VectorizedRowBatch batch, int batchIndex) throws IOException {
+ final int count = isConvert.length;
int i = 0;
try {
- while (i < readersByValue.length) {
- readersByValue[i].apply(batch, batchIndex);
+ while (i < count) {
+ if (isConvert[i]) {
+ deserializeConvertRowColumn(batch, batchIndex, i);
+ } else {
+ deserializeRowColumn(batch, batchIndex, i);
+ }
i++; // Increment after the apply which could throw an exception.
}
} catch (EOFException e) {
@@ -723,27 +666,14 @@ public final class VectorDeserializeRow<T extends DeserializeRead> {
deserializeRead.extraFieldsCheck();
}
- public void deserializeByReference(VectorizedRowBatch batch, int batchIndex) throws IOException {
- int i = 0;
- try {
- while (i < readersByReference.length) {
- readersByReference[i].apply(batch, batchIndex);
- i++; // Increment after the apply which could throw an exception.
- }
- } catch (EOFException e) {
- throwMoreDetailedException(e, i);
- }
- deserializeRead.extraFieldsCheck();
- }
-
private void throwMoreDetailedException(IOException e, int index) throws EOFException {
StringBuilder sb = new StringBuilder();
- sb.append("Detail: \"" + e.toString() + "\" occured for field " + index + " of " + typeInfos.length + " fields (");
- for (int i = 0; i < typeInfos.length; i++) {
+ sb.append("Detail: \"" + e.toString() + "\" occured for field " + index + " of " + sourceTypeInfos.length + " fields (");
+ for (int i = 0; i < sourceTypeInfos.length; i++) {
if (i > 0) {
sb.append(", ");
}
- sb.append(((PrimitiveTypeInfo) typeInfos[i]).getPrimitiveCategory().name());
+ sb.append(((PrimitiveTypeInfo) sourceTypeInfos[i]).getPrimitiveCategory().name());
}
sb.append(")");
throw new EOFException(sb.toString());
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRow.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRow.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRow.java
index e883f38..c965dc8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRow.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRow.java
@@ -18,758 +18,329 @@
package org.apache.hadoop.hive.ql.exec.vector;
-import java.io.IOException;
-import java.sql.Date;
-import java.sql.Timestamp;
import java.util.List;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.hadoop.hive.common.type.HiveChar;
-import org.apache.hadoop.hive.common.type.HiveDecimal;
-import org.apache.hadoop.hive.common.type.HiveIntervalDayTime;
-import org.apache.hadoop.hive.common.type.HiveIntervalYearMonth;
-import org.apache.hadoop.hive.common.type.HiveVarchar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DateWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.HiveCharWritable;
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
+import org.apache.hadoop.hive.serde2.io.HiveIntervalDayTimeWritable;
+import org.apache.hadoop.hive.serde2.io.HiveIntervalYearMonthWritable;
+import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.hive.serde2.io.TimestampWritable;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
import org.apache.hadoop.hive.serde2.objectinspector.StructField;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableHiveCharObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableHiveDecimalObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableHiveVarcharObjectInspector;
import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
+import org.apache.hadoop.io.BooleanWritable;
import org.apache.hadoop.io.BytesWritable;
-import org.apache.hadoop.io.DataOutputBuffer;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
-import org.apache.hive.common.util.DateUtils;
+import org.apache.hadoop.io.Writable;
+
+import com.google.common.base.Charsets;
/**
- * This class extracts specified VectorizedRowBatch row columns into a Writable row Object[].
- *
- * The caller provides the hive type names and target column numbers in the order desired to
- * extract from the Writable row Object[].
+ * This class extracts specified VectorizedRowBatch row columns into writables.
*
- * This class is abstract to allow the subclasses to control batch reuse.
+ * The caller provides the data types and projection column numbers of a subset of the columns
+ * to extract.
*/
-public abstract class VectorExtractRow {
+public class VectorExtractRow {
+
private static final long serialVersionUID = 1L;
private static final Logger LOG = LoggerFactory.getLogger(VectorExtractRow.class);
- private boolean tolerateNullColumns;
-
- public VectorExtractRow() {
- // UNDONE: For now allow null columns until vector_decimal_mapjoin.q is understood...
- tolerateNullColumns = true;
- }
-
- protected abstract class Extractor {
- protected int columnIndex;
- protected Object object;
-
- public Extractor(int columnIndex) {
- this.columnIndex = columnIndex;
- }
-
- public int getColumnIndex() {
- return columnIndex;
- }
-
- abstract void setColumnVector(VectorizedRowBatch batch);
-
- abstract void forgetColumnVector();
-
- abstract Object extract(int batchIndex);
- }
-
- private class VoidExtractor extends Extractor {
-
- VoidExtractor(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- }
-
- @Override
- void forgetColumnVector() {
- }
-
- @Override
- Object extract(int batchIndex) {
- return null;
- }
- }
-
- private abstract class AbstractLongExtractor extends Extractor {
-
- protected LongColumnVector colVector;
- protected long[] vector;
-
- AbstractLongExtractor(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (LongColumnVector) batch.cols[columnIndex];
- vector = colVector.vector;
- }
-
- @Override
- void forgetColumnVector() {
- colVector = null;
- vector = null;
- }
- }
-
- protected class BooleanExtractor extends AbstractLongExtractor {
-
- BooleanExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableBooleanObjectInspector.create(false);
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- long value = vector[adjustedIndex];
- PrimitiveObjectInspectorFactory.writableBooleanObjectInspector.set(object, value == 0 ? false : true);
- return object;
- } else {
- return null;
- }
- }
- }
-
- protected class ByteExtractor extends AbstractLongExtractor {
-
- ByteExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableByteObjectInspector.create((byte) 0);
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- long value = vector[adjustedIndex];
- PrimitiveObjectInspectorFactory.writableByteObjectInspector.set(object, (byte) value);
- return object;
- } else {
- return null;
+ /*
+ * These members have information for extracting a row column objects from VectorizedRowBatch
+ * columns.
+ */
+ int[] projectionColumnNums;
+ // Extraction can be a subset of columns, so this is the projection --
+ // the batch column numbers.
+
+ Category[] categories;
+ // The data type category of each column being extracted.
+
+ PrimitiveCategory[] primitiveCategories;
+ // The data type primitive category of each column being assigned.
+
+ int[] maxLengths;
+ // For the CHAR and VARCHAR data types, the maximum character length of
+ // the columns. Otherwise, 0.
+
+ Writable[] primitiveWritables;
+ // The extracted values will be placed in these writables.
+
+ /*
+ * Allocate the various arrays.
+ */
+ private void allocateArrays(int count) {
+ projectionColumnNums = new int[count];
+ categories = new Category[count];
+ primitiveCategories = new PrimitiveCategory[count];
+ maxLengths = new int[count];
+ primitiveWritables = new Writable[count];
+ }
+
+ /*
+ * Initialize one column's array entries.
+ */
+ private void initEntry(int logicalColumnIndex, int projectionColumnNum, TypeInfo typeInfo) {
+ projectionColumnNums[logicalColumnIndex] = projectionColumnNum;
+ Category category = typeInfo.getCategory();
+ categories[logicalColumnIndex] = category;
+ if (category == Category.PRIMITIVE) {
+ PrimitiveTypeInfo primitiveTypeInfo = (PrimitiveTypeInfo) typeInfo;
+ PrimitiveCategory primitiveCategory = primitiveTypeInfo.getPrimitiveCategory();
+ primitiveCategories[logicalColumnIndex] = primitiveCategory;
+
+ switch (primitiveCategory) {
+ case CHAR:
+ maxLengths[logicalColumnIndex] = ((CharTypeInfo) primitiveTypeInfo).getLength();
+ break;
+ case VARCHAR:
+ maxLengths[logicalColumnIndex] = ((VarcharTypeInfo) primitiveTypeInfo).getLength();
+ break;
+ default:
+ // No additional data type specific setting.
+ break;
}
- }
- }
-
- private class ShortExtractor extends AbstractLongExtractor {
-
- ShortExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableShortObjectInspector.create((short) 0);
- }
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- long value = vector[adjustedIndex];
- PrimitiveObjectInspectorFactory.writableShortObjectInspector.set(object, (short) value);
- return object;
- } else {
- return null;
- }
+ primitiveWritables[logicalColumnIndex] =
+ VectorizedBatchUtil.getPrimitiveWritable(primitiveCategory);
}
}
- private class IntExtractor extends AbstractLongExtractor {
-
- IntExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableIntObjectInspector.create(0);
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- long value = vector[adjustedIndex];
- PrimitiveObjectInspectorFactory.writableIntObjectInspector.set(object, (int) value);
- return object;
- } else {
- return null;
- }
- }
- }
-
- private class LongExtractor extends AbstractLongExtractor {
-
- LongExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableLongObjectInspector.create(0);
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- long value = vector[adjustedIndex];
- PrimitiveObjectInspectorFactory.writableLongObjectInspector.set(object, value);
- return object;
- } else {
- return null;
- }
- }
- }
-
- private class DateExtractor extends AbstractLongExtractor {
-
- private Date date;
-
- DateExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableDateObjectInspector.create(new Date(0));
- date = new Date(0);
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- long value = vector[adjustedIndex];
- date.setTime(DateWritable.daysToMillis((int) value));
- PrimitiveObjectInspectorFactory.writableDateObjectInspector.set(object, date);
- return object;
- } else {
- return null;
- }
- }
- }
-
- private abstract class AbstractTimestampExtractor extends Extractor {
-
- protected TimestampColumnVector colVector;
-
- AbstractTimestampExtractor(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (TimestampColumnVector) batch.cols[columnIndex];
- }
-
- @Override
- void forgetColumnVector() {
- colVector = null;
- }
- }
-
- private class TimestampExtractor extends AbstractTimestampExtractor {
-
- protected Timestamp timestamp;
-
- TimestampExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableTimestampObjectInspector.create(new Timestamp(0));
- timestamp = new Timestamp(0);
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- colVector.timestampUpdate(timestamp, adjustedIndex);
- PrimitiveObjectInspectorFactory.writableTimestampObjectInspector.set(object, timestamp);
- return object;
- } else {
- return null;
- }
- }
- }
-
- private class IntervalYearMonthExtractor extends AbstractLongExtractor {
-
- private HiveIntervalYearMonth hiveIntervalYearMonth;
-
- IntervalYearMonthExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableHiveIntervalYearMonthObjectInspector.create(new HiveIntervalYearMonth(0));
- hiveIntervalYearMonth = new HiveIntervalYearMonth(0);
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- int totalMonths = (int) vector[adjustedIndex];
- hiveIntervalYearMonth.set(totalMonths);
- PrimitiveObjectInspectorFactory.writableHiveIntervalYearMonthObjectInspector.set(object, hiveIntervalYearMonth);
- return object;
- } else {
- return null;
- }
- }
- }
-
- private abstract class AbstractIntervalDayTimeExtractor extends Extractor {
-
- protected IntervalDayTimeColumnVector colVector;
-
- AbstractIntervalDayTimeExtractor(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (IntervalDayTimeColumnVector) batch.cols[columnIndex];
- }
+ /*
+ * Initialize using an StructObjectInspector and a column projection list.
+ */
+ public void init(StructObjectInspector structObjectInspector, List<Integer> projectedColumns)
+ throws HiveException {
- @Override
- void forgetColumnVector() {
- colVector = null;
- }
- }
-
- private class IntervalDayTimeExtractor extends AbstractIntervalDayTimeExtractor {
-
- private HiveIntervalDayTime hiveIntervalDayTime;
-
- IntervalDayTimeExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector.create(new HiveIntervalDayTime(0, 0));
- hiveIntervalDayTime = new HiveIntervalDayTime(0, 0);
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- hiveIntervalDayTime.set(colVector.asScratchIntervalDayTime(adjustedIndex));
- PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector.set(object, hiveIntervalDayTime);
- return object;
- } else {
- return null;
- }
- }
- }
-
- private abstract class AbstractDoubleExtractor extends Extractor {
-
- protected DoubleColumnVector colVector;
- protected double[] vector;
-
- AbstractDoubleExtractor(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (DoubleColumnVector) batch.cols[columnIndex];
- vector = colVector.vector;
- }
-
- @Override
- void forgetColumnVector() {
- colVector = null;
- vector = null;
- }
- }
-
- private class FloatExtractor extends AbstractDoubleExtractor {
-
- FloatExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableFloatObjectInspector.create(0f);
- }
+ List<? extends StructField> fields = structObjectInspector.getAllStructFieldRefs();
+ final int count = fields.size();
+ allocateArrays(count);
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- double value = vector[adjustedIndex];
- PrimitiveObjectInspectorFactory.writableFloatObjectInspector.set(object, (float) value);
- return object;
- } else {
- return null;
- }
- }
- }
+ for (int i = 0; i < count; i++) {
- private class DoubleExtractor extends AbstractDoubleExtractor {
+ int projectionColumnNum = projectedColumns.get(i);
- DoubleExtractor(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableDoubleObjectInspector.create(0f);
- }
+ StructField field = fields.get(i);
+ ObjectInspector fieldInspector = field.getFieldObjectInspector();
+ TypeInfo typeInfo =
+ TypeInfoUtils.getTypeInfoFromTypeString(fieldInspector.getTypeName());
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- double value = vector[adjustedIndex];
- PrimitiveObjectInspectorFactory.writableDoubleObjectInspector.set(object, value);
- return object;
- } else {
- return null;
- }
+ initEntry(i, projectionColumnNum, typeInfo);
}
}
- private abstract class AbstractBytesExtractor extends Extractor {
+ /*
+ * Initialize using data type names.
+ * No projection -- the column range 0 .. types.size()-1
+ */
+ public void init(List<String> typeNames) throws HiveException {
- protected BytesColumnVector colVector;
+ final int count = typeNames.size();
+ allocateArrays(count);
- AbstractBytesExtractor(int columnIndex) {
- super(columnIndex);
- }
+ for (int i = 0; i < count; i++) {
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (BytesColumnVector) batch.cols[columnIndex];
- }
+ TypeInfo typeInfo =
+ TypeInfoUtils.getTypeInfoFromTypeString(typeNames.get(i));
- @Override
- void forgetColumnVector() {
- colVector = null;
+ initEntry(i, i, typeInfo);
}
}
- private class BinaryExtractorByValue extends AbstractBytesExtractor {
-
- private DataOutputBuffer buffer;
-
- // Use the BytesWritable instance here as a reference to data saved in buffer. We do not
- // want to pass the binary object inspector a byte[] since we would need to allocate it on the
- // heap each time to get the length correct.
- private BytesWritable bytesWritable;
-
- BinaryExtractorByValue(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableBinaryObjectInspector.create(ArrayUtils.EMPTY_BYTE_ARRAY);
- buffer = new DataOutputBuffer();
- bytesWritable = new BytesWritable();
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- byte[] bytes = colVector.vector[adjustedIndex];
- int start = colVector.start[adjustedIndex];
- int length = colVector.length[adjustedIndex];
-
- // Save a copy of the binary data.
- buffer.reset();
- try {
- buffer.write(bytes, start, length);
- } catch (IOException ioe) {
- throw new IllegalStateException("bad write", ioe);
- }
-
- bytesWritable.set(buffer.getData(), 0, buffer.getLength());
- PrimitiveObjectInspectorFactory.writableBinaryObjectInspector.set(object, bytesWritable);
- return object;
- } else {
- return null;
- }
+ public int getCount() {
+ return projectionColumnNums.length;
+ }
+
+ /**
+ * Extract a row's column object from the ColumnVector at batchIndex in the VectorizedRowBatch.
+ *
+ * @param batch
+ * @param batchIndex
+ * @param logicalColumnIndex
+ * @return
+ */
+ public Object extractRowColumn(VectorizedRowBatch batch, int batchIndex, int logicalColumnIndex) {
+ final int projectionColumnNum = projectionColumnNums[logicalColumnIndex];
+ ColumnVector colVector = batch.cols[projectionColumnNum];
+ if (colVector == null) {
+ // In rare cases, the planner will not include columns for reading but other parts of
+ // execution will ask for but not use them..
+ return null;
}
- }
-
- private class StringExtractorByValue extends AbstractBytesExtractor {
-
- // Use org.apache.hadoop.io.Text as our helper to go from byte[] to String.
- private Text text;
-
- StringExtractorByValue(int columnIndex) {
- super(columnIndex);
- object = PrimitiveObjectInspectorFactory.writableStringObjectInspector.create(StringUtils.EMPTY);
- text = new Text();
+ int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
+ if (!colVector.noNulls && colVector.isNull[adjustedIndex]) {
+ return null;
}
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- byte[] value = colVector.vector[adjustedIndex];
- int start = colVector.start[adjustedIndex];
- int length = colVector.length[adjustedIndex];
-
- if (value == null) {
- LOG.info("null string entry: batchIndex " + batchIndex + " columnIndex " + columnIndex);
+ Category category = categories[logicalColumnIndex];
+ switch (category) {
+ case PRIMITIVE:
+ {
+ Writable primitiveWritable =
+ primitiveWritables[logicalColumnIndex];
+ PrimitiveCategory primitiveCategory = primitiveCategories[logicalColumnIndex];
+ switch (primitiveCategory) {
+ case VOID:
+ return null;
+ case BOOLEAN:
+ ((BooleanWritable) primitiveWritable).set(
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex] == 0 ?
+ false : true);
+ return primitiveWritable;
+ case BYTE:
+ ((ByteWritable) primitiveWritable).set(
+ (byte) ((LongColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex]);
+ return primitiveWritable;
+ case SHORT:
+ ((ShortWritable) primitiveWritable).set(
+ (short) ((LongColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex]);
+ return primitiveWritable;
+ case INT:
+ ((IntWritable) primitiveWritable).set(
+ (int) ((LongColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex]);
+ return primitiveWritable;
+ case LONG:
+ ((LongWritable) primitiveWritable).set(
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex]);
+ return primitiveWritable;
+ case TIMESTAMP:
+ ((TimestampWritable) primitiveWritable).set(
+ ((TimestampColumnVector) batch.cols[projectionColumnNum]).asScratchTimestamp(adjustedIndex));
+ return primitiveWritable;
+ case DATE:
+ ((DateWritable) primitiveWritable).set(
+ (int) ((LongColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex]);
+ return primitiveWritable;
+ case FLOAT:
+ ((FloatWritable) primitiveWritable).set(
+ (float) ((DoubleColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex]);
+ return primitiveWritable;
+ case DOUBLE:
+ ((DoubleWritable) primitiveWritable).set(
+ ((DoubleColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex]);
+ return primitiveWritable;
+ case BINARY:
+ {
+ BytesColumnVector bytesColVector =
+ ((BytesColumnVector) batch.cols[projectionColumnNum]);
+ byte[] bytes = bytesColVector.vector[adjustedIndex];
+ int start = bytesColVector.start[adjustedIndex];
+ int length = bytesColVector.length[adjustedIndex];
+
+ if (bytes == null) {
+ LOG.info("null binary entry: batchIndex " + batchIndex + " projection column num " + projectionColumnNum);
+ }
+
+ BytesWritable bytesWritable = (BytesWritable) primitiveWritable;
+ bytesWritable.set(bytes, start, length);
+ return primitiveWritable;
+ }
+ case STRING:
+ {
+ BytesColumnVector bytesColVector =
+ ((BytesColumnVector) batch.cols[projectionColumnNum]);
+ byte[] bytes = bytesColVector.vector[adjustedIndex];
+ int start = bytesColVector.start[adjustedIndex];
+ int length = bytesColVector.length[adjustedIndex];
+
+ if (bytes == null) {
+ LOG.info("null string entry: batchIndex " + batchIndex + " projection column num " + projectionColumnNum);
+ }
+
+ // Use org.apache.hadoop.io.Text as our helper to go from byte[] to String.
+ ((Text) primitiveWritable).set(bytes, start, length);
+ return primitiveWritable;
+ }
+ case VARCHAR:
+ {
+ BytesColumnVector bytesColVector =
+ ((BytesColumnVector) batch.cols[projectionColumnNum]);
+ byte[] bytes = bytesColVector.vector[adjustedIndex];
+ int start = bytesColVector.start[adjustedIndex];
+ int length = bytesColVector.length[adjustedIndex];
+
+ if (bytes == null) {
+ LOG.info("null varchar entry: batchIndex " + batchIndex + " projection column num " + projectionColumnNum);
+ }
+
+ int adjustedLength = StringExpr.truncate(bytes, start, length,
+ maxLengths[logicalColumnIndex]);
+
+ HiveVarcharWritable hiveVarcharWritable = (HiveVarcharWritable) primitiveWritable;
+ hiveVarcharWritable.set(new String(bytes, start, adjustedLength, Charsets.UTF_8), -1);
+ return primitiveWritable;
+ }
+ case CHAR:
+ {
+ BytesColumnVector bytesColVector =
+ ((BytesColumnVector) batch.cols[projectionColumnNum]);
+ byte[] bytes = bytesColVector.vector[adjustedIndex];
+ int start = bytesColVector.start[adjustedIndex];
+ int length = bytesColVector.length[adjustedIndex];
+
+ if (bytes == null) {
+ LOG.info("null char entry: batchIndex " + batchIndex + " projection column num " + projectionColumnNum);
+ }
+
+ int adjustedLength = StringExpr.rightTrimAndTruncate(bytes, start, length,
+ maxLengths[logicalColumnIndex]);
+
+ HiveCharWritable hiveCharWritable = (HiveCharWritable) primitiveWritable;
+ hiveCharWritable.set(new String(bytes, start, adjustedLength, Charsets.UTF_8), -1);
+ return primitiveWritable;
+ }
+ case DECIMAL:
+ ((HiveDecimalWritable) primitiveWritable).set(
+ ((DecimalColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex].getHiveDecimal());
+ return primitiveWritable;
+ case INTERVAL_YEAR_MONTH:
+ ((HiveIntervalYearMonthWritable) primitiveWritable).set(
+ (int) ((LongColumnVector) batch.cols[projectionColumnNum]).vector[adjustedIndex]);
+ return primitiveWritable;
+ case INTERVAL_DAY_TIME:
+ ((HiveIntervalDayTimeWritable) primitiveWritable).set(
+ ((IntervalDayTimeColumnVector) batch.cols[projectionColumnNum]).asScratchIntervalDayTime(adjustedIndex));
+ return primitiveWritable;
+ default:
+ throw new RuntimeException("Primitive category " + primitiveCategory.name() +
+ " not supported");
}
- // Use org.apache.hadoop.io.Text as our helper to go from byte[] to String.
- text.set(value, start, length);
-
- PrimitiveObjectInspectorFactory.writableStringObjectInspector.set(object, text);
- return object;
- } else {
- return null;
- }
- }
- }
-
- private class VarCharExtractorByValue extends AbstractBytesExtractor {
-
- // We need our own instance of the VARCHAR object inspector to hold the maximum length
- // from the TypeInfo.
- private WritableHiveVarcharObjectInspector writableVarcharObjectInspector;
-
- // Use org.apache.hadoop.io.Text as our helper to go from byte[] to String.
- private Text text;
-
- /*
- * @param varcharTypeInfo
- * We need the VARCHAR type information that contains the maximum length.
- * @param columnIndex
- * The vector row batch column that contains the bytes for the VARCHAR.
- */
- VarCharExtractorByValue(VarcharTypeInfo varcharTypeInfo, int columnIndex) {
- super(columnIndex);
- writableVarcharObjectInspector = new WritableHiveVarcharObjectInspector(varcharTypeInfo);
- object = writableVarcharObjectInspector.create(new HiveVarchar(StringUtils.EMPTY, -1));
- text = new Text();
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- byte[] value = colVector.vector[adjustedIndex];
- int start = colVector.start[adjustedIndex];
- int length = colVector.length[adjustedIndex];
-
- // Use org.apache.hadoop.io.Text as our helper to go from byte[] to String.
- text.set(value, start, length);
-
- writableVarcharObjectInspector.set(object, text.toString());
- return object;
- } else {
- return null;
- }
- }
- }
-
- private class CharExtractorByValue extends AbstractBytesExtractor {
-
- // We need our own instance of the CHAR object inspector to hold the maximum length
- // from the TypeInfo.
- private WritableHiveCharObjectInspector writableCharObjectInspector;
-
- // Use org.apache.hadoop.io.Text as our helper to go from byte[] to String.
- private Text text;
-
- /*
- * @param varcharTypeInfo
- * We need the CHAR type information that contains the maximum length.
- * @param columnIndex
- * The vector row batch column that contains the bytes for the CHAR.
- */
- CharExtractorByValue(CharTypeInfo charTypeInfo, int columnIndex) {
- super(columnIndex);
- writableCharObjectInspector = new WritableHiveCharObjectInspector(charTypeInfo);
- object = writableCharObjectInspector.create(new HiveChar(StringUtils.EMPTY, -1));
- text = new Text();
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- byte[] value = colVector.vector[adjustedIndex];
- int start = colVector.start[adjustedIndex];
- int length = colVector.length[adjustedIndex];
-
- // Use org.apache.hadoop.io.Text as our helper to go from byte[] to String.
- text.set(value, start, length);
-
- writableCharObjectInspector.set(object, text.toString());
- return object;
- } else {
- return null;
- }
- }
- }
-
- private class DecimalExtractor extends Extractor {
-
- private WritableHiveDecimalObjectInspector writableDecimalObjectInspector;
- protected DecimalColumnVector colVector;
-
- /*
- * @param decimalTypeInfo
- * We need the DECIMAL type information that contains scale and precision.
- * @param columnIndex
- * The vector row batch column that contains the bytes for the VARCHAR.
- */
- DecimalExtractor(DecimalTypeInfo decimalTypeInfo, int columnIndex) {
- super(columnIndex);
- writableDecimalObjectInspector = new WritableHiveDecimalObjectInspector(decimalTypeInfo);
- object = writableDecimalObjectInspector.create(HiveDecimal.ZERO);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (DecimalColumnVector) batch.cols[columnIndex];
- }
-
- @Override
- void forgetColumnVector() {
- colVector = null;
- }
-
- @Override
- Object extract(int batchIndex) {
- int adjustedIndex = (colVector.isRepeating ? 0 : batchIndex);
- if (colVector.noNulls || !colVector.isNull[adjustedIndex]) {
- HiveDecimal value = colVector.vector[adjustedIndex].getHiveDecimal();
- writableDecimalObjectInspector.set(object, value);
- return object;
- } else {
- return null;
}
- }
- }
-
- private Extractor createExtractor(PrimitiveTypeInfo primitiveTypeInfo, int columnIndex) throws HiveException {
- PrimitiveCategory primitiveCategory = primitiveTypeInfo.getPrimitiveCategory();
- Extractor extracter;
- switch (primitiveCategory) {
- case VOID:
- extracter = new VoidExtractor(columnIndex);
- break;
- case BOOLEAN:
- extracter = new BooleanExtractor(columnIndex);
- break;
- case BYTE:
- extracter = new ByteExtractor(columnIndex);
- break;
- case SHORT:
- extracter = new ShortExtractor(columnIndex);
- break;
- case INT:
- extracter = new IntExtractor(columnIndex);
- break;
- case LONG:
- extracter = new LongExtractor(columnIndex);
- break;
- case TIMESTAMP:
- extracter = new TimestampExtractor(columnIndex);
- break;
- case DATE:
- extracter = new DateExtractor(columnIndex);
- break;
- case FLOAT:
- extracter = new FloatExtractor(columnIndex);
- break;
- case DOUBLE:
- extracter = new DoubleExtractor(columnIndex);
- break;
- case BINARY:
- extracter = new BinaryExtractorByValue(columnIndex);
- break;
- case STRING:
- extracter = new StringExtractorByValue(columnIndex);
- break;
- case VARCHAR:
- extracter = new VarCharExtractorByValue((VarcharTypeInfo) primitiveTypeInfo, columnIndex);
- break;
- case CHAR:
- extracter = new CharExtractorByValue((CharTypeInfo) primitiveTypeInfo, columnIndex);
- break;
- case DECIMAL:
- extracter = new DecimalExtractor((DecimalTypeInfo) primitiveTypeInfo, columnIndex);
- break;
- case INTERVAL_YEAR_MONTH:
- extracter = new IntervalYearMonthExtractor(columnIndex);
- break;
- case INTERVAL_DAY_TIME:
- extracter = new IntervalDayTimeExtractor(columnIndex);
- break;
default:
- throw new HiveException("No vector row extracter for primitive category " +
- primitiveCategory);
+ throw new RuntimeException("Category " + category.name() + " not supported");
}
- return extracter;
- }
-
- Extractor[] extracters;
-
- public void init(StructObjectInspector structObjectInspector, List<Integer> projectedColumns) throws HiveException {
-
- extracters = new Extractor[projectedColumns.size()];
-
- List<? extends StructField> fields = structObjectInspector.getAllStructFieldRefs();
-
- int i = 0;
- for (StructField field : fields) {
- int columnIndex = projectedColumns.get(i);
- ObjectInspector fieldInspector = field.getFieldObjectInspector();
- PrimitiveTypeInfo primitiveTypeInfo = (PrimitiveTypeInfo) TypeInfoUtils.getTypeInfoFromTypeString(
- fieldInspector.getTypeName());
- extracters[i] = createExtractor(primitiveTypeInfo, columnIndex);
- i++;
- }
- }
-
- public void init(List<String> typeNames) throws HiveException {
-
- extracters = new Extractor[typeNames.size()];
-
- int i = 0;
- for (String typeName : typeNames) {
- PrimitiveTypeInfo primitiveTypeInfo = (PrimitiveTypeInfo) TypeInfoUtils.getTypeInfoFromTypeString(typeName);
- extracters[i] = createExtractor(primitiveTypeInfo, i);
- i++;
- }
- }
-
- public int getCount() {
- return extracters.length;
- }
-
- protected void setBatch(VectorizedRowBatch batch) throws HiveException {
-
- for (int i = 0; i < extracters.length; i++) {
- Extractor extracter = extracters[i];
- int columnIndex = extracter.getColumnIndex();
- if (batch.cols[columnIndex] == null) {
- if (tolerateNullColumns) {
- // Replace with void...
- extracter = new VoidExtractor(columnIndex);
- extracters[i] = extracter;
- } else {
- throw new HiveException("Unexpected null vector column " + columnIndex);
- }
- }
- extracter.setColumnVector(batch);
- }
- }
-
- protected void forgetBatch() {
- for (Extractor extracter : extracters) {
- extracter.forgetColumnVector();
- }
- }
-
- public Object extractRowColumn(int batchIndex, int logicalColumnIndex) {
- return extracters[logicalColumnIndex].extract(batchIndex);
}
- public void extractRow(int batchIndex, Object[] objects) {
- for (int i = 0; i < extracters.length; i++) {
- Extractor extracter = extracters[i];
- objects[i] = extracter.extract(batchIndex);
+ /**
+ * Extract an row object from a VectorizedRowBatch at batchIndex.
+ *
+ * @param batch
+ * @param batchIndex
+ * @param objects
+ */
+ public void extractRow(VectorizedRowBatch batch, int batchIndex, Object[] objects) {
+ for (int i = 0; i < projectionColumnNums.length; i++) {
+ objects[i] = extractRowColumn(batch, batchIndex, i);
}
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRowDynBatch.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRowDynBatch.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRowDynBatch.java
deleted file mode 100644
index 0ff7145..0000000
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRowDynBatch.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.ql.exec.vector;
-
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-
-/**
- * This class extracts specified VectorizedRowBatch row columns into a Writable row Object[].
- *
- * The caller provides the hive type names and target column numbers in the order desired to
- * extract from the Writable row Object[].
- *
- * This class is for use when the batch being assigned is always the same.
- */
-public class VectorExtractRowDynBatch extends VectorExtractRow {
-
- public void setBatchOnEntry(VectorizedRowBatch batch) throws HiveException {
- setBatch(batch);
- }
-
- public void forgetBatchOnExit() {
- forgetBatch();
- }
-}
\ No newline at end of file
[43/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
index 1ddd9be..4a156a2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
@@ -29,7 +29,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Properties;
import java.util.Set;
import java.util.Stack;
import java.util.regex.Pattern;
@@ -38,7 +37,6 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.metastore.api.hive_metastoreConstants;
import org.apache.hadoop.hive.ql.exec.*;
import org.apache.hadoop.hive.ql.exec.mr.MapRedTask;
import org.apache.hadoop.hive.ql.exec.persistence.MapJoinKey;
@@ -98,7 +96,6 @@ import org.apache.hadoop.hive.ql.plan.JoinDesc;
import org.apache.hadoop.hive.ql.plan.MapJoinDesc;
import org.apache.hadoop.hive.ql.plan.MapWork;
import org.apache.hadoop.hive.ql.plan.OperatorDesc;
-import org.apache.hadoop.hive.ql.plan.VectorPartitionConversion;
import org.apache.hadoop.hive.ql.plan.PartitionDesc;
import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc;
import org.apache.hadoop.hive.ql.plan.ReduceWork;
@@ -113,6 +110,7 @@ import org.apache.hadoop.hive.ql.plan.VectorMapJoinDesc;
import org.apache.hadoop.hive.ql.plan.VectorMapJoinDesc.HashTableImplementationType;
import org.apache.hadoop.hive.ql.plan.VectorMapJoinDesc.HashTableKeyType;
import org.apache.hadoop.hive.ql.plan.VectorMapJoinDesc.HashTableKind;
+import org.apache.hadoop.hive.ql.plan.VectorPartitionDesc.VectorDeserializeType;
import org.apache.hadoop.hive.ql.plan.VectorReduceSinkDesc;
import org.apache.hadoop.hive.ql.plan.VectorReduceSinkInfo;
import org.apache.hadoop.hive.ql.plan.VectorPartitionDesc;
@@ -160,8 +158,12 @@ import org.apache.hadoop.hive.ql.udf.UDFYear;
import org.apache.hadoop.hive.ql.udf.generic.*;
import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.Deserializer;
+import org.apache.hadoop.hive.serde2.NullStructSerDe;
+import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
+import org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
import org.apache.hadoop.hive.serde2.objectinspector.StructField;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
@@ -169,8 +171,10 @@ import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
+import org.apache.hadoop.mapred.SequenceFileInputFormat;
+import org.apache.hadoop.mapred.TextInputFormat;
-import com.google.common.base.Joiner;
+import com.google.common.base.Preconditions;
public class Vectorizer implements PhysicalPlanResolver {
@@ -184,8 +188,15 @@ public class Vectorizer implements PhysicalPlanResolver {
Set<String> supportedAggregationUdfs = new HashSet<String>();
private HiveConf hiveConf;
+
private boolean isSpark;
+ boolean useVectorizedInputFileFormat;
+ boolean useVectorDeserialize;
+ boolean useRowDeserialize;
+
+ boolean isSchemaEvolution;
+
public Vectorizer() {
StringBuilder patternBuilder = new StringBuilder();
@@ -341,6 +352,7 @@ public class Vectorizer implements PhysicalPlanResolver {
List<String> columnNames;
List<TypeInfo> typeInfos;
int partitionColumnCount;
+ boolean useVectorizedInputFileFormat;
String[] scratchTypeNameArray;
@@ -362,7 +374,9 @@ public class Vectorizer implements PhysicalPlanResolver {
public void setScratchTypeNameArray(String[] scratchTypeNameArray) {
this.scratchTypeNameArray = scratchTypeNameArray;
}
-
+ public void setUseVectorizedInputFileFormat(boolean useVectorizedInputFileFormat) {
+ this.useVectorizedInputFileFormat = useVectorizedInputFileFormat;
+ }
public void setNonVectorizedOps(Set<Operator<? extends OperatorDesc>> nonVectorizedOps) {
this.nonVectorizedOps = nonVectorizedOps;
}
@@ -383,6 +397,8 @@ public class Vectorizer implements PhysicalPlanResolver {
partitionColumnCount,
scratchTypeNameArray);
baseWork.setVectorizedRowBatchCtx(vectorizedRowBatchCtx);
+
+ baseWork.setUseVectorizedInputFileFormat(useVectorizedInputFileFormat);
}
}
@@ -443,6 +459,10 @@ public class Vectorizer implements PhysicalPlanResolver {
+ ReduceSinkOperator.getOperatorName()), np);
}
+ /*
+ * Determine if there is only one TableScanOperator. Currently in Map vectorization, we do not
+ * try to vectorize multiple input trees.
+ */
private ImmutablePair<String, TableScanOperator> verifyOnlyOneTableScanOperator(MapWork mapWork) {
// Eliminate MR plans with more than one TableScanOperator.
@@ -476,8 +496,6 @@ public class Vectorizer implements PhysicalPlanResolver {
private void getTableScanOperatorSchemaInfo(TableScanOperator tableScanOperator,
List<String> logicalColumnNameList, List<TypeInfo> logicalTypeInfoList) {
- TableScanDesc tableScanDesc = tableScanOperator.getConf();
-
// Add all non-virtual columns to make a vectorization context for
// the TableScan operator.
RowSchema rowSchema = tableScanOperator.getSchema();
@@ -494,35 +512,141 @@ public class Vectorizer implements PhysicalPlanResolver {
}
}
- private String getColumns(List<String> columnNames, int start, int length,
- Character separator) {
- return Joiner.on(separator).join(columnNames.subList(start, start + length));
- }
-
- private String getTypes(List<TypeInfo> typeInfos, int start, int length) {
- return TypeInfoUtils.getTypesString(typeInfos.subList(start, start + length));
- }
-
- private boolean verifyAndSetVectorPartDesc(PartitionDesc pd) {
+ private String getHiveOptionsString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(HiveConf.ConfVars.HIVE_VECTORIZATION_USE_VECTORIZED_INPUT_FILE_FORMAT.varname);
+ sb.append("=");
+ sb.append(useVectorizedInputFileFormat);
+ sb.append(", ");
+ sb.append(HiveConf.ConfVars.HIVE_VECTORIZATION_USE_VECTOR_DESERIALIZE.varname);
+ sb.append("=");
+ sb.append(useVectorDeserialize);
+ sb.append(", and ");
+ sb.append(HiveConf.ConfVars.HIVE_VECTORIZATION_USE_ROW_DESERIALIZE.varname);
+ sb.append("=");
+ sb.append(useRowDeserialize);
+ return sb.toString();
+ }
+
+ /*
+ * There are 3 modes of reading for vectorization:
+ *
+ * 1) One for the Vectorized Input File Format which returns VectorizedRowBatch as the row.
+ *
+ * 2) One for using VectorDeserializeRow to deserialize each row into the VectorizedRowBatch.
+ * Currently, these Input File Formats:
+ * TEXTFILE
+ * SEQUENCEFILE
+ *
+ * 3) And one using the regular partition deserializer to get the row object and assigning
+ * the row object into the VectorizedRowBatch with VectorAssignRow.
+ * This picks up Input File Format not supported by the other two.
+ */
+ private boolean verifyAndSetVectorPartDesc(PartitionDesc pd, boolean isAcidTable) {
+
+ String inputFileFormatClassName = pd.getInputFileFormatClassName();
// Look for Pass-Thru case where InputFileFormat has VectorizedInputFormatInterface
// and reads VectorizedRowBatch as a "row".
- if (Utilities.isInputFileFormatVectorized(pd)) {
+ if (isAcidTable || useVectorizedInputFileFormat) {
+
+ if (Utilities.isInputFileFormatVectorized(pd)) {
+
+ if (!useVectorizedInputFileFormat) {
+ LOG.info("ACID tables con only be vectorized for the input file format -- " +
+ "i.e. when Hive Configuration option " +
+ HiveConf.ConfVars.HIVE_VECTORIZATION_USE_VECTORIZED_INPUT_FILE_FORMAT.varname +
+ "=true");
+ return false;
+ }
+
+ pd.setVectorPartitionDesc(
+ VectorPartitionDesc.createVectorizedInputFileFormat(
+ inputFileFormatClassName, Utilities.isInputFileFormatSelfDescribing(pd)));
+
+ return true;
+ }
+
+ // Today, ACID tables are only ORC and that format is vectorizable. Verify this
+ // assumption.
+ Preconditions.checkState(!isAcidTable);
+ }
+
+ if (!(isSchemaEvolution || isAcidTable) &&
+ (useVectorDeserialize || useRowDeserialize)) {
+ LOG.info("Input format: " + inputFileFormatClassName + " cannot be vectorized" +
+ " when both " + HiveConf.ConfVars.HIVE_SCHEMA_EVOLUTION.varname + "=false and " +
+ " ACID table is " + isAcidTable + " and " +
+ " given the Hive Configuration options " + getHiveOptionsString());
+ return false;
+ }
+
+ String deserializerClassName = pd.getDeserializerClassName();
+
+ // Look for InputFileFormat / Serde combinations we can deserialize more efficiently
+ // using VectorDeserializeRow and a deserialize class with the DeserializeRead interface.
+ //
+ // Do the "vectorized" row-by-row deserialization into a VectorizedRowBatch in the
+ // VectorMapOperator.
+
+ if (useVectorDeserialize) {
+
+ // Currently, we support LazySimple deserialization:
+ //
+ // org.apache.hadoop.mapred.TextInputFormat
+ // org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ //
+ // AND
+ //
+ // org.apache.hadoop.mapred.SequenceFileInputFormat
+ // org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ if (inputFileFormatClassName.equals(TextInputFormat.class.getName()) &&
+ deserializerClassName.equals(LazySimpleSerDe.class.getName())) {
+
+ pd.setVectorPartitionDesc(
+ VectorPartitionDesc.createVectorDeserialize(
+ inputFileFormatClassName, VectorDeserializeType.LAZY_SIMPLE));
+
+ return true;
+ } else if (inputFileFormatClassName.equals(SequenceFileInputFormat.class.getName()) &&
+ deserializerClassName.equals(LazyBinarySerDe.class.getName())) {
- pd.setVectorPartitionDesc(VectorPartitionDesc.createVectorizedInputFileFormat());
+ pd.setVectorPartitionDesc(
+ VectorPartitionDesc.createVectorDeserialize(
+ inputFileFormatClassName, VectorDeserializeType.LAZY_BINARY));
+
+ return true;
+ }
+ }
+
+ // Otherwise, if enabled, deserialize rows using regular Serde and add the object
+ // inspect-able Object[] row to a VectorizedRowBatch in the VectorMapOperator.
+
+ if (useRowDeserialize) {
+
+ pd.setVectorPartitionDesc(
+ VectorPartitionDesc.createRowDeserialize(
+ inputFileFormatClassName,
+ Utilities.isInputFileFormatSelfDescribing(pd),
+ deserializerClassName));
return true;
+
}
- LOG.info("Input format: " + pd.getInputFileFormatClassName()
- + ", doesn't provide vectorized input");
+ LOG.info("Input format: " + inputFileFormatClassName + " cannot be vectorized" +
+ " given the Hive Configuration options " + getHiveOptionsString());
return false;
}
private boolean validateInputFormatAndSchemaEvolution(MapWork mapWork, String alias,
- TableScanOperator tableScanOperator, VectorTaskColumnInfo vectorTaskColumnInfo) {
+ TableScanOperator tableScanOperator, VectorTaskColumnInfo vectorTaskColumnInfo)
+ throws SemanticException {
+
+ boolean isAcidTable = tableScanOperator.getConf().isAcidTable();
// These names/types are the data columns plus partition columns.
final List<String> allColumnNameList = new ArrayList<String>();
@@ -531,23 +655,16 @@ public class Vectorizer implements PhysicalPlanResolver {
getTableScanOperatorSchemaInfo(tableScanOperator, allColumnNameList, allTypeInfoList);
final int allColumnCount = allColumnNameList.size();
- // Validate input format and schema evolution capability.
-
- // For the table, enter a null value in the multi-key map indicating no conversion necessary
- // if the schema matches the table.
-
- HashMap<ImmutablePair, boolean[]> conversionMap = new HashMap<ImmutablePair, boolean[]>();
-
+ /*
+ * Validate input formats of all the partitions can be vectorized.
+ */
boolean isFirst = true;
int dataColumnCount = 0;
int partitionColumnCount = 0;
- List<String> dataColumnList = null;
- String dataColumnsString = "";
- List<TypeInfo> dataTypeInfoList = null;
+ List<String> tableDataColumnList = null;
+ List<TypeInfo> tableDataTypeInfoList = null;
- // Validate the input format
- VectorPartitionConversion partitionConversion = new VectorPartitionConversion();
LinkedHashMap<String, ArrayList<String>> pathToAliases = mapWork.getPathToAliases();
LinkedHashMap<String, PartitionDesc> pathToPartitionInfo = mapWork.getPathToPartitionInfo();
for (Entry<String, ArrayList<String>> entry: pathToAliases.entrySet()) {
@@ -563,31 +680,18 @@ public class Vectorizer implements PhysicalPlanResolver {
// We seen this already.
continue;
}
- if (!verifyAndSetVectorPartDesc(partDesc)) {
+ if (!verifyAndSetVectorPartDesc(partDesc, isAcidTable)) {
return false;
}
VectorPartitionDesc vectorPartDesc = partDesc.getVectorPartitionDesc();
- LOG.info("Vectorizer path: " + path + ", read type " +
- vectorPartDesc.getVectorMapOperatorReadType().name() + ", aliases " + aliases);
-
- Properties partProps = partDesc.getProperties();
-
- String nextDataColumnsString =
- partProps.getProperty(hive_metastoreConstants.META_TABLE_COLUMNS);
- String[] nextDataColumns = nextDataColumnsString.split(",");
-
- String nextDataTypesString =
- partProps.getProperty(hive_metastoreConstants.META_TABLE_COLUMN_TYPES);
-
- // We convert to an array of TypeInfo using a library routine since it parses the information
- // and can handle use of different separators, etc. We cannot use the raw type string
- // for comparison in the map because of the different separators used.
- List<TypeInfo> nextDataTypeInfoList =
- TypeInfoUtils.getTypeInfosFromTypeString(nextDataTypesString);
+ if (LOG.isInfoEnabled()) {
+ LOG.info("Vectorizer path: " + path + ", " + vectorPartDesc.toString() +
+ ", aliases " + aliases);
+ }
if (isFirst) {
- // We establish with the first one whether the table is partitioned or not.
+ // Determine the data and partition columns using the first partition descriptor.
LinkedHashMap<String, String> partSpec = partDesc.getPartSpec();
if (partSpec != null && partSpec.size() > 0) {
@@ -598,85 +702,83 @@ public class Vectorizer implements PhysicalPlanResolver {
dataColumnCount = allColumnCount;
}
- dataColumnList = allColumnNameList.subList(0, dataColumnCount);
- dataColumnsString = getColumns(allColumnNameList, 0, dataColumnCount, ',');
- dataTypeInfoList = allTypeInfoList.subList(0, dataColumnCount);
-
- // Add the table (non-partitioned) columns and types into the map as not needing
- // conversion (i.e. null).
- conversionMap.put(
- new ImmutablePair(dataColumnsString, dataTypeInfoList), null);
+ tableDataColumnList = allColumnNameList.subList(0, dataColumnCount);
+ tableDataTypeInfoList = allTypeInfoList.subList(0, dataColumnCount);
isFirst = false;
}
- ImmutablePair columnNamesAndTypesCombination =
- new ImmutablePair(nextDataColumnsString, nextDataTypeInfoList);
-
- boolean[] conversionFlags;
- if (conversionMap.containsKey(columnNamesAndTypesCombination)) {
-
- conversionFlags = conversionMap.get(columnNamesAndTypesCombination);
-
- } else {
-
- List<String> nextDataColumnList = Arrays.asList(nextDataColumns);
-
- // Validate the column names that are present are the same. Missing columns will be
- // implicitly defaulted to null.
+ // We need to get the partition's column names from the partition serde.
+ // (e.g. Avro provides the table schema and ignores the partition schema..).
+ //
+ Deserializer deserializer;
+ StructObjectInspector partObjectInspector;
+ try {
+ deserializer = partDesc.getDeserializer(hiveConf);
+ partObjectInspector = (StructObjectInspector) deserializer.getObjectInspector();
+ } catch (Exception e) {
+ throw new SemanticException(e);
+ }
+ String nextDataColumnsString = ObjectInspectorUtils.getFieldNames(partObjectInspector);
+ String[] nextDataColumns = nextDataColumnsString.split(",");
+ List<String> nextDataColumnList = Arrays.asList(nextDataColumns);
+
+ /*
+ * Validate the column names that are present are the same. Missing columns will be
+ * implicitly defaulted to null.
+ */
+ if (nextDataColumnList.size() > tableDataColumnList.size()) {
+ LOG.info(
+ String.format(
+ "Could not vectorize partition %s " +
+ "(deserializer " + deserializer.getClass().getName() + ")" +
+ "The partition column names %d is greater than the number of table columns %d",
+ path, nextDataColumnList.size(), tableDataColumnList.size()));
+ return false;
+ }
+ if (!(deserializer instanceof NullStructSerDe)) {
- if (nextDataColumnList.size() > dataColumnList.size()) {
- LOG.info(
- String.format("Could not vectorize partition %s. The partition column names %d is greater than the number of table columns %d",
- path, nextDataColumnList.size(), dataColumnList.size()));
- return false;
- }
+ // (Don't insist NullStructSerDe produce correct column names).
for (int i = 0; i < nextDataColumnList.size(); i++) {
String nextColumnName = nextDataColumnList.get(i);
- String tableColumnName = dataColumnList.get(i);
+ String tableColumnName = tableDataColumnList.get(i);
if (!nextColumnName.equals(tableColumnName)) {
LOG.info(
- String.format("Could not vectorize partition %s. The partition column name %s is does not match table column name %s",
+ String.format(
+ "Could not vectorize partition %s " +
+ "(deserializer " + deserializer.getClass().getName() + ")" +
+ "The partition column name %s is does not match table column name %s",
path, nextColumnName, tableColumnName));
return false;
}
}
+ }
- // The table column types might have been changed with ALTER. There are restrictions
- // here for vectorization.
-
- // Some readers / deserializers take responsibility for conversion themselves.
-
- // If we need to check for conversion, the conversion object may come back null
- // indicating from a vectorization point of view the conversion is implicit. That is,
- // all implicit integer upgrades.
+ List<TypeInfo> nextDataTypeInfoList;
+ if (vectorPartDesc.getIsInputFileFormatSelfDescribing()) {
- if (vectorPartDesc.getNeedsDataTypeConversionCheck() &&
- !nextDataTypeInfoList.equals(dataTypeInfoList)) {
+ /*
+ * Self-Describing Input Format will convert its data to the table schema.
+ */
+ nextDataTypeInfoList = tableDataTypeInfoList;
- // The results will be in 2 members: validConversion and conversionFlags
- partitionConversion.validateConversion(nextDataTypeInfoList, dataTypeInfoList);
- if (!partitionConversion.getValidConversion()) {
- return false;
- }
- conversionFlags = partitionConversion.getResultConversionFlags();
- } else {
- conversionFlags = null;
- }
-
- // We enter this in our map so we don't have to check again for subsequent partitions.
+ } else {
+ String nextDataTypesString = ObjectInspectorUtils.getFieldTypes(partObjectInspector);
- conversionMap.put(columnNamesAndTypesCombination, conversionFlags);
+ // We convert to an array of TypeInfo using a library routine since it parses the information
+ // and can handle use of different separators, etc. We cannot use the raw type string
+ // for comparison in the map because of the different separators used.
+ nextDataTypeInfoList =
+ TypeInfoUtils.getTypeInfosFromTypeString(nextDataTypesString);
}
- vectorPartDesc.setConversionFlags(conversionFlags);
-
- vectorPartDesc.setTypeInfos(nextDataTypeInfoList);
+ vectorPartDesc.setDataTypeInfos(nextDataTypeInfoList);
}
vectorTaskColumnInfo.setColumnNames(allColumnNameList);
vectorTaskColumnInfo.setTypeInfos(allTypeInfoList);
vectorTaskColumnInfo.setPartitionColumnCount(partitionColumnCount);
+ vectorTaskColumnInfo.setUseVectorizedInputFileFormat(useVectorizedInputFileFormat);
return true;
}
@@ -1203,7 +1305,23 @@ public class Vectorizer implements PhysicalPlanResolver {
LOG.info("Vectorization is disabled");
return physicalContext;
}
+
isSpark = (HiveConf.getVar(hiveConf, HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("spark"));
+
+ useVectorizedInputFileFormat =
+ HiveConf.getBoolVar(hiveConf,
+ HiveConf.ConfVars.HIVE_VECTORIZATION_USE_VECTORIZED_INPUT_FILE_FORMAT);
+ useVectorDeserialize =
+ HiveConf.getBoolVar(hiveConf,
+ HiveConf.ConfVars.HIVE_VECTORIZATION_USE_VECTOR_DESERIALIZE);
+ useRowDeserialize =
+ HiveConf.getBoolVar(hiveConf,
+ HiveConf.ConfVars.HIVE_VECTORIZATION_USE_ROW_DESERIALIZE);
+
+ isSchemaEvolution =
+ HiveConf.getBoolVar(hiveConf,
+ HiveConf.ConfVars.HIVE_SCHEMA_EVOLUTION);
+
// create dispatcher and graph walker
Dispatcher disp = new VectorizationDispatcher(physicalContext);
TaskGraphWalker ogw = new TaskGraphWalker(disp);
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/plan/BaseWork.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/BaseWork.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/BaseWork.java
index 429a058..20f787b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/BaseWork.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/BaseWork.java
@@ -28,6 +28,7 @@ import java.util.Stack;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.exec.HashTableDummyOperator;
import org.apache.hadoop.hive.ql.exec.Operator;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatchCtx;
@@ -68,6 +69,8 @@ public abstract class BaseWork extends AbstractOperatorDesc {
protected VectorizedRowBatchCtx vectorizedRowBatchCtx;
+ protected boolean useVectorizedInputFileFormat;
+
protected boolean llapMode = false;
protected boolean uberMode = false;
@@ -158,6 +161,9 @@ public abstract class BaseWork extends AbstractOperatorDesc {
// -----------------------------------------------------------------------------------------------
+ /*
+ * The vectorization context for creating the VectorizedRowBatch for the node.
+ */
public VectorizedRowBatchCtx getVectorizedRowBatchCtx() {
return vectorizedRowBatchCtx;
}
@@ -166,6 +172,23 @@ public abstract class BaseWork extends AbstractOperatorDesc {
this.vectorizedRowBatchCtx = vectorizedRowBatchCtx;
}
+ /*
+ * Whether the HiveConf.ConfVars.HIVE_VECTORIZATION_USE_VECTORIZED_INPUT_FILE_FORMAT variable
+ * (hive.vectorized.use.vectorized.input.format) was true when the Vectorizer class evaluated
+ * vectorizing this node.
+ *
+ * When Vectorized Input File Format looks at this flag, it can determine whether it should
+ * operate vectorized or not. In some modes, the node can be vectorized but use row
+ * serialization.
+ */
+ public void setUseVectorizedInputFileFormat(boolean useVectorizedInputFileFormat) {
+ this.useVectorizedInputFileFormat = useVectorizedInputFileFormat;
+ }
+
+ public boolean getUseVectorizedInputFileFormat() {
+ return useVectorizedInputFileFormat;
+ }
+
// -----------------------------------------------------------------------------------------------
/**
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java
index 0851d9e..f034812 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java
@@ -38,6 +38,7 @@ import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
import org.apache.hadoop.hive.ql.exec.Operator;
import org.apache.hadoop.hive.ql.exec.OperatorUtils;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.ql.io.AcidUtils;
import org.apache.hadoop.hive.ql.io.HiveInputFormat;
import org.apache.hadoop.hive.ql.optimizer.physical.BucketingSortingCtx.BucketCol;
@@ -130,6 +131,8 @@ public class MapWork extends BaseWork {
private boolean doSplitsGrouping = true;
+ private VectorizedRowBatch vectorizedRowBatch;
+
// bitsets can't be correctly serialized by Kryo's default serializer
// BitSet::wordsInUse is transient, so force dumping into a lower form
private byte[] includedBuckets;
@@ -635,4 +638,12 @@ public class MapWork extends BaseWork {
// see comment next to the field
this.includedBuckets = includedBuckets.toByteArray();
}
+
+ public void setVectorizedRowBatch(VectorizedRowBatch vectorizedRowBatch) {
+ this.vectorizedRowBatch = vectorizedRowBatch;
+ }
+
+ public VectorizedRowBatch getVectorizedRowBatch() {
+ return vectorizedRowBatch;
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionConversion.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionConversion.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionConversion.java
index 8fe298d..f46581a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionConversion.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionConversion.java
@@ -19,9 +19,6 @@
package org.apache.hadoop.hive.ql.plan;
import java.util.HashMap;
-import java.util.List;
-
-import org.apache.commons.lang.ArrayUtils;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
@@ -33,134 +30,75 @@ import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
*/
public class VectorPartitionConversion {
- private static long serialVersionUID = 1L;
-
- private boolean validConversion;
- private boolean[] resultConversionFlags;
-
- private TypeInfo invalidFromTypeInfo;
- private TypeInfo invalidToTypeInfo;
-
- public boolean getValidConversion() {
- return validConversion;
- }
-
- public boolean[] getResultConversionFlags() {
- return resultConversionFlags;
- }
-
- public TypeInfo getInvalidFromTypeInfo() {
- return invalidFromTypeInfo;
- }
-
- public TypeInfo getInvalidToTypeInfo() {
- return invalidToTypeInfo;
- }
-
// Currently, we only support these no-precision-loss or promotion data type conversions:
- // //
- // Short -> Int IMPLICIT WITH VECTORIZATION
- // Short -> BigInt IMPLICIT WITH VECTORIZATION
- // Int --> BigInt IMPLICIT WITH VECTORIZATION
//
- // CONSIDER ADDING:
- // Float -> Double IMPLICIT WITH VECTORIZATION
- // (Char | VarChar) -> String IMPLICIT WITH VECTORIZATION
+ // TinyInt --> SmallInt
+ // TinyInt --> Int
+ // TinyInt --> BigInt
+ //
+ // SmallInt -> Int
+ // SmallInt -> BigInt
+ //
+ // Int --> BigInt
//
- private static HashMap<PrimitiveCategory, PrimitiveCategory[]> validFromPrimitiveMap =
+ // Float -> Double
+ //
+ // Since we stare Char without padding, it can become a String implicitly.
+ // (Char | VarChar) -> String
+ //
+ private static HashMap<PrimitiveCategory, PrimitiveCategory[]> implicitPrimitiveMap =
new HashMap<PrimitiveCategory, PrimitiveCategory[]>();
static {
- validFromPrimitiveMap.put(
+ implicitPrimitiveMap.put(
+ PrimitiveCategory.BOOLEAN,
+ new PrimitiveCategory[] {
+ PrimitiveCategory.BYTE, PrimitiveCategory.SHORT, PrimitiveCategory.INT, PrimitiveCategory.LONG });
+ implicitPrimitiveMap.put(
+ PrimitiveCategory.BYTE,
+ new PrimitiveCategory[] {
+ PrimitiveCategory.SHORT, PrimitiveCategory.INT, PrimitiveCategory.LONG });
+ implicitPrimitiveMap.put(
PrimitiveCategory.SHORT,
- new PrimitiveCategory[] { PrimitiveCategory.INT, PrimitiveCategory.LONG });
- validFromPrimitiveMap.put(
+ new PrimitiveCategory[] {
+ PrimitiveCategory.INT, PrimitiveCategory.LONG });
+ implicitPrimitiveMap.put(
PrimitiveCategory.INT,
- new PrimitiveCategory[] { PrimitiveCategory.LONG });
+ new PrimitiveCategory[] {
+ PrimitiveCategory.LONG });
+ implicitPrimitiveMap.put(
+ PrimitiveCategory.FLOAT,
+ new PrimitiveCategory[] {
+ PrimitiveCategory.DOUBLE });
+ implicitPrimitiveMap.put(
+ PrimitiveCategory.CHAR,
+ new PrimitiveCategory[] {
+ PrimitiveCategory.STRING });
+ implicitPrimitiveMap.put(
+ PrimitiveCategory.VARCHAR,
+ new PrimitiveCategory[] {
+ PrimitiveCategory.STRING });
}
- private boolean validateOne(TypeInfo fromTypeInfo, TypeInfo toTypeInfo) {
-
- if (fromTypeInfo.equals(toTypeInfo)) {
- return false;
- }
+ public static boolean isImplicitVectorColumnConversion(TypeInfo fromTypeInfo,
+ TypeInfo toTypeInfo) {
if (fromTypeInfo.getCategory() == Category.PRIMITIVE &&
toTypeInfo.getCategory() == Category.PRIMITIVE) {
- PrimitiveCategory fromPrimitiveCategory = ((PrimitiveTypeInfo) fromTypeInfo).getPrimitiveCategory();
- PrimitiveCategory toPrimitiveCategory = ((PrimitiveTypeInfo) toTypeInfo).getPrimitiveCategory();
-
- PrimitiveCategory[] toPrimitiveCategories =
- validFromPrimitiveMap.get(fromPrimitiveCategory);
- if (toPrimitiveCategories == null ||
- !ArrayUtils.contains(toPrimitiveCategories, toPrimitiveCategory)) {
- invalidFromTypeInfo = fromTypeInfo;
- invalidToTypeInfo = toTypeInfo;
-
- // Tell caller a bad one was found.
- validConversion = false;
- return false;
- }
- } else {
- // Ignore checking complex types. Assume they will not be included in the query.
- }
-
- return true;
- }
-
- public void validateConversion(List<TypeInfo> fromTypeInfoList,
- List<TypeInfo> toTypeInfoList) {
-
- final int columnCount = fromTypeInfoList.size();
- resultConversionFlags = new boolean[columnCount];
-
- // The method validateOne will turn this off when invalid conversion is found.
- validConversion = true;
-
- boolean atLeastOneConversion = false;
- for (int i = 0; i < columnCount; i++) {
- TypeInfo fromTypeInfo = fromTypeInfoList.get(i);
- TypeInfo toTypeInfo = toTypeInfoList.get(i);
-
- resultConversionFlags[i] = validateOne(fromTypeInfo, toTypeInfo);
- if (!validConversion) {
- return;
- }
- }
-
- if (atLeastOneConversion) {
- // Leave resultConversionFlags set.
- } else {
- resultConversionFlags = null;
- }
- }
-
- public void validateConversion(TypeInfo[] fromTypeInfos, TypeInfo[] toTypeInfos) {
-
- final int columnCount = fromTypeInfos.length;
- resultConversionFlags = new boolean[columnCount];
-
- // The method validateOne will turn this off when invalid conversion is found.
- validConversion = true;
-
- boolean atLeastOneConversion = false;
- for (int i = 0; i < columnCount; i++) {
- TypeInfo fromTypeInfo = fromTypeInfos[i];
- TypeInfo toTypeInfo = toTypeInfos[i];
-
- resultConversionFlags[i] = validateOne(fromTypeInfo, toTypeInfo);
- if (!validConversion) {
- return;
- }
- if (resultConversionFlags[i]) {
- atLeastOneConversion = true;
+ PrimitiveCategory fromPrimitiveCategory =
+ ((PrimitiveTypeInfo) fromTypeInfo).getPrimitiveCategory();
+ PrimitiveCategory toPrimitiveCategory =
+ ((PrimitiveTypeInfo) toTypeInfo).getPrimitiveCategory();
+ PrimitiveCategory[] toPrimitiveCategories = implicitPrimitiveMap.get(fromPrimitiveCategory);
+ if (toPrimitiveCategories != null) {
+ for (PrimitiveCategory candidatePrimitiveCategory : toPrimitiveCategories) {
+ if (candidatePrimitiveCategory == toPrimitiveCategory) {
+ return true;
+ }
+ }
}
+ return false;
}
-
- if (atLeastOneConversion) {
- // Leave resultConversionFlags set.
- } else {
- resultConversionFlags = null;
- }
+ return false;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionDesc.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionDesc.java
index 45151f2..2b61ec0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/VectorPartitionDesc.java
@@ -39,44 +39,120 @@ public class VectorPartitionDesc {
// No data type conversion check? Assume ALTER TABLE prevented conversions that
// VectorizedInputFileFormat cannot handle...
//
+ // VECTOR_DESERIALIZE:
+ // LAZY_SIMPLE:
+ // Capable of converting on its own.
+ // LAZY_BINARY
+ // Partition schema assumed to match file contents.
+ // Conversion necessary from partition field values to vector columns.
+ // ROW_DESERIALIZE
+ // Partition schema assumed to match file contents.
+ // Conversion necessary from partition field values to vector columns.
+ //
public static enum VectorMapOperatorReadType {
NONE,
- VECTORIZED_INPUT_FILE_FORMAT
+ VECTORIZED_INPUT_FILE_FORMAT,
+ VECTOR_DESERIALIZE,
+ ROW_DESERIALIZE
}
+ public static enum VectorDeserializeType {
+ NONE,
+ LAZY_SIMPLE,
+ LAZY_BINARY
+ }
private final VectorMapOperatorReadType vectorMapOperatorReadType;
+ private final VectorDeserializeType vectorDeserializeType;
- private final boolean needsDataTypeConversionCheck;
+ private final String rowDeserializerClassName;
+ private final String inputFileFormatClassName;
- private boolean[] conversionFlags;
+ boolean isInputFileFormatSelfDescribing;
- private TypeInfo[] typeInfos;
+ private TypeInfo[] dataTypeInfos;
- private VectorPartitionDesc(VectorMapOperatorReadType vectorMapOperatorReadType,
- boolean needsDataTypeConversionCheck) {
+ private VectorPartitionDesc(String inputFileFormatClassName,
+ boolean isInputFileFormatSelfDescribing, VectorMapOperatorReadType vectorMapOperatorReadType) {
this.vectorMapOperatorReadType = vectorMapOperatorReadType;
- this.needsDataTypeConversionCheck = needsDataTypeConversionCheck;
+ this.vectorDeserializeType = VectorDeserializeType.NONE;
+ this.inputFileFormatClassName = inputFileFormatClassName;
+ rowDeserializerClassName = null;
+ this.isInputFileFormatSelfDescribing = isInputFileFormatSelfDescribing;
+ dataTypeInfos = null;
+ }
- conversionFlags = null;
- typeInfos = null;
+ /**
+ * Create a VECTOR_DESERIALIZE flavor object.
+ * @param vectorMapOperatorReadType
+ * @param vectorDeserializeType
+ * @param needsDataTypeConversionCheck
+ */
+ private VectorPartitionDesc(String inputFileFormatClassName,
+ VectorDeserializeType vectorDeserializeType) {
+ this.vectorMapOperatorReadType = VectorMapOperatorReadType.VECTOR_DESERIALIZE;
+ this.vectorDeserializeType = vectorDeserializeType;
+ this.inputFileFormatClassName = inputFileFormatClassName;
+ rowDeserializerClassName = null;
+ isInputFileFormatSelfDescribing = false;
+ dataTypeInfos = null;
}
- public static VectorPartitionDesc createVectorizedInputFileFormat() {
- return new VectorPartitionDesc(VectorMapOperatorReadType.VECTORIZED_INPUT_FILE_FORMAT, true);
+ /**
+ * Create a ROW_DESERIALIZE flavor object.
+ * @param rowDeserializerClassName
+ * @param inputFileFormatClassName
+ */
+ private VectorPartitionDesc(String inputFileFormatClassName,
+ boolean isInputFileFormatSelfDescribing, String rowDeserializerClassName) {
+ this.vectorMapOperatorReadType = VectorMapOperatorReadType.ROW_DESERIALIZE;
+ this.vectorDeserializeType = VectorDeserializeType.NONE;
+ this.inputFileFormatClassName = inputFileFormatClassName;
+ this.rowDeserializerClassName = rowDeserializerClassName;
+ this.isInputFileFormatSelfDescribing = isInputFileFormatSelfDescribing;
+ dataTypeInfos = null;
}
+ public static VectorPartitionDesc createVectorizedInputFileFormat(String inputFileFormatClassName,
+ boolean isInputFileFormatSelfDescribing) {
+ return new VectorPartitionDesc(
+ inputFileFormatClassName,
+ isInputFileFormatSelfDescribing,
+ VectorMapOperatorReadType.VECTORIZED_INPUT_FILE_FORMAT);
+ }
+
+ public static VectorPartitionDesc createVectorDeserialize(String inputFileFormatClassName,
+ VectorDeserializeType vectorDeserializeType) {
+ return new VectorPartitionDesc(inputFileFormatClassName, vectorDeserializeType);
+ }
+
+ public static VectorPartitionDesc createRowDeserialize(String inputFileFormatClassName,
+ boolean isInputFileFormatSelfDescribing, String rowDeserializerClassName) {
+ return new VectorPartitionDesc(rowDeserializerClassName, isInputFileFormatSelfDescribing,
+ inputFileFormatClassName);
+ }
@Override
public VectorPartitionDesc clone() {
- VectorPartitionDesc result =
- new VectorPartitionDesc(vectorMapOperatorReadType,
- needsDataTypeConversionCheck);
- result.conversionFlags =
- (conversionFlags == null ? null :
- Arrays.copyOf(conversionFlags, conversionFlags.length));
- result.typeInfos = Arrays.copyOf(typeInfos, typeInfos.length);
+ VectorPartitionDesc result;
+ switch (vectorMapOperatorReadType) {
+ case VECTORIZED_INPUT_FILE_FORMAT:
+ result = new VectorPartitionDesc(inputFileFormatClassName, isInputFileFormatSelfDescribing,
+ vectorMapOperatorReadType);
+ break;
+ case VECTOR_DESERIALIZE:
+ result = new VectorPartitionDesc(inputFileFormatClassName, vectorDeserializeType);
+ break;
+ case ROW_DESERIALIZE:
+ result = new VectorPartitionDesc(inputFileFormatClassName, isInputFileFormatSelfDescribing,
+ rowDeserializerClassName);
+ break;
+ default:
+ throw new RuntimeException("Unexpected vector map operator read type " + vectorMapOperatorReadType.name());
+ }
+ result.dataTypeInfos = Arrays.copyOf(dataTypeInfos, dataTypeInfos.length);
+
return result;
}
@@ -84,27 +160,55 @@ public class VectorPartitionDesc {
return vectorMapOperatorReadType;
}
- public boolean getNeedsDataTypeConversionCheck() {
- return needsDataTypeConversionCheck;
+ public String getInputFileFormatClassName() {
+ return inputFileFormatClassName;
+ }
+
+ public VectorDeserializeType getVectorDeserializeType() {
+ return vectorDeserializeType;
}
- public void setConversionFlags(boolean[] conversionFlags) {
- this.conversionFlags = conversionFlags;
+ public String getRowDeserializerClassName() {
+ return rowDeserializerClassName;
}
- public boolean[] getConversionFlags() {
- return conversionFlags;
+ public boolean getIsInputFileFormatSelfDescribing() {
+ return isInputFileFormatSelfDescribing;
}
- public TypeInfo[] getTypeInfos() {
- return typeInfos;
+ public TypeInfo[] getDataTypeInfos() {
+ return dataTypeInfos;
}
- public void setTypeInfos(List<TypeInfo> typeInfoList) {
- typeInfos = typeInfoList.toArray(new TypeInfo[0]);
+ public void setDataTypeInfos(List<TypeInfo> dataTypeInfoList) {
+ dataTypeInfos = dataTypeInfoList.toArray(new TypeInfo[0]);
}
- public int getNonPartColumnCount() {
- return typeInfos.length;
+ public int getDataColumnCount() {
+ return dataTypeInfos.length;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("vector map operator read type ");
+ sb.append(vectorMapOperatorReadType.name());
+ sb.append(", input file format class name ");
+ sb.append(inputFileFormatClassName);
+ switch (vectorMapOperatorReadType) {
+ case VECTORIZED_INPUT_FILE_FORMAT:
+ break;
+ case VECTOR_DESERIALIZE:
+ sb.append(", deserialize type ");
+ sb.append(vectorDeserializeType.name());
+ break;
+ case ROW_DESERIALIZE:
+ sb.append(", deserializer class name ");
+ sb.append(rowDeserializerClassName);
+ break;
+ default:
+ throw new RuntimeException("Unexpected vector map operator read type " + vectorMapOperatorReadType.name());
+ }
+ return sb.toString();
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorRowObject.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorRowObject.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorRowObject.java
index a5946d1..959a2af 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorRowObject.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorRowObject.java
@@ -34,13 +34,13 @@ import junit.framework.TestCase;
*/
public class TestVectorRowObject extends TestCase {
- void examineBatch(VectorizedRowBatch batch, VectorExtractRowSameBatch vectorExtractRow,
+ void examineBatch(VectorizedRowBatch batch, VectorExtractRow vectorExtractRow,
Object[][] randomRows, int firstRandomRowIndex ) {
int rowSize = vectorExtractRow.getCount();
Object[] row = new Object[rowSize];
for (int i = 0; i < batch.size; i++) {
- vectorExtractRow.extractRow(i, row);
+ vectorExtractRow.extractRow(batch, i, row);
Object[] expectedRow = randomRows[firstRandomRowIndex + i];
for (int c = 0; c < rowSize; c++) {
if (!row[c].equals(expectedRow[c])) {
@@ -67,20 +67,18 @@ public class TestVectorRowObject extends TestCase {
cv.noNulls = false;
}
- VectorAssignRowSameBatch vectorAssignRow = new VectorAssignRowSameBatch();
+ VectorAssignRow vectorAssignRow = new VectorAssignRow();
vectorAssignRow.init(source.typeNames());
- vectorAssignRow.setOneBatch(batch);
-
- VectorExtractRowSameBatch vectorExtractRow = new VectorExtractRowSameBatch();
+
+ VectorExtractRow vectorExtractRow = new VectorExtractRow();
vectorExtractRow.init(source.typeNames());
- vectorExtractRow.setOneBatch(batch);
Object[][] randomRows = source.randomRows(100000);
int firstRandomRowIndex = 0;
for (int i = 0; i < randomRows.length; i++) {
Object[] row = randomRows[i];
- vectorAssignRow.assignRow(batch.size, row);
+ vectorAssignRow.assignRow(batch, batch.size, row);
batch.size++;
if (batch.size == batch.DEFAULT_SIZE) {
examineBatch(batch, vectorExtractRow, randomRows, firstRandomRowIndex);
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSerDeRow.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSerDeRow.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSerDeRow.java
index 7c0c8d1..e37d2bf 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSerDeRow.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSerDeRow.java
@@ -59,6 +59,7 @@ import org.apache.hadoop.hive.serde2.lazybinary.fast.LazyBinarySerializeWrite;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
@@ -100,7 +101,7 @@ public class TestVectorSerDeRow extends TestCase {
switch (primitiveCategory) {
case BOOLEAN:
{
- Boolean value = deserializeRead.readBoolean();
+ Boolean value = deserializeRead.currentBoolean;
BooleanWritable expectedWritable = (BooleanWritable) expected;
if (!value.equals(expectedWritable.get())) {
TestCase.fail("Boolean field mismatch (expected " + expected + " found " + value + ")");
@@ -109,7 +110,7 @@ public class TestVectorSerDeRow extends TestCase {
break;
case BYTE:
{
- Byte value = deserializeRead.readByte();
+ Byte value = deserializeRead.currentByte;
ByteWritable expectedWritable = (ByteWritable) expected;
if (!value.equals(expectedWritable.get())) {
TestCase.fail("Byte field mismatch (expected " + (int) expected + " found " + (int) value + ")");
@@ -118,7 +119,7 @@ public class TestVectorSerDeRow extends TestCase {
break;
case SHORT:
{
- Short value = deserializeRead.readShort();
+ Short value = deserializeRead.currentShort;
ShortWritable expectedWritable = (ShortWritable) expected;
if (!value.equals(expectedWritable.get())) {
TestCase.fail("Short field mismatch (expected " + expected + " found " + value + ")");
@@ -127,7 +128,7 @@ public class TestVectorSerDeRow extends TestCase {
break;
case INT:
{
- Integer value = deserializeRead.readInt();
+ Integer value = deserializeRead.currentInt;
IntWritable expectedWritable = (IntWritable) expected;
if (!value.equals(expectedWritable.get())) {
TestCase.fail("Int field mismatch (expected " + expected + " found " + value + ")");
@@ -136,7 +137,7 @@ public class TestVectorSerDeRow extends TestCase {
break;
case LONG:
{
- Long value = deserializeRead.readLong();
+ Long value = deserializeRead.currentLong;
LongWritable expectedWritable = (LongWritable) expected;
if (!value.equals(expectedWritable.get())) {
TestCase.fail("Long field mismatch (expected " + expected + " found " + value + ")");
@@ -145,18 +146,16 @@ public class TestVectorSerDeRow extends TestCase {
break;
case DATE:
{
- DeserializeRead.ReadDateResults readDateResults = deserializeRead.createReadDateResults();
- deserializeRead.readDate(readDateResults);
- Date value = readDateResults.getDate();
+ DateWritable value = deserializeRead.currentDateWritable;
DateWritable expectedWritable = (DateWritable) expected;
- if (!value.equals(expectedWritable.get())) {
+ if (!value.equals(expectedWritable)) {
TestCase.fail("Date field mismatch (expected " + expected.toString() + " found " + value.toString() + ")");
}
}
break;
case FLOAT:
{
- Float value = deserializeRead.readFloat();
+ Float value = deserializeRead.currentFloat;
FloatWritable expectedWritable = (FloatWritable) expected;
if (!value.equals(expectedWritable.get())) {
TestCase.fail("Float field mismatch (expected " + expected + " found " + value + ")");
@@ -165,7 +164,7 @@ public class TestVectorSerDeRow extends TestCase {
break;
case DOUBLE:
{
- Double value = deserializeRead.readDouble();
+ Double value = deserializeRead.currentDouble;
DoubleWritable expectedWritable = (DoubleWritable) expected;
if (!value.equals(expectedWritable.get())) {
TestCase.fail("Double field mismatch (expected " + expected + " found " + value + ")");
@@ -173,57 +172,69 @@ public class TestVectorSerDeRow extends TestCase {
}
break;
case STRING:
- {
- DeserializeRead.ReadStringResults readStringResults = deserializeRead.createReadStringResults();
- deserializeRead.readString(readStringResults);
-
- char[] charsBuffer = new char[readStringResults.bytes.length];
- for (int c = 0; c < charsBuffer.length; c++) {
- charsBuffer[c] = (char) (readStringResults.bytes[c] & 0xFF);
- }
-
- byte[] stringBytes = Arrays.copyOfRange(readStringResults.bytes, readStringResults.start, readStringResults.start + readStringResults.length);
-
- char[] charsRange = new char[stringBytes.length];
- for (int c = 0; c < charsRange.length; c++) {
- charsRange[c] = (char) (stringBytes[c] & 0xFF);
- }
-
- Text text = new Text(stringBytes);
- String value = text.toString();
- Text expectedWritable = (Text) expected;
- if (!value.equals(expectedWritable.toString())) {
- TestCase.fail("String field mismatch (expected '" + expectedWritable.toString() + "' found '" + value + "')");
- }
- }
- break;
case CHAR:
- {
- DeserializeRead.ReadHiveCharResults readHiveCharResults = deserializeRead.createReadHiveCharResults();
- deserializeRead.readHiveChar(readHiveCharResults);
- HiveChar hiveChar = readHiveCharResults.getHiveChar();
- HiveCharWritable expectedWritable = (HiveCharWritable) expected;
- if (!hiveChar.equals(expectedWritable.getHiveChar())) {
- TestCase.fail("Char field mismatch (expected '" + expectedWritable.getHiveChar() + "' found '" + hiveChar + "')");
- }
- }
- break;
case VARCHAR:
+ case BINARY:
{
- DeserializeRead.ReadHiveVarcharResults readHiveVarcharResults = deserializeRead.createReadHiveVarcharResults();
- deserializeRead.readHiveVarchar(readHiveVarcharResults);
- HiveVarchar hiveVarchar = readHiveVarcharResults.getHiveVarchar();
- HiveVarcharWritable expectedWritable = (HiveVarcharWritable) expected;
- if (!hiveVarchar.equals(expectedWritable.getHiveVarchar())) {
- TestCase.fail("Varchar field mismatch (expected '" + expectedWritable.getHiveVarchar() + "' found '" + hiveVarchar + "')");
+ byte[] stringBytes =
+ Arrays.copyOfRange(
+ deserializeRead.currentBytes,
+ deserializeRead.currentBytesStart,
+ deserializeRead.currentBytesStart + deserializeRead.currentBytesLength);
+
+ Text text = new Text(stringBytes);
+ String string = text.toString();
+
+ switch (primitiveCategory) {
+ case STRING:
+ {
+ Text expectedWritable = (Text) expected;
+ if (!string.equals(expectedWritable.toString())) {
+ TestCase.fail("String field mismatch (expected '" + expectedWritable.toString() + "' found '" + string + "')");
+ }
+ }
+ break;
+ case CHAR:
+ {
+ HiveChar hiveChar = new HiveChar(string, ((CharTypeInfo) primitiveTypeInfo).getLength());
+
+ HiveCharWritable expectedWritable = (HiveCharWritable) expected;
+ if (!hiveChar.equals(expectedWritable.getHiveChar())) {
+ TestCase.fail("Char field mismatch (expected '" + expectedWritable.getHiveChar() + "' found '" + hiveChar + "')");
+ }
+ }
+ break;
+ case VARCHAR:
+ {
+ HiveVarchar hiveVarchar = new HiveVarchar(string, ((VarcharTypeInfo) primitiveTypeInfo).getLength());
+ HiveVarcharWritable expectedWritable = (HiveVarcharWritable) expected;
+ if (!hiveVarchar.equals(expectedWritable.getHiveVarchar())) {
+ TestCase.fail("Varchar field mismatch (expected '" + expectedWritable.getHiveVarchar() + "' found '" + hiveVarchar + "')");
+ }
+ }
+ break;
+ case BINARY:
+ {
+ BytesWritable expectedWritable = (BytesWritable) expected;
+ if (stringBytes.length != expectedWritable.getLength()){
+ TestCase.fail("Byte Array field mismatch (expected " + expected + " found " + stringBytes + ")");
+ }
+ byte[] expectedBytes = expectedWritable.getBytes();
+ for (int b = 0; b < stringBytes.length; b++) {
+ if (stringBytes[b] != expectedBytes[b]) {
+ TestCase.fail("Byte Array field mismatch (expected " + expected + " found " + stringBytes + ")");
+ }
+ }
+ }
+ break;
+ default:
+ throw new HiveException("Unexpected primitive category " + primitiveCategory);
}
}
break;
case DECIMAL:
{
- DeserializeRead.ReadDecimalResults readDecimalResults = deserializeRead.createReadDecimalResults();
- deserializeRead.readHiveDecimal(readDecimalResults);
- HiveDecimal value = readDecimalResults.getHiveDecimal();
+ HiveDecimal value = deserializeRead.currentHiveDecimalWritable.getHiveDecimal();
if (value == null) {
TestCase.fail("Decimal field evaluated to NULL");
}
@@ -238,9 +249,7 @@ public class TestVectorSerDeRow extends TestCase {
break;
case TIMESTAMP:
{
- DeserializeRead.ReadTimestampResults readTimestampResults = deserializeRead.createReadTimestampResults();
- deserializeRead.readTimestamp(readTimestampResults);
- Timestamp value = readTimestampResults.getTimestamp();
+ Timestamp value = deserializeRead.currentTimestampWritable.getTimestamp();
TimestampWritable expectedWritable = (TimestampWritable) expected;
if (!value.equals(expectedWritable.getTimestamp())) {
TestCase.fail("Timestamp field mismatch (expected " + expectedWritable.getTimestamp() + " found " + value.toString() + ")");
@@ -249,9 +258,7 @@ public class TestVectorSerDeRow extends TestCase {
break;
case INTERVAL_YEAR_MONTH:
{
- DeserializeRead.ReadIntervalYearMonthResults readIntervalYearMonthResults = deserializeRead.createReadIntervalYearMonthResults();
- deserializeRead.readIntervalYearMonth(readIntervalYearMonthResults);
- HiveIntervalYearMonth value = readIntervalYearMonthResults.getHiveIntervalYearMonth();
+ HiveIntervalYearMonth value = deserializeRead.currentHiveIntervalYearMonthWritable.getHiveIntervalYearMonth();
HiveIntervalYearMonthWritable expectedWritable = (HiveIntervalYearMonthWritable) expected;
HiveIntervalYearMonth expectedValue = expectedWritable.getHiveIntervalYearMonth();
if (!value.equals(expectedValue)) {
@@ -261,9 +268,7 @@ public class TestVectorSerDeRow extends TestCase {
break;
case INTERVAL_DAY_TIME:
{
- DeserializeRead.ReadIntervalDayTimeResults readIntervalDayTimeResults = deserializeRead.createReadIntervalDayTimeResults();
- deserializeRead.readIntervalDayTime(readIntervalDayTimeResults);
- HiveIntervalDayTime value = readIntervalDayTimeResults.getHiveIntervalDayTime();
+ HiveIntervalDayTime value = deserializeRead.currentHiveIntervalDayTimeWritable.getHiveIntervalDayTime();
HiveIntervalDayTimeWritable expectedWritable = (HiveIntervalDayTimeWritable) expected;
HiveIntervalDayTime expectedValue = expectedWritable.getHiveIntervalDayTime();
if (!value.equals(expectedValue)) {
@@ -271,26 +276,10 @@ public class TestVectorSerDeRow extends TestCase {
}
}
break;
- case BINARY:
- {
- DeserializeRead.ReadBinaryResults readBinaryResults = deserializeRead.createReadBinaryResults();
- deserializeRead.readBinary(readBinaryResults);
- byte[] byteArray = Arrays.copyOfRange(readBinaryResults.bytes, readBinaryResults.start, readBinaryResults.start + readBinaryResults.length);
- BytesWritable expectedWritable = (BytesWritable) expected;
- if (byteArray.length != expectedWritable.getLength()){
- TestCase.fail("Byte Array field mismatch (expected " + expected + " found " + byteArray + ")");
- }
- byte[] expectedBytes = expectedWritable.getBytes();
- for (int b = 0; b < byteArray.length; b++) {
- if (byteArray[b] != expectedBytes[b]) {
- TestCase.fail("Byte Array field mismatch (expected " + expected + " found " + byteArray + ")");
- }
- }
- }
- break;
- default:
- throw new HiveException("Unexpected primitive category " + primitiveCategory);
- }
+
+ default:
+ throw new HiveException("Unexpected primitive category " + primitiveCategory);
+ }
}
deserializeRead.extraFieldsCheck();
TestCase.assertTrue(!deserializeRead.readBeyondConfiguredFieldsWarned());
@@ -331,9 +320,8 @@ public class TestVectorSerDeRow extends TestCase {
batchContext.init(source.rowStructObjectInspector(), emptyScratchTypeNames);
VectorizedRowBatch batch = batchContext.createVectorizedRowBatch();
- VectorAssignRowSameBatch vectorAssignRow = new VectorAssignRowSameBatch();
+ VectorAssignRow vectorAssignRow = new VectorAssignRow();
vectorAssignRow.init(source.typeNames());
- vectorAssignRow.setOneBatch(batch);
int fieldCount = source.typeNames().size();
DeserializeRead deserializeRead;
@@ -369,7 +357,7 @@ public class TestVectorSerDeRow extends TestCase {
for (int i = 0; i < randomRows.length; i++) {
Object[] row = randomRows[i];
- vectorAssignRow.assignRow(batch.size, row);
+ vectorAssignRow.assignRow(batch, batch.size, row);
batch.size++;
if (batch.size == batch.DEFAULT_SIZE) {
serializeBatch(batch, vectorSerializeRow, deserializeRead, source, randomRows, firstRandomRowIndex);
@@ -382,13 +370,13 @@ public class TestVectorSerDeRow extends TestCase {
}
}
- void examineBatch(VectorizedRowBatch batch, VectorExtractRowSameBatch vectorExtractRow,
+ void examineBatch(VectorizedRowBatch batch, VectorExtractRow vectorExtractRow,
Object[][] randomRows, int firstRandomRowIndex ) {
int rowSize = vectorExtractRow.getCount();
Object[] row = new Object[rowSize];
for (int i = 0; i < batch.size; i++) {
- vectorExtractRow.extractRow(i, row);
+ vectorExtractRow.extractRow(batch, i, row);
Object[] expectedRow = randomRows[firstRandomRowIndex + i];
@@ -603,9 +591,8 @@ public class TestVectorSerDeRow extends TestCase {
cv.noNulls = false;
}
- VectorExtractRowSameBatch vectorExtractRow = new VectorExtractRowSameBatch();
+ VectorExtractRow vectorExtractRow = new VectorExtractRow();
vectorExtractRow.init(source.typeNames());
- vectorExtractRow.setOneBatch(batch);
Object[][] randomRows = source.randomRows(100000);
int firstRandomRowIndex = 0;
@@ -614,7 +601,7 @@ public class TestVectorSerDeRow extends TestCase {
Output output = serializeRow(row, source, serializeWrite);
vectorDeserializeRow.setBytes(output.getData(), 0, output.getLength());
- vectorDeserializeRow.deserializeByValue(batch, batch.size);
+ vectorDeserializeRow.deserialize(batch, batch.size);
batch.size++;
if (batch.size == batch.DEFAULT_SIZE) {
examineBatch(batch, vectorExtractRow, randomRows, firstRandomRowIndex);
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestInputOutputFormat.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestInputOutputFormat.java b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestInputOutputFormat.java
index 85923a8..4eb0249 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestInputOutputFormat.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestInputOutputFormat.java
@@ -80,6 +80,7 @@ import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.plan.MapWork;
import org.apache.hadoop.hive.ql.plan.PartitionDesc;
import org.apache.hadoop.hive.ql.plan.TableDesc;
+import org.apache.hadoop.hive.ql.plan.VectorPartitionDesc;
import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.ColumnProjectionUtils;
import org.apache.hadoop.hive.serde2.SerDe;
@@ -1700,7 +1701,10 @@ public class TestInputOutputFormat {
Utilities.clearWorkMap(conf);
conf.set("hive.exec.plan", workDir.toString());
conf.set("mapred.job.tracker", "local");
- conf.set("hive.vectorized.execution.enabled", Boolean.toString(isVectorized));
+ String isVectorizedString = Boolean.toString(isVectorized);
+ conf.set("hive.vectorized.execution.enabled", isVectorizedString);
+ conf.set(Utilities.VECTOR_MODE, isVectorizedString);
+ conf.set(Utilities.USE_VECTORIZED_INPUT_FILE_FORMAT, isVectorizedString);
conf.set("fs.mock.impl", MockFileSystem.class.getName());
conf.set("mapred.mapper.class", ExecMapper.class.getName());
Path root = new Path(warehouseDir, tableName);
@@ -1767,6 +1771,10 @@ public class TestInputOutputFormat {
LinkedHashMap<String, String> partSpec =
new LinkedHashMap<String, String>();
PartitionDesc part = new PartitionDesc(tbl, partSpec);
+ if (isVectorized) {
+ part.setVectorPartitionDesc(
+ VectorPartitionDesc.createVectorizedInputFileFormat("MockInputFileFormatClassName", false));
+ }
partMap.put(partPath[p], part);
}
mapWork.setPathToAliases(aliasMap);
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/avro_schema_evolution_native.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/avro_schema_evolution_native.q b/ql/src/test/queries/clientpositive/avro_schema_evolution_native.q
index b32e1ec..efeb167 100644
--- a/ql/src/test/queries/clientpositive/avro_schema_evolution_native.q
+++ b/ql/src/test/queries/clientpositive/avro_schema_evolution_native.q
@@ -1,3 +1,4 @@
+set hive.cli.print.header=true;
set hive.mapred.mode=nonstrict;
-- SORT_QUERY_RESULTS
-- Verify that table scans work with partitioned Avro tables
@@ -19,6 +20,7 @@ STORED AS AVRO;
SET hive.exec.dynamic.partition.mode=nonstrict;
INSERT OVERWRITE TABLE episodes_partitioned PARTITION (doctor_pt)
SELECT title, air_date, doctor, doctor as doctor_pt FROM episodes;
+DESCRIBE FORMATTED episodes_partitioned;
ALTER TABLE episodes_partitioned
SET SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
@@ -51,7 +53,12 @@ SERDEPROPERTIES ('avro.schema.literal'='{
}
]
}');
+DESCRIBE FORMATTED episodes_partitioned;
+set hive.fetch.task.conversion=more;
+
+EXPLAIN
+SELECT * FROM episodes_partitioned WHERE doctor_pt > 6;
SELECT * FROM episodes_partitioned WHERE doctor_pt > 6;
@@ -60,4 +67,15 @@ SELECT * FROM episodes_partitioned ORDER BY air_date LIMIT 5;
-- Fetch w/filter to specific partition
SELECT * FROM episodes_partitioned WHERE doctor_pt = 6;
-- Fetch w/non-existent partition
+SELECT * FROM episodes_partitioned WHERE doctor_pt = 7 LIMIT 5;
+
+set hive.fetch.task.conversion=none;
+
+EXPLAIN
+SELECT * FROM episodes_partitioned WHERE doctor_pt > 6;
+
+SELECT * FROM episodes_partitioned WHERE doctor_pt > 6;
+
+SELECT * FROM episodes_partitioned ORDER BY air_date LIMIT 5;
+SELECT * FROM episodes_partitioned WHERE doctor_pt = 6;
SELECT * FROM episodes_partitioned WHERE doctor_pt = 7 LIMIT 5;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/bucket_groupby.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/bucket_groupby.q b/ql/src/test/queries/clientpositive/bucket_groupby.q
index ea35bd7..a36c79d 100644
--- a/ql/src/test/queries/clientpositive/bucket_groupby.q
+++ b/ql/src/test/queries/clientpositive/bucket_groupby.q
@@ -1,3 +1,4 @@
+SET hive.vectorized.execution.enabled=false;
set hive.mapred.mode=nonstrict;
create table clustergroupby(key string, value string) partitioned by(ds string);
describe extended clustergroupby;
@@ -6,16 +7,16 @@ alter table clustergroupby clustered by (key) into 1 buckets;
insert overwrite table clustergroupby partition (ds='100') select key, value from src sort by key;
explain
-select key, count(1) from clustergroupby where ds='100' group by key limit 10;
-select key, count(1) from clustergroupby where ds='100' group by key limit 10;
+select key, count(1) from clustergroupby where ds='100' group by key order by key limit 10;
+select key, count(1) from clustergroupby where ds='100' group by key order by key limit 10;
describe extended clustergroupby;
insert overwrite table clustergroupby partition (ds='101') select key, value from src distribute by key;
--normal--
explain
-select key, count(1) from clustergroupby where ds='101' group by key limit 10;
-select key, count(1) from clustergroupby where ds='101' group by key limit 10;
+select key, count(1) from clustergroupby where ds='101' group by key order by key limit 10;
+select key, count(1) from clustergroupby where ds='101' group by key order by key limit 10;
--function--
explain
@@ -27,13 +28,13 @@ select abs(length(key)), count(1) from clustergroupby where ds='101' group by a
--constant--
explain
-select key, count(1) from clustergroupby where ds='101' group by key,3 limit 10;
-select key, count(1) from clustergroupby where ds='101' group by key,3 limit 10;
+select key, count(1) from clustergroupby where ds='101' group by key,3 order by key,3 limit 10;
+select key, count(1) from clustergroupby where ds='101' group by key,3 order by key,3 limit 10;
--subquery--
explain
-select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key limit 10;
-select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key limit 10;
+select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key order by key limit 10;
+select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key order by key limit 10;
explain
select key, count(1) from clustergroupby group by key;
@@ -52,11 +53,11 @@ describe extended clustergroupby;
insert overwrite table clustergroupby partition (ds='102') select key, value from src distribute by value sort by key, value;
explain
-select key, count(1) from clustergroupby where ds='102' group by key limit 10;
-select key, count(1) from clustergroupby where ds='102' group by key limit 10;
+select key, count(1) from clustergroupby where ds='102' group by key order by key limit 10;
+select key, count(1) from clustergroupby where ds='102' group by key order by key limit 10;
explain
-select value, count(1) from clustergroupby where ds='102' group by value limit 10;
-select value, count(1) from clustergroupby where ds='102' group by value limit 10;
+select value, count(1) from clustergroupby where ds='102' group by value order by value limit 10;
+select value, count(1) from clustergroupby where ds='102' group by value order by value limit 10;
explain
select key, count(1) from clustergroupby where ds='102' group by key, value limit 10;
select key, count(1) from clustergroupby where ds='102' group by key, value limit 10;
@@ -69,8 +70,8 @@ alter table clustergroupby clustered by (value, key) sorted by (key) into 1 buck
describe extended clustergroupby;
insert overwrite table clustergroupby partition (ds='103') select key, value from src distribute by value, key sort by key;
explain
-select key, count(1) from clustergroupby where ds='103' group by key limit 10;
-select key, count(1) from clustergroupby where ds='103' group by key limit 10;
+select key, count(1) from clustergroupby where ds='103' group by key order by key limit 10;
+select key, count(1) from clustergroupby where ds='103' group by key order by key limit 10;
explain
-select key, count(1) from clustergroupby where ds='103' group by value, key limit 10;
-select key, count(1) from clustergroupby where ds='103' group by value, key limit 10;
+select key, count(1) from clustergroupby where ds='103' group by value, key order by key limit 10;
+select key, count(1) from clustergroupby where ds='103' group by value, key order by key limit 10;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/groupby_sort_10.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/groupby_sort_10.q b/ql/src/test/queries/clientpositive/groupby_sort_10.q
index 910a272..3517693 100644
--- a/ql/src/test/queries/clientpositive/groupby_sort_10.q
+++ b/ql/src/test/queries/clientpositive/groupby_sort_10.q
@@ -2,6 +2,8 @@ set hive.mapred.mode=nonstrict;
set hive.exec.reducers.max = 10;
set hive.map.groupby.sorted=true;
+-- SORT_QUERY_RESULTS
+
CREATE TABLE T1(key STRING, val STRING) PARTITIONED BY (ds string)
CLUSTERED BY (key) SORTED BY (key) INTO 2 BUCKETS;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_part.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_part.q b/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_part.q
index fc935d5..b0e57fb 100644
--- a/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_part.q
+++ b/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_part.q
@@ -4,6 +4,9 @@ set hive.support.concurrency=true;
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
SET hive.exec.schema.evolution=false;
SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=true;
+SET hive.vectorized.use.vector.serde.deserialize=false;
+SET hive.vectorized.use.row.serde.deserialize=false;
set hive.fetch.task.conversion=none;
set hive.exec.dynamic.partition.mode=nonstrict;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_table.q b/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_table.q
index e49a0f3..ca6822c 100644
--- a/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_table.q
+++ b/ql/src/test/queries/clientpositive/schema_evol_orc_acidvec_mapwork_table.q
@@ -3,6 +3,9 @@ set hive.support.concurrency=true;
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
SET hive.exec.schema.evolution=false;
SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=true;
+SET hive.vectorized.use.vector.serde.deserialize=false;
+SET hive.vectorized.use.row.serde.deserialize=false;
set hive.fetch.task.conversion=none;
set hive.exec.dynamic.partition.mode=nonstrict;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_orc_nonvec_mapwork_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_orc_nonvec_mapwork_table.q b/ql/src/test/queries/clientpositive/schema_evol_orc_nonvec_mapwork_table.q
index 6c256ea..f05f02a 100644
--- a/ql/src/test/queries/clientpositive/schema_evol_orc_nonvec_mapwork_table.q
+++ b/ql/src/test/queries/clientpositive/schema_evol_orc_nonvec_mapwork_table.q
@@ -1,7 +1,5 @@
set hive.cli.print.header=true;
set hive.support.concurrency=true;
-set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
-
SET hive.vectorized.execution.enabled=false;
set hive.fetch.task.conversion=none;
set hive.exec.dynamic.partition.mode=nonstrict;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_part.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_part.q b/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_part.q
index 30b19bb..da726c5 100644
--- a/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_part.q
+++ b/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_part.q
@@ -2,6 +2,9 @@ set hive.mapred.mode=nonstrict;
set hive.cli.print.header=true;
SET hive.exec.schema.evolution=true;
SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=true;
+SET hive.vectorized.use.vector.serde.deserialize=false;
+SET hive.vectorized.use.row.serde.deserialize=false;
set hive.fetch.task.conversion=more;
set hive.exec.dynamic.partition.mode=nonstrict;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_table.q b/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_table.q
index 6df2095..393967f 100644
--- a/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_table.q
+++ b/ql/src/test/queries/clientpositive/schema_evol_orc_vec_mapwork_table.q
@@ -1,8 +1,9 @@
set hive.cli.print.header=true;
-set hive.support.concurrency=true;
-set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
-
+SET hive.exec.schema.evolution=true;
SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=true;
+SET hive.vectorized.use.vector.serde.deserialize=false;
+SET hive.vectorized.use.row.serde.deserialize=false;
set hive.fetch.task.conversion=none;
set hive.exec.dynamic.partition.mode=nonstrict;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_fetchwork_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_fetchwork_table.q b/ql/src/test/queries/clientpositive/schema_evol_text_fetchwork_table.q
deleted file mode 100644
index 44f7264..0000000
--- a/ql/src/test/queries/clientpositive/schema_evol_text_fetchwork_table.q
+++ /dev/null
@@ -1,56 +0,0 @@
-set hive.cli.print.header=true;
-set hive.support.concurrency=true;
-set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
-SET hive.exec.schema.evolution=true;
-SET hive.vectorized.execution.enabled=false;
-set hive.fetch.task.conversion=none;
-set hive.exec.dynamic.partition.mode=nonstrict;
-
-
--- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE;
-
-insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original');
-
--- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string);
-
-insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty');
-
-insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred');
-
--- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1;
-select a,b,c from table1;
-select a,b,c,d from table1;
-select a,c,d from table1;
-select a,d from table1;
-select c from table1;
-select d from table1;
-
---
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE;
-
-insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original');
-
--- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int;
-
-insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new');
-
-insert into table table2 values(5000, 'new'),(90000, 'new');
-
-select a,b from table2;
-
-
-DROP TABLE table1;
-DROP TABLE table2;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_mapwork_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_mapwork_table.q b/ql/src/test/queries/clientpositive/schema_evol_text_mapwork_table.q
deleted file mode 100644
index 44f7264..0000000
--- a/ql/src/test/queries/clientpositive/schema_evol_text_mapwork_table.q
+++ /dev/null
@@ -1,56 +0,0 @@
-set hive.cli.print.header=true;
-set hive.support.concurrency=true;
-set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
-SET hive.exec.schema.evolution=true;
-SET hive.vectorized.execution.enabled=false;
-set hive.fetch.task.conversion=none;
-set hive.exec.dynamic.partition.mode=nonstrict;
-
-
--- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE;
-
-insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original');
-
--- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string);
-
-insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty');
-
-insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred');
-
--- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1;
-select a,b,c from table1;
-select a,b,c,d from table1;
-select a,c,d from table1;
-select a,d from table1;
-select c from table1;
-select d from table1;
-
---
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE;
-
-insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original');
-
--- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int;
-
-insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new');
-
-insert into table table2 values(5000, 'new'),(90000, 'new');
-
-select a,b from table2;
-
-
-DROP TABLE table1;
-DROP TABLE table2;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_fetchwork_part.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_fetchwork_part.q b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_fetchwork_part.q
deleted file mode 100644
index 4d78642..0000000
--- a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_fetchwork_part.q
+++ /dev/null
@@ -1,98 +0,0 @@
-set hive.mapred.mode=nonstrict;
-set hive.cli.print.header=true;
-SET hive.exec.schema.evolution=true;
-SET hive.vectorized.execution.enabled=false;
-set hive.fetch.task.conversion=more;
-set hive.exec.dynamic.partition.mode=nonstrict;
-
-
--- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, FetchWork, Partitioned
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE;
-
-insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original');
-
--- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string);
-
-insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty');
-
-insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred');
-
--- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1;
-select part,a,b,c from partitioned1;
-select part,a,b,c,d from partitioned1;
-select part,a,c,d from partitioned1;
-select part,a,d from partitioned1;
-select part,c from partitioned1;
-select part,d from partitioned1;
-
---
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE;
-
-insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original');
-
--- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int;
-
-insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new');
-
-insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new');
-
-select part,a,b from partitioned2;
-
-
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE;
-
-insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original');
-
--- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string);
-
-insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1);
-
--- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1;
-select part,a,b,c from partitioned1;
-select part,a,b,c,d from partitioned1;
-select part,a,c,d from partitioned1;
-select part,a,d from partitioned1;
-select part,c from partitioned1;
-select part,d from partitioned1;
-
-
---
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE;
-
-insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original');
-
--- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int;
-
-insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1);
-
-select part,a,b from partitioned4;
-
-
-DROP TABLE partitioned1;
-DROP TABLE partitioned2;
-DROP TABLE partitioned3;
-DROP TABLE partitioned4;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_fetchwork_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_fetchwork_table.q b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_fetchwork_table.q
deleted file mode 100644
index 0834351..0000000
--- a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_fetchwork_table.q
+++ /dev/null
@@ -1,67 +0,0 @@
-set hive.cli.print.header=true;
-SET hive.exec.schema.evolution=true;
-SET hive.vectorized.execution.enabled=true;
-set hive.fetch.task.conversion=more;
-
--- SORT_QUERY_RESULTS
---
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE;
-
-insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original');
-
-select a,b from table1;
-
--- ADD COLUMNS
-alter table table1 add columns(c int, d string);
-
-insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty');
-
-select a,b,c,d from table1;
-
--- ADD COLUMNS
-alter table table1 add columns(e string);
-
-insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2');
-
-select a,b,c,d,e from table1;
-
-
---
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE;
-
-insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original');
-
-select a,b from table3;
-
--- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int;
-
-insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new');
-
-select a,b from table3;
-
--- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string);
-
-insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6');
-
-select a,b from table3;
-
-
--- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int;
-
-select a,b from table3;
-
-
-DROP TABLE table1;
-DROP TABLE table2;
-DROP TABLE table3;
\ No newline at end of file
[41/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part_all_primitive.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part_all_primitive.q b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part_all_primitive.q
new file mode 100644
index 0000000..3b8d8e4
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_part_all_primitive.q
@@ -0,0 +1,509 @@
+set hive.explain.user=true;
+set hive.mapred.mode=nonstrict;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=false;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=false;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING);
+
+insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new');
+
+insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num;
+
+drop table part_change_various_various_boolean;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING);
+
+insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new');
+
+insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num;
+
+drop table part_change_various_various_tinyint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING);
+
+insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new');
+
+insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num;
+
+drop table part_change_various_various_smallint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING);
+
+insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new');
+
+insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num;
+
+drop table part_change_various_various_int;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING);
+
+insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new');
+
+insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num;
+
+drop table part_change_various_various_bigint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> FLOAT
+--
+CREATE TABLE part_change_various_various_float(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_float partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '2402.3', '2402.3', '2402.3', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_float order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_float replace columns (insert_num int, c1 FLOAT, c2 FLOAT, c3 FLOAT, c4 FLOAT, c5 FLOAT, c6 FLOAT, c7 FLOAT, c8 FLOAT, c9 FLOAT, c10 FLOAT, c11 FLOAT, b STRING);
+
+insert into table part_change_various_various_float partition(part=2)
+ values (5, 953967041., 62.0791539559013466, 718.78, 1, 203.199548118, -60, 6275638713485623898, -230, -695025, -3651.67212, 46114.28, 'new');
+
+insert into table part_change_various_various_float partition(part=1)
+ values (6, -1255178165.77663, 9043162437544575070.974, -4314.7918, -1240033819, 91, 1698.95, -100.3597812, -63, 0, -93222.200, 29.076, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_float order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_float order by insert_num;
+
+drop table part_change_various_various_float;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> DOUBLE
+--
+CREATE TABLE part_change_various_various_double(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_double partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_double order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, c4 DOUBLE, c5 DOUBLE, c6 DOUBLE, c7 DOUBLE, c8 DOUBLE, c9 DOUBLE, c10 DOUBLE, c11 DOUBLE, b STRING);
+
+insert into table part_change_various_various_double partition(part=2)
+ values (5, 953967041., 62.0791539559013466, 718.78, 1, 203.199548118, -60, 6275638713485623898, -230, -695025, 0.00007011717, 4.28479948, 'new');
+
+insert into table part_change_various_various_double partition(part=1)
+ values (6, -1255178165.77663, 9043162437544575070.974, -4314.7918, -1240033819, 91, 1698.95, -100.3597812, -63, 0, -66475.0000008, -284799488.1, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_double order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_double order by insert_num;
+
+drop table part_change_various_various_double;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, STRING, CHAR, VARCHAR, TIMESTAMP) --> DECIMAL
+--
+CREATE TABLE part_change_various_various_decimal(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_decimal partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '--1551801.09502', '--1551801.09502', '--1551801.09502', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '2402.3', '2402.3', '2402.3', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_decimal order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_decimal replace columns (insert_num int, c1 DECIMAL(38,18), c2 DECIMAL(38,18), c3 DECIMAL(38,18), c4 DECIMAL(38,18), c5 DECIMAL(38,18), c6 DECIMAL(38,18), c7 DECIMAL(38,18), c8 DECIMAL(38,18), c9 DECIMAL(38,18), c10 DECIMAL(38,18), c11 DECIMAL(38,18), b STRING);
+
+insert into table part_change_various_various_decimal partition(part=2)
+ values (5, 953967041., 62.0791539559013466, 718.78, 1, 203.199548118, -60, 6275638713485623898, -230, -695025, 0.00007011717, 4.28479948, 'new');
+
+insert into table part_change_various_various_decimal partition(part=1)
+ values (6,-1255178165.77663, 9043162437544575070.974, -4314.7918, -1240033819, 91, 1698.95, -100.3597812, -63, 0, -66475.0000008, -284799488.1, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_decimal order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_decimal order by insert_num;
+
+drop table part_change_various_various_decimal;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY) --> STRING
+--
+CREATE TABLE part_change_various_various_string(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_string partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, c5 STRING, c6 STRING, c7 STRING, c8 STRING, c9 STRING, c10 STRING, c11 STRING, c12 STRING, c13 STRING, b STRING);
+
+insert into table part_change_various_various_string partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_string partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_string order by insert_num;
+
+drop table part_change_various_various_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, VARCHAR, TIMESTAMP, DATE, BINARY) --> CHAR
+--
+CREATE TABLE part_change_various_various_char(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 VARCHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_char partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_char replace columns (insert_num int, c1 CHAR(25), c2 CHAR(25), c3 CHAR(25), c4 CHAR(25), c5 CHAR(25), c6 CHAR(25), c7 CHAR(25), c8 CHAR(25), c9 CHAR(25), c10 CHAR(25), c11 CHAR(25), c12 CHAR(25), c13 CHAR(25), b STRING);
+
+insert into table part_change_various_various_char partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_char partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char order by insert_num;
+
+drop table part_change_various_various_char;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, VARCHAR, TIMESTAMP, DATE, BINARY) --> CHAR trunc
+--
+CREATE TABLE part_change_various_various_char_trunc(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 VARCHAR(8), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_char_trunc partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_char_trunc replace columns (insert_num int, c1 CHAR(8), c2 CHAR(8), c3 CHAR(8), c4 CHAR(8), c5 CHAR(8), c6 CHAR(8), c7 CHAR(8), c8 CHAR(8), c9 CHAR(8), c10 CHAR(8), c11 CHAR(8), c12 CHAR(8), c13 CHAR(8), b STRING);
+
+insert into table part_change_various_various_char_trunc partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_char_trunc partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char_trunc order by insert_num;
+
+drop table part_change_various_various_char_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, CHAR, TIMESTAMP, DATE, BINARY) --> VARCHAR
+--
+CREATE TABLE part_change_various_various_varchar(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 CHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_varchar partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_varchar replace columns (insert_num int, c1 VARCHAR(25), c2 VARCHAR(25), c3 VARCHAR(25), c4 VARCHAR(25), c5 VARCHAR(25), c6 VARCHAR(25), c7 VARCHAR(25), c8 VARCHAR(25), c9 VARCHAR(25), c10 VARCHAR(25), c11 VARCHAR(25), c12 VARCHAR(25), c13 VARCHAR(25), b STRING);
+
+insert into table part_change_various_various_varchar partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_varchar partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar order by insert_num;
+
+drop table part_change_various_various_varchar;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, CHAR, TIMESTAMP, DATE, BINARY) --> VARCHAR trunc
+--
+CREATE TABLE part_change_various_various_varchar_trunc(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 CHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_varchar_trunc partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_varchar_trunc replace columns (insert_num int, c1 VARCHAR(8), c2 VARCHAR(8), c3 VARCHAR(8), c4 VARCHAR(8), c5 VARCHAR(8), c6 VARCHAR(8), c7 VARCHAR(8), c8 VARCHAR(8), c9 VARCHAR(8), c10 VARCHAR(8), c11 VARCHAR(8), c12 VARCHAR(8), c13 VARCHAR(8), b STRING);
+
+insert into table part_change_various_various_varchar_trunc partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_varchar_trunc partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar_trunc order by insert_num;
+
+drop table part_change_various_various_varchar_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, CHAR, VARCHAR, DATE) --> TIMESTAMP
+--
+CREATE TABLE part_change_various_various_timestamp(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 CHAR(25), c11 VARCHAR(25), c12 DATE, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_timestamp partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '2007-02-09', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '0004-09-22', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '5966-07-09', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '1815-05-06', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,b from part_change_various_various_timestamp order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_timestamp replace columns (insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, c6 TIMESTAMP, c7 TIMESTAMP, c8 TIMESTAMP, c9 TIMESTAMP, c10 TIMESTAMP, c11 TIMESTAMP, c12 TIMESTAMP, b STRING);
+
+insert into table part_change_various_various_timestamp partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'timestamp', 'timestamp', 'timestamp', 'date', 'new');
+
+insert into table part_change_various_various_timestamp partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', '2016-03-07 03:02:22.0', '2016-03-07 03:02:22.0', '2016-03-07 03:02:22.0', '2016-03-07', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,b from part_change_various_various_timestamp order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,b from part_change_various_various_timestamp order by insert_num;
+
+drop table part_change_various_various_timestamp;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (STRING, CHAR, VARCHAR, TIMESTAMP --> DATE
+--
+CREATE TABLE part_change_various_various_date(insert_num int, c1 STRING, c2 CHAR(25), c3 VARCHAR(25), c4 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_date partition(part=1)
+ values(1, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_various_various_date order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_date replace columns (insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, b STRING);
+
+insert into table part_change_various_various_date partition(part=2)
+ values (5, '2016-03-07', '2016-03-07', '2016-03-07', '2016-03-07', 'new');
+
+insert into table part_change_various_various_date partition(part=1)
+ values (6,-'2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10','new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_various_various_date order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_various_various_date order by insert_num;
+
+drop table part_change_various_various_date;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (STRING, CHAR, VARCHAR) --> BINARY
+--
+CREATE TABLE part_change_various_various_binary(insert_num int, c1 STRING, c2 CHAR(25), c3 VARCHAR(25), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_binary partition(part=1)
+ values(1, 'binary', 'binary', 'binary', 'original'),
+ (2, 'binary', 'binary', 'binary', 'original'),
+ (3, 'binary', 'binary', 'binary', 'original'),
+ (4, 'binary', 'binary', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_various_various_binary order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_binary replace columns (insert_num int, c1 BINARY, c2 BINARY, c3 BINARY, b STRING);
+
+insert into table part_change_various_various_binary partition(part=2)
+ values (5, 'binary', 'binary', 'binary', 'new');
+
+insert into table part_change_various_various_binary partition(part=1)
+ values (6,-'binary', 'binary', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_various_various_binary order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_various_various_binary order by insert_num;
+
+drop table part_change_various_various_binary;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_table.q b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_table.q
index 83cab14..1b408dd 100644
--- a/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_table.q
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_nonvec_mapwork_table.q
@@ -1,67 +1,821 @@
+set hive.explain.user=true;
set hive.cli.print.header=true;
SET hive.exec.schema.evolution=true;
-SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.execution.enabled=false;
set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=true;
+set hive.default.fileformat=textfile;
-- SORT_QUERY_RESULTS
--
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE;
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING);
+DESCRIBE FORMATTED table_add_int_permute_select;
+
+insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int);
+DESCRIBE FORMATTED table_add_int_permute_select;
+
+insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40);
+
+insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200);
+
+explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num;
+select insert_num,a,b,c from table_add_int_permute_select order by insert_num;
+select insert_num,c from table_add_int_permute_select order by insert_num;
+
+drop table table_add_int_permute_select;
+
+
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING);
+DESCRIBE FORMATTED table_add_int_string_permute_select;
+
+insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string);
+DESCRIBE FORMATTED table_add_int_string_permute_select;
+
+insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty');
+
+insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred');
+
+explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,d from table_add_int_string_permute_select order by insert_num;
+select insert_num,c from table_add_int_string_permute_select order by insert_num;
+select insert_num,d from table_add_int_string_permute_select order by insert_num;
+
+drop table table_add_int_string_permute_select;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING);
+
+insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING);
+
+insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new');
+
+insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num;
+
+drop table table_change_string_group_double;
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING);
+
+insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);
+
+insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new');
+insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num;
+
+drop table table_change_date_group_string_group_timestamp;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING);
+
+insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);DESCRIBE FORMATTED table_change_date_group_string_group_date;
+
+insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num;
+
+drop table table_change_date_group_string_group_date;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
-insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original');
+insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
-select a,b from table1;
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num;
--- ADD COLUMNS
-alter table table1 add columns(c int, d string);
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING) ;
-insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty');
+insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
-select a,b,c,d from table1;
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num;
--- ADD COLUMNS
-alter table table1 add columns(e string);
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num;
-insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2');
+drop table table_change_numeric_group_string_group_multi_ints_string;
-select a,b,c,d,e from table1;
--
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
--
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE;
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
-insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original');
+insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
-select a,b from table3;
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num;
--- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int;
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_char_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_varchar(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), c4 VARCHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_varchar_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_varchar_trunc replace columns (insert_num int, c1 VARCHAR(5), c2 VARCHAR(5), c3 VARCHAR(5), c4 VARCHAR(5), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_varchar_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (FLOAT, DOUBLE, DECIMAL), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_string(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_string
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, - 832222222, 255, 4957,'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_string
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_string order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_string order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_string;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_char(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_char
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957,'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_char
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_char_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
-insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new');
+insert into table table_change_numeric_group_string_group_floating_char_trunc
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 832222222, -255, 4957, 'original'),
+ (4, 847492223, 0, 20435, 'original');
-select a,b from table3;
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char_trunc order by insert_num;
--- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string);
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_char_trunc replace columns (insert_num int, c1 CHAR(7), c2 CHAR(7), c3 CHAR(7), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_char_trunc
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_char_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_varchar(insert_num int, c1 float, c2 double, c3 decimal(38,18), b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_varchar
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_varchar
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_varchar_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_varchar_trunc
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_varchar_trunc replace columns (insert_num int, c1 VARCHAR(7), c2 VARCHAR(7), c3 VARCHAR(7), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_varchar_trunc
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_varchar_trunc;
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: STRING, (CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_string_group_string_group_string(insert_num int, c1 string, c2 string, c3 string, c4 string, b STRING);
+
+insert into table table_change_string_group_string_group_string
+ values (1, 'escapist', 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_string_group_string_group_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_string_group_string replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 VARCHAR(50), c4 CHAR(9), b STRING) ;
+
+insert into table table_change_string_group_string_group_string
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'junkyard', 'new'),
+ (6, ' baffling ', ' baffling ', ' baffling ', ' baffling ', 'new'),
+ (7, ' featherweight ', ' featherweight ',' featherweight ',' featherweight ', 'new'),
+ (8, ' against', ' against', ' against', ' against', 'new'),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new'),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'bottom ', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_string_group_string_group_string order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_string_group_string_group_string order by insert_num;
+
+drop table table_change_string_group_string_group_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: CHAR, (VARCHAR, VARCHAR trunc, STRING)
+--
+CREATE TABLE table_change_string_group_string_group_char(insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING);
+
+insert into table table_change_string_group_string_group_char
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_string_group_char replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(9), c3 STRING, b STRING) ;
+
+insert into table table_change_string_group_string_group_char
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new'),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new'),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new'),
+ (8, ' against', ' against', ' against', 'new'),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new'),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_char order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_char order by insert_num;
+
+drop table table_change_string_group_string_group_char;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: VARCHAR, (CHAR, CHAR trunc, STRING)
+--
+CREATE TABLE table_change_string_group_string_group_varchar(insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING);
+
+insert into table table_change_string_group_string_group_varchar
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_string_group_varchar replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 STRING, b STRING) ;
+
+insert into table table_change_string_group_string_group_varchar
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new'),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new'),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new'),
+ (8, ' against', ' against', ' against', 'new'),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new'),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_varchar order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_varchar order by insert_num;
+
+drop table table_change_string_group_string_group_varchar;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: TINYINT, (SMALLINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_tinyint(insert_num int, c1 tinyint, c2 tinyint, c3 tinyint, c4 tinyint, c5 tinyint, c6 tinyint, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_tinyint
+ values (1, 45, 45, 45, 45, 45, 45, 'original'),
+ (2, -2, -2, -2, -2, -2, -2, 'original'),
+ (3, -255, -255, -255, -255, -255, -255, 'original'),
+ (4, 100, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,c1,c2,c3,c4,c5,c6,b from table_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_tinyint replace columns (insert_num int, c1 SMALLINT, c2 INT, c3 BIGINT, c4 decimal(38,18), c5 FLOAT, c6 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_tinyint
+ values (5, '774', '2031', '200', '12', '99', '0', 'new'),
+ (6, '561431', '52927714', '7203778961', '8', '7', '6', 'new'),
+ (7, '256', '32768', '31889', '300', '444', '506', 'new'),
+ (8, '5555', '40000', '-719017797', '45', '55', '65', 'new'),
+ (9, '100', '5000', '5443', '22', '2', '-2', 'new'),
+ (10, '17', '90000', '754072151', '95', '20', '18', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,c6,b from table_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,c6,b from table_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_tinyint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: SMALLINT, (INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_smallint(insert_num int, c1 smallint, c2 smallint, c3 smallint, c4 smallint, c5 smallint, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_smallint
+ values (1, 2031, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, -5000, 'original'),
+ (4, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_smallint replace columns (insert_num int, c1 INT, c2 BIGINT, c3 decimal(38,18), c4 FLOAT, c5 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_smallint
+ values (5, '774', '2031', '200', '12', '99', 'new'),
+ (6, '561431', '52927714', '7203778961', '8', '7', 'new'),
+ (7, '256', '32768', '31889', '300', '444', 'new'),
+ (8, '5555', '40000', '-719017797', '45', '55', 'new'),
+ (9, '100', '5000', '5443', '22', '2', 'new'),
+ (10, '17', '90000', '754072151', '95', '20', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_smallint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: INT, (BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_int(insert_num int, c1 int, c2 int, c3 int, c4 int, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_int
+ values (1, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_lower_to_higher_numeric_group_int order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_int replace columns (insert_num int, c1 BIGINT, c2 decimal(38,18), c3 FLOAT, c4 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_int
+ values (5, '774', '2031', '200', '12', 'new'),
+ (6, '561431', '52927714', '7203778961', '8', 'new'),
+ (7, '256', '32768', '31889', '300', 'new'),
+ (8, '5555', '40000', '-719017797', '45', 'new'),
+ (9, '100', '5000', '5443', '22', 'new'),
+ (10, '17', '90000', '754072151', '95', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_lower_to_higher_numeric_group_int order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_lower_to_higher_numeric_group_int order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_int;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: BIGINT, (DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_bigint(insert_num int, c1 bigint, c2 bigint, c3 bigint, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_bigint
+ values (1, 7203778961, 7203778961, 7203778961, 'original'),
+ (2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_bigint replace columns (insert_num int, c1 decimal(38,18), c2 FLOAT, c3 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_bigint
+ values (5, '774', '2031', '200', 'new'),
+ (6, '561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_bigint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: DECIMAL, (FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_decimal(insert_num int, c1 decimal(38,18), c2 decimal(38,18), b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_decimal
+ values (1, -29.0764, -29.0764, 'original'),
+ (2, 753.7028, 753.7028, 'original'),
+ (3, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 'original');
+
+select insert_num,c1,c2,b from table_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_decimal replace columns (insert_num int, c1 float, c2 double, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_decimal
+ values (5, '7.74', '22.3', 'new'),
+ (6, '56.1431', '90.9', 'new'),
+ (7, '2.56', '25.6', 'new'),
+ (8, '555.5', '55.55', 'new'),
+ (9, '10.0', '0.100', 'new'),
+ (10, '1.7', '17.8888', 'new');
+
+explain
+select insert_num,c1,c2,b from table_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+select insert_num,c1,c2,b from table_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_decimal;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: FLOAT, (DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_float(insert_num int, c1 float, b STRING);
-insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6');
+insert into table table_change_lower_to_higher_numeric_group_float
+ values (1, -29.0764, 'original'),
+ (2, 753.7028, 'original'),
+ (3, -5000, 'original'),
+ (4, 52927714, 'original');
-select a,b from table3;
+select insert_num,c1,b from table_change_lower_to_higher_numeric_group_float order by insert_num;
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_float replace columns (insert_num int, c1 DOUBLE, b STRING) ;
--- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int;
+insert into table table_change_lower_to_higher_numeric_group_float
+ values (5, '774', 'new'),
+ (6, '561431', 'new'),
+ (7, '256', 'new'),
+ (8, '5555', 'new'),
+ (9, '100', 'new'),
+ (10, '17', 'new');
-select a,b from table3;
+explain
+select insert_num,c1,b from table_change_lower_to_higher_numeric_group_float order by insert_num;
+select insert_num,c1,b from table_change_lower_to_higher_numeric_group_float order by insert_num;
-DROP TABLE table1;
-DROP TABLE table2;
-DROP TABLE table3;
\ No newline at end of file
+drop table table_change_lower_to_higher_numeric_group_float;
\ No newline at end of file
[46/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRow.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRow.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRow.java
index de0300a..894ef59 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRow.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRow.java
@@ -18,6 +18,8 @@
package org.apache.hadoop.hive.ql.exec.vector;
+import java.sql.Date;
+import java.sql.Timestamp;
import java.util.List;
import org.slf4j.Logger;
@@ -28,6 +30,7 @@ import org.apache.hadoop.hive.common.type.HiveIntervalDayTime;
import org.apache.hadoop.hive.common.type.HiveIntervalYearMonth;
import org.apache.hadoop.hive.common.type.HiveVarchar;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.plan.VectorPartitionConversion;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DateWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
@@ -39,609 +42,689 @@ import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
import org.apache.hadoop.hive.serde2.io.ShortWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritable;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
import org.apache.hadoop.hive.serde2.objectinspector.StructField;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
import org.apache.hadoop.io.BooleanWritable;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.FloatWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
-import org.apache.hive.common.util.DateUtils;
+import org.apache.hadoop.io.Writable;
+
+import com.google.common.base.Preconditions;
+
/**
- * This class assigns specified columns of a row from a Writable row Object[].
- *
- * The caller provides the hive type names and target column numbers in the order desired to
- * assign from the Writable row Object[].
+ * This class assigns specified columns of a row from a Writable row objects.
*
- * This class is abstract to allow the subclasses to control batch reuse.
+ * The caller provides the data types and projection column numbers of a subset of the columns
+ * to assign.
*/
-public abstract class VectorAssignRow {
+public class VectorAssignRow {
+
private static final long serialVersionUID = 1L;
private static final Logger LOG = LoggerFactory.getLogger(VectorAssignRow.class);
- protected abstract class Assigner {
- protected int columnIndex;
-
- Assigner(int columnIndex) {
- this.columnIndex = columnIndex;
- }
-
- public int getColumnIndex() {
- return columnIndex;
- }
-
- abstract void setColumnVector(VectorizedRowBatch batch);
-
- abstract void forgetColumnVector();
-
- abstract void assign(int batchIndex, Object object);
- }
-
- private class VoidAssigner extends Assigner {
-
- VoidAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- }
-
- @Override
- void forgetColumnVector() {
- }
-
- @Override
- void assign(int batchIndex, Object object) {
- // This is no-op, there is no column to assign to and the object is expected to be null.
- assert (object == null);
- }
+ /*
+ * These members have information for assigning a row column objects into the VectorizedRowBatch
+ * columns.
+ *
+ * We say "target" because when there is conversion the data type being converted is the source.
+ */
+ boolean[] isConvert;
+ // For each column, are we converting the row column object?
+
+ int[] projectionColumnNums;
+ // Assigning can be a subset of columns, so this is the projection --
+ // the batch column numbers.
+
+ Category[] targetCategories;
+ // The data type category of each column being assigned.
+
+ PrimitiveCategory[] targetPrimitiveCategories;
+ // The data type primitive category of each column being assigned.
+
+ int[] maxLengths;
+ // For the CHAR and VARCHAR data types, the maximum character length of
+ // the columns. Otherwise, 0.
+
+ /*
+ * These members have information for data type conversion.
+ * Not defined if there is no conversion.
+ */
+ PrimitiveObjectInspector[] convertSourcePrimitiveObjectInspectors;
+ // The primitive object inspector of the source data type for any column being
+ // converted. Otherwise, null.
+
+ Writable[] convertTargetWritables;
+ // Conversion to the target data type requires a "helper" target writable in a
+ // few cases.
+
+ /*
+ * Allocate the target related arrays.
+ */
+ private void allocateArrays(int count) {
+ isConvert = new boolean[count];
+ projectionColumnNums = new int[count];
+ targetCategories = new Category[count];
+ targetPrimitiveCategories = new PrimitiveCategory[count];
+ maxLengths = new int[count];
}
- private abstract class AbstractLongAssigner extends Assigner {
-
- protected LongColumnVector colVector;
- protected long[] vector;
-
- AbstractLongAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (LongColumnVector) batch.cols[columnIndex];
- vector = colVector.vector;
- }
-
- @Override
- void forgetColumnVector() {
- colVector = null;
- vector = null;
- }
+ /*
+ * Allocate the source conversion related arrays (optional).
+ */
+ private void allocateConvertArrays(int count) {
+ convertSourcePrimitiveObjectInspectors = new PrimitiveObjectInspector[count];
+ convertTargetWritables = new Writable[count];
}
- protected class BooleanAssigner extends AbstractLongAssigner {
-
- BooleanAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- BooleanWritable bw = (BooleanWritable) object;
- vector[batchIndex] = (bw.get() ? 1 : 0);
- colVector.isNull[batchIndex] = false;
+ /*
+ * Initialize one column's target related arrays.
+ */
+ private void initTargetEntry(int logicalColumnIndex, int projectionColumnNum, TypeInfo typeInfo) {
+ isConvert[logicalColumnIndex] = false;
+ projectionColumnNums[logicalColumnIndex] = projectionColumnNum;
+ Category category = typeInfo.getCategory();
+ targetCategories[logicalColumnIndex] = category;
+ if (category == Category.PRIMITIVE) {
+ PrimitiveTypeInfo primitiveTypeInfo = (PrimitiveTypeInfo) typeInfo;
+ PrimitiveCategory primitiveCategory = primitiveTypeInfo.getPrimitiveCategory();
+ targetPrimitiveCategories[logicalColumnIndex] = primitiveCategory;
+ switch (primitiveCategory) {
+ case CHAR:
+ maxLengths[logicalColumnIndex] = ((CharTypeInfo) primitiveTypeInfo).getLength();
+ break;
+ case VARCHAR:
+ maxLengths[logicalColumnIndex] = ((VarcharTypeInfo) primitiveTypeInfo).getLength();
+ break;
+ default:
+ // No additional data type specific setting.
+ break;
}
}
}
- protected class ByteAssigner extends AbstractLongAssigner {
-
- ByteAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- ByteWritable bw = (ByteWritable) object;
- vector[batchIndex] = bw.get();
- colVector.isNull[batchIndex] = false;
+ /*
+ * Initialize one column's source conversion related arrays.
+ * Assumes initTargetEntry has already been called.
+ */
+ private void initConvertSourceEntry(int logicalColumnIndex, TypeInfo convertSourceTypeInfo) {
+ isConvert[logicalColumnIndex] = true;
+ Category convertSourceCategory = convertSourceTypeInfo.getCategory();
+ if (convertSourceCategory == Category.PRIMITIVE) {
+ PrimitiveTypeInfo convertSourcePrimitiveTypeInfo = (PrimitiveTypeInfo) convertSourceTypeInfo;
+ convertSourcePrimitiveObjectInspectors[logicalColumnIndex] =
+ PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
+ convertSourcePrimitiveTypeInfo);
+
+ // These need to be based on the target.
+ PrimitiveCategory targetPrimitiveCategory = targetPrimitiveCategories[logicalColumnIndex];
+ switch (targetPrimitiveCategory) {
+ case DATE:
+ convertTargetWritables[logicalColumnIndex] = new DateWritable();
+ break;
+ case STRING:
+ convertTargetWritables[logicalColumnIndex] = new Text();
+ break;
+ default:
+ // No additional data type specific setting.
+ break;
}
}
}
- private class ShortAssigner extends AbstractLongAssigner {
+ /*
+ * Initialize using an StructObjectInspector and a column projection list.
+ */
+ public void init(StructObjectInspector structObjectInspector, List<Integer> projectedColumns)
+ throws HiveException {
- ShortAssigner(int columnIndex) {
- super(columnIndex);
- }
+ List<? extends StructField> fields = structObjectInspector.getAllStructFieldRefs();
+ final int count = fields.size();
+ allocateArrays(count);
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- ShortWritable sw = (ShortWritable) object;
- vector[batchIndex] = sw.get();
- colVector.isNull[batchIndex] = false;
- }
- }
- }
+ for (int i = 0; i < count; i++) {
- private class IntAssigner extends AbstractLongAssigner {
+ int projectionColumnNum = projectedColumns.get(i);
- IntAssigner(int columnIndex) {
- super(columnIndex);
- }
+ StructField field = fields.get(i);
+ ObjectInspector fieldInspector = field.getFieldObjectInspector();
+ TypeInfo typeInfo =
+ TypeInfoUtils.getTypeInfoFromTypeString(fieldInspector.getTypeName());
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- IntWritable iw = (IntWritable) object;
- vector[batchIndex] = iw.get();
- colVector.isNull[batchIndex] = false;
- }
+ initTargetEntry(i, projectionColumnNum, typeInfo);
}
}
- private class LongAssigner extends AbstractLongAssigner {
-
- LongAssigner(int columnIndex) {
- super(columnIndex);
- }
+ /*
+ * Initialize using an StructObjectInspector.
+ * No projection -- the column range 0 .. fields.size()-1
+ */
+ public void init(StructObjectInspector structObjectInspector) throws HiveException {
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- LongWritable lw = (LongWritable) object;
- vector[batchIndex] = lw.get();
- colVector.isNull[batchIndex] = false;
- }
- }
- }
+ List<? extends StructField> fields = structObjectInspector.getAllStructFieldRefs();
+ final int count = fields.size();
+ allocateArrays(count);
- private class DateAssigner extends AbstractLongAssigner {
+ for (int i = 0; i < count; i++) {
- DateAssigner(int columnIndex) {
- super(columnIndex);
- }
+ StructField field = fields.get(i);
+ ObjectInspector fieldInspector = field.getFieldObjectInspector();
+ TypeInfo typeInfo =
+ TypeInfoUtils.getTypeInfoFromTypeString(fieldInspector.getTypeName());
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- DateWritable bw = (DateWritable) object;
- vector[batchIndex] = bw.getDays();
- colVector.isNull[batchIndex] = false;
- }
+ initTargetEntry(i, i, typeInfo);
}
}
- private abstract class AbstractTimestampAssigner extends Assigner {
+ /*
+ * Initialize using target data type names.
+ * No projection -- the column range 0 .. types.size()-1
+ */
+ public void init(List<String> typeNames) throws HiveException {
- protected TimestampColumnVector colVector;
+ final int count = typeNames.size();
+ allocateArrays(count);
- AbstractTimestampAssigner(int columnIndex) {
- super(columnIndex);
- }
+ for (int i = 0; i < count; i++) {
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (TimestampColumnVector) batch.cols[columnIndex];
- }
+ TypeInfo typeInfo =
+ TypeInfoUtils.getTypeInfoFromTypeString(typeNames.get(i));
- @Override
- void forgetColumnVector() {
- colVector = null;
+ initTargetEntry(i, i, typeInfo);
}
}
- private class TimestampAssigner extends AbstractTimestampAssigner {
+ /**
+ * Initialize for conversion from a provided (source) data types to the target data types
+ * desired in the VectorizedRowBatch.
+ *
+ * No projection -- the column range 0 .. count-1
+ *
+ * where count is the minimum of the target data type array size, included array size,
+ * and source data type array size.
+ *
+ * @param sourceTypeInfos
+ * @param targetTypeInfos
+ * @param columnsToIncludeTruncated
+ * Flag array indicating which columns are to be included.
+ * "Truncated" because all false entries on the end of the array have been
+ * eliminated.
+ * @return the minimum count described above is returned. That is, the number of columns
+ * that will be processed by assign.
+ */
+ public int initConversion(TypeInfo[] sourceTypeInfos, TypeInfo[] targetTypeInfos,
+ boolean[] columnsToIncludeTruncated) {
+
+ int targetColumnCount;
+ if (columnsToIncludeTruncated == null) {
+ targetColumnCount = targetTypeInfos.length;
+ } else {
+ targetColumnCount = Math.min(targetTypeInfos.length, columnsToIncludeTruncated.length);
+ }
+
+ int sourceColumnCount = Math.min(sourceTypeInfos.length, targetColumnCount);
+
+ allocateArrays(sourceColumnCount);
+ allocateConvertArrays(sourceColumnCount);
+
+ for (int i = 0; i < sourceColumnCount; i++) {
+
+ if (columnsToIncludeTruncated != null && !columnsToIncludeTruncated[i]) {
+
+ // Field not included in query.
- TimestampAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
} else {
- colVector.set(batchIndex, ((TimestampWritable) object).getTimestamp());
- colVector.isNull[batchIndex] = false;
- }
- }
- }
+ TypeInfo targetTypeInfo = targetTypeInfos[i];
- private class IntervalYearMonthAssigner extends AbstractLongAssigner {
+ if (targetTypeInfo.getCategory() != ObjectInspector.Category.PRIMITIVE) {
- IntervalYearMonthAssigner(int columnIndex) {
- super(columnIndex);
- }
+ // For now, we don't have an assigner for complex types...
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- HiveIntervalYearMonthWritable iymw = (HiveIntervalYearMonthWritable) object;
- HiveIntervalYearMonth iym = iymw.getHiveIntervalYearMonth();
- vector[batchIndex] = iym.getTotalMonths();
- colVector.isNull[batchIndex] = false;
- }
- }
- }
+ } else {
+ TypeInfo sourceTypeInfo = sourceTypeInfos[i];
- private abstract class AbstractIntervalDayTimeAssigner extends Assigner {
+ if (!sourceTypeInfo.equals(targetTypeInfo)) {
- protected IntervalDayTimeColumnVector colVector;
+ if (VectorPartitionConversion.isImplicitVectorColumnConversion(
+ sourceTypeInfo, targetTypeInfo)) {
- AbstractIntervalDayTimeAssigner(int columnIndex) {
- super(columnIndex);
- }
+ // Do implicit conversion accepting the source type and putting it in the same
+ // target type ColumnVector type.
+ initTargetEntry(i, i, sourceTypeInfo);
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (IntervalDayTimeColumnVector) batch.cols[columnIndex];
- }
+ } else {
- @Override
- void forgetColumnVector() {
- colVector = null;
- }
- }
+ // Do formal conversion...
+ initTargetEntry(i, i, targetTypeInfo);
+ initConvertSourceEntry(i, sourceTypeInfo);
- private class IntervalDayTimeAssigner extends AbstractIntervalDayTimeAssigner {
+ }
+ } else {
- IntervalDayTimeAssigner(int columnIndex) {
- super(columnIndex);
- }
+ // No conversion.
+ initTargetEntry(i, i, targetTypeInfo);
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- HiveIntervalDayTimeWritable idtw = (HiveIntervalDayTimeWritable) object;
- HiveIntervalDayTime idt = idtw.getHiveIntervalDayTime();
- colVector.set(batchIndex, idt);
- colVector.isNull[batchIndex] = false;
+ }
+ }
}
}
- }
-
- private abstract class AbstractDoubleAssigner extends Assigner {
-
- protected DoubleColumnVector colVector;
- protected double[] vector;
-
- AbstractDoubleAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (DoubleColumnVector) batch.cols[columnIndex];
- vector = colVector.vector;
- }
-
- @Override
- void forgetColumnVector() {
- colVector = null;
- vector = null;
- }
- }
-
- private class FloatAssigner extends AbstractDoubleAssigner {
-
- FloatAssigner(int columnIndex) {
- super(columnIndex);
- }
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- FloatWritable fw = (FloatWritable) object;
- vector[batchIndex] = fw.get();
- colVector.isNull[batchIndex] = false;
- }
- }
+ return sourceColumnCount;
}
- private class DoubleAssigner extends AbstractDoubleAssigner {
-
- DoubleAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- DoubleWritable dw = (DoubleWritable) object;
- vector[batchIndex] = dw.get();
- colVector.isNull[batchIndex] = false;
+ /**
+ * Assign a row's column object to the ColumnVector at batchIndex in the VectorizedRowBatch.
+ *
+ * @param batch
+ * @param batchIndex
+ * @param logicalColumnIndex
+ * @param object The row column object whose type is the target data type.
+ */
+ public void assignRowColumn(VectorizedRowBatch batch, int batchIndex, int logicalColumnIndex,
+ Object object) {
+ final int projectionColumnNum = projectionColumnNums[logicalColumnIndex];
+ if (object == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ Category targetCategory = targetCategories[logicalColumnIndex];
+ if (targetCategory == null) {
+ /*
+ * This is a column that we don't want (i.e. not included) -- we are done.
+ */
+ return;
+ }
+ switch (targetCategory) {
+ case PRIMITIVE:
+ {
+ PrimitiveCategory targetPrimitiveCategory = targetPrimitiveCategories[logicalColumnIndex];
+ switch (targetPrimitiveCategory) {
+ case VOID:
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ case BOOLEAN:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ (((BooleanWritable) object).get() ? 1 : 0);
+ break;
+ case BYTE:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ ((ByteWritable) object).get();
+ break;
+ case SHORT:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ ((ShortWritable) object).get();
+ break;
+ case INT:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ ((IntWritable) object).get();
+ break;
+ case LONG:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ ((LongWritable) object).get();
+ break;
+ case TIMESTAMP:
+ ((TimestampColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, ((TimestampWritable) object).getTimestamp());
+ break;
+ case DATE:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ ((DateWritable) object).getDays();
+ break;
+ case FLOAT:
+ ((DoubleColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ ((FloatWritable) object).get();
+ break;
+ case DOUBLE:
+ ((DoubleColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ ((DoubleWritable) object).get();
+ break;
+ case BINARY:
+ {
+ BytesWritable bw = (BytesWritable) object;
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex, bw.getBytes(), 0, bw.getLength());
+ }
+ break;
+ case STRING:
+ {
+ Text tw = (Text) object;
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex, tw.getBytes(), 0, tw.getLength());
+ }
+ break;
+ case VARCHAR:
+ {
+ // UNDONE: Performance problem with conversion to String, then bytes...
+
+ // We store VARCHAR type stripped of pads.
+ HiveVarchar hiveVarchar;
+ if (object instanceof HiveVarchar) {
+ hiveVarchar = (HiveVarchar) object;
+ } else {
+ hiveVarchar = ((HiveVarcharWritable) object).getHiveVarchar();
+ }
+
+ // TODO: HIVE-13624 Do we need maxLength checking?
+
+ byte[] bytes = hiveVarchar.getValue().getBytes();
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex, bytes, 0, bytes.length);
+ }
+ break;
+ case CHAR:
+ {
+ // UNDONE: Performance problem with conversion to String, then bytes...
+
+ // We store CHAR type stripped of pads.
+ HiveChar hiveChar;
+ if (object instanceof HiveChar) {
+ hiveChar = (HiveChar) object;
+ } else {
+ hiveChar = ((HiveCharWritable) object).getHiveChar();
+ }
+
+ // TODO: HIVE-13624 Do we need maxLength checking?
+
+ // We store CHAR in vector row batch with padding stripped.
+ byte[] bytes = hiveChar.getStrippedValue().getBytes();
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex, bytes, 0, bytes.length);
+ }
+ break;
+ case DECIMAL:
+ if (object instanceof HiveDecimal) {
+ ((DecimalColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, (HiveDecimal) object);
+ } else {
+ ((DecimalColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, (HiveDecimalWritable) object);
+ }
+ break;
+ case INTERVAL_YEAR_MONTH:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ ((HiveIntervalYearMonthWritable) object).getHiveIntervalYearMonth().getTotalMonths();
+ break;
+ case INTERVAL_DAY_TIME:
+ ((IntervalDayTimeColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, ((HiveIntervalDayTimeWritable) object).getHiveIntervalDayTime());
+ break;
+ default:
+ throw new RuntimeException("Primitive category " + targetPrimitiveCategory.name() +
+ " not supported");
+ }
}
- }
- }
-
- private abstract class AbstractBytesAssigner extends Assigner {
-
- protected BytesColumnVector colVector;
-
- AbstractBytesAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (BytesColumnVector) batch.cols[columnIndex];
- }
-
- @Override
- void forgetColumnVector() {
- colVector = null;
- }
- }
-
- private class BinaryAssigner extends AbstractBytesAssigner {
-
- BinaryAssigner(int columnIndex) {
- super(columnIndex);
+ break;
+ default:
+ throw new RuntimeException("Category " + targetCategory.name() + " not supported");
}
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- BytesWritable bw = (BytesWritable) object;
- colVector.setVal(batchIndex, bw.getBytes(), 0, bw.getLength());
- colVector.isNull[batchIndex] = false;
- }
- }
+ /*
+ * We always set the null flag to false when there is a value.
+ */
+ batch.cols[projectionColumnNum].isNull[batchIndex] = false;
}
- private class StringAssigner extends AbstractBytesAssigner {
-
- StringAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- Text tw = (Text) object;
- colVector.setVal(batchIndex, tw.getBytes(), 0, tw.getLength());
- colVector.isNull[batchIndex] = false;
+ /**
+ * Convert row's column object and then assign it the ColumnVector at batchIndex
+ * in the VectorizedRowBatch.
+ *
+ * Public so VectorDeserializeRow can use this method to convert a row's column object.
+ *
+ * @param batch
+ * @param batchIndex
+ * @param logicalColumnIndex
+ * @param object The row column object whose type is the VectorAssignRow.initConversion
+ * source data type.
+ *
+ */
+ public void assignConvertRowColumn(VectorizedRowBatch batch, int batchIndex,
+ int logicalColumnIndex, Object object) {
+ Preconditions.checkState(isConvert[logicalColumnIndex]);
+ final int projectionColumnNum = projectionColumnNums[logicalColumnIndex];
+ if (object == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ try {
+ Category targetCategory = targetCategories[logicalColumnIndex];
+ if (targetCategory == null) {
+ /*
+ * This is a column that we don't want (i.e. not included) -- we are done.
+ */
+ return;
}
- }
- }
-
- private class VarCharAssigner extends AbstractBytesAssigner {
-
- VarCharAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- // We store VARCHAR type stripped of pads.
- HiveVarchar hiveVarchar;
- if (object instanceof HiveVarchar) {
- hiveVarchar = (HiveVarchar) object;
- } else {
- hiveVarchar = ((HiveVarcharWritable) object).getHiveVarchar();
+ switch (targetCategory) {
+ case PRIMITIVE:
+ PrimitiveCategory targetPrimitiveCategory = targetPrimitiveCategories[logicalColumnIndex];
+ switch (targetPrimitiveCategory) {
+ case VOID:
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ case BOOLEAN:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ (PrimitiveObjectInspectorUtils.getBoolean(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]) ? 1 : 0);
+ break;
+ case BYTE:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ PrimitiveObjectInspectorUtils.getByte(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ break;
+ case SHORT:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ PrimitiveObjectInspectorUtils.getShort(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ break;
+ case INT:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ PrimitiveObjectInspectorUtils.getInt(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ break;
+ case LONG:
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ PrimitiveObjectInspectorUtils.getLong(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ break;
+ case TIMESTAMP:
+ {
+ Timestamp timestamp =
+ PrimitiveObjectInspectorUtils.getTimestamp(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ if (timestamp == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ ((TimestampColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, timestamp);
+ }
+ break;
+ case DATE:
+ {
+ Date date = PrimitiveObjectInspectorUtils.getDate(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ if (date == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ DateWritable dateWritable = (DateWritable) convertTargetWritables[logicalColumnIndex];
+ dateWritable.set(date);
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ dateWritable.getDays();
+ }
+ break;
+ case FLOAT:
+ ((DoubleColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ PrimitiveObjectInspectorUtils.getFloat(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ break;
+ case DOUBLE:
+ ((DoubleColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ PrimitiveObjectInspectorUtils.getDouble(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ break;
+ case BINARY:
+ {
+ BytesWritable bytesWritable =
+ PrimitiveObjectInspectorUtils.getBinary(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ if (bytesWritable == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex, bytesWritable.getBytes(), 0, bytesWritable.getLength());
+ }
+ break;
+ case STRING:
+ {
+ String string = PrimitiveObjectInspectorUtils.getString(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ if (string == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ Text text = (Text) convertTargetWritables[logicalColumnIndex];
+ text.set(string);
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex, text.getBytes(), 0, text.getLength());
+ }
+ break;
+ case VARCHAR:
+ {
+ // UNDONE: Performance problem with conversion to String, then bytes...
+
+ HiveVarchar hiveVarchar =
+ PrimitiveObjectInspectorUtils.getHiveVarchar(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ if (hiveVarchar == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+
+ // TODO: Do we need maxLength checking?
+
+ byte[] bytes = hiveVarchar.getValue().getBytes();
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex, bytes, 0, bytes.length);
+ }
+ break;
+ case CHAR:
+ {
+ // UNDONE: Performance problem with conversion to String, then bytes...
+
+ HiveChar hiveChar =
+ PrimitiveObjectInspectorUtils.getHiveChar(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ if (hiveChar == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ // We store CHAR in vector row batch with padding stripped.
+
+ // TODO: Do we need maxLength checking?
+
+ byte[] bytes = hiveChar.getStrippedValue().getBytes();
+ ((BytesColumnVector) batch.cols[projectionColumnNum]).setVal(
+ batchIndex, bytes, 0, bytes.length);
+ }
+ break;
+ case DECIMAL:
+ {
+ HiveDecimal hiveDecimal =
+ PrimitiveObjectInspectorUtils.getHiveDecimal(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ if (hiveDecimal == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ ((DecimalColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, hiveDecimal);
+ }
+ break;
+ case INTERVAL_YEAR_MONTH:
+ {
+ HiveIntervalYearMonth intervalYearMonth =
+ PrimitiveObjectInspectorUtils.getHiveIntervalYearMonth(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ if (intervalYearMonth == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] =
+ intervalYearMonth.getTotalMonths();
+ }
+ break;
+ case INTERVAL_DAY_TIME:
+ {
+ HiveIntervalDayTime intervalDayTime =
+ PrimitiveObjectInspectorUtils.getHiveIntervalDayTime(
+ object, convertSourcePrimitiveObjectInspectors[logicalColumnIndex]);
+ if (intervalDayTime == null) {
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
+ }
+ ((IntervalDayTimeColumnVector) batch.cols[projectionColumnNum]).set(
+ batchIndex, intervalDayTime);
+ }
+ break;
+ default:
+ throw new RuntimeException("Primitive category " + targetPrimitiveCategory.name() +
+ " not supported");
}
- byte[] bytes = hiveVarchar.getValue().getBytes();
- colVector.setVal(batchIndex, bytes, 0, bytes.length);
- colVector.isNull[batchIndex] = false;
+ break;
+ default:
+ throw new RuntimeException("Category " + targetCategory.name() + " not supported");
}
- }
- }
-
- private class CharAssigner extends AbstractBytesAssigner {
+ } catch (NumberFormatException e) {
- CharAssigner(int columnIndex) {
- super(columnIndex);
+ // Some of the conversion methods throw this exception on numeric parsing errors.
+ VectorizedBatchUtil.setNullColIsNullValue(batch.cols[projectionColumnNum], batchIndex);
+ return;
}
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
- } else {
- // We store CHAR type stripped of pads.
- HiveChar hiveChar;
- if (object instanceof HiveChar) {
- hiveChar = (HiveChar) object;
- } else {
- hiveChar = ((HiveCharWritable) object).getHiveChar();
- }
-
- // We store CHAR in vector row batch with padding stripped.
- byte[] bytes = hiveChar.getStrippedValue().getBytes();
- colVector.setVal(batchIndex, bytes, 0, bytes.length);
- colVector.isNull[batchIndex] = false;
- }
- }
+ // We always set the null flag to false when there is a value.
+ batch.cols[projectionColumnNum].isNull[batchIndex] = false;
}
- private class DecimalAssigner extends Assigner {
-
- protected DecimalColumnVector colVector;
-
- DecimalAssigner(int columnIndex) {
- super(columnIndex);
- }
-
- @Override
- void setColumnVector(VectorizedRowBatch batch) {
- colVector = (DecimalColumnVector) batch.cols[columnIndex];
- }
-
- @Override
- void forgetColumnVector() {
- colVector = null;
- }
-
- @Override
- void assign(int batchIndex, Object object) {
- if (object == null) {
- VectorizedBatchUtil.setNullColIsNullValue(colVector, batchIndex);
+ /*
+ * Assign a row from an array of objects.
+ */
+ public void assignRow(VectorizedRowBatch batch, int batchIndex, Object[] objects) {
+ final int count = isConvert.length;
+ for (int i = 0; i < count; i++) {
+ if (isConvert[i]) {
+ assignConvertRowColumn(batch, batchIndex, i, objects[i]);
} else {
- if (object instanceof HiveDecimal) {
- colVector.set(batchIndex, (HiveDecimal) object);
- } else {
- colVector.set(batchIndex, (HiveDecimalWritable) object);
- }
- colVector.isNull[batchIndex] = false;
+ assignRowColumn(batch, batchIndex, i, objects[i]);
}
}
}
- private Assigner createAssigner(PrimitiveTypeInfo primitiveTypeInfo, int columnIndex) throws HiveException {
- PrimitiveCategory primitiveCategory = primitiveTypeInfo.getPrimitiveCategory();
- Assigner assigner;
- switch (primitiveCategory) {
- case VOID:
- assigner = new VoidAssigner(columnIndex);
- break;
- case BOOLEAN:
- assigner = new BooleanAssigner(columnIndex);
- break;
- case BYTE:
- assigner = new ByteAssigner(columnIndex);
- break;
- case SHORT:
- assigner = new ShortAssigner(columnIndex);
- break;
- case INT:
- assigner = new IntAssigner(columnIndex);
- break;
- case LONG:
- assigner = new LongAssigner(columnIndex);
- break;
- case TIMESTAMP:
- assigner = new TimestampAssigner(columnIndex);
- break;
- case DATE:
- assigner = new DateAssigner(columnIndex);
- break;
- case FLOAT:
- assigner = new FloatAssigner(columnIndex);
- break;
- case DOUBLE:
- assigner = new DoubleAssigner(columnIndex);
- break;
- case BINARY:
- assigner = new BinaryAssigner(columnIndex);
- break;
- case STRING:
- assigner = new StringAssigner(columnIndex);
- break;
- case VARCHAR:
- assigner = new VarCharAssigner(columnIndex);
- break;
- case CHAR:
- assigner = new CharAssigner(columnIndex);
- break;
- case DECIMAL:
- assigner = new DecimalAssigner(columnIndex);
- break;
- case INTERVAL_YEAR_MONTH:
- assigner = new IntervalYearMonthAssigner(columnIndex);
- break;
- case INTERVAL_DAY_TIME:
- assigner = new IntervalDayTimeAssigner(columnIndex);
- break;
- default:
- throw new HiveException("No vector row assigner for primitive category " +
- primitiveCategory);
- }
- return assigner;
- }
-
- Assigner[] assigners;
-
- public void init(StructObjectInspector structObjectInspector, List<Integer> projectedColumns) throws HiveException {
-
- List<? extends StructField> fields = structObjectInspector.getAllStructFieldRefs();
- assigners = new Assigner[fields.size()];
-
- int i = 0;
- for (StructField field : fields) {
- int columnIndex = projectedColumns.get(i);
- ObjectInspector fieldInspector = field.getFieldObjectInspector();
- PrimitiveTypeInfo primitiveTypeInfo = (PrimitiveTypeInfo) TypeInfoUtils.getTypeInfoFromTypeString(
- fieldInspector.getTypeName());
- assigners[i] = createAssigner(primitiveTypeInfo, columnIndex);
- i++;
- }
- }
-
- public void init(List<String> typeNames) throws HiveException {
-
- assigners = new Assigner[typeNames.size()];
-
- int i = 0;
- for (String typeName : typeNames) {
- PrimitiveTypeInfo primitiveTypeInfo = (PrimitiveTypeInfo) TypeInfoUtils.getTypeInfoFromTypeString(typeName);
- assigners[i] = createAssigner(primitiveTypeInfo, i);
- i++;
- }
- }
+ /*
+ * Assign a row from a list of standard objects up to a count
+ */
+ public void assignRow(VectorizedRowBatch batch, int batchIndex,
+ List<Object> standardObjects, int columnCount) {
- protected void setBatch(VectorizedRowBatch batch) throws HiveException {
- for (int i = 0; i < assigners.length; i++) {
- Assigner assigner = assigners[i];
- int columnIndex = assigner.getColumnIndex();
- if (batch.cols[columnIndex] == null) {
- throw new HiveException("Unexpected null vector column " + columnIndex);
+ for (int i = 0; i < columnCount; i++) {
+ if (isConvert[i]) {
+ assignConvertRowColumn(batch, batchIndex, i, standardObjects.get(i));
+ } else {
+ assignRowColumn(batch, batchIndex, i, standardObjects.get(i));
}
- assigner.setColumnVector(batch);
- }
- }
-
- protected void forgetBatch() {
- for (Assigner assigner : assigners) {
- assigner.forgetColumnVector();
}
}
-
- public void assignRowColumn(int batchIndex, int logicalColumnIndex, Object object) {
- assigners[logicalColumnIndex].assign(batchIndex, object);
- }
-
- public void assignRow(int batchIndex, Object[] objects) {
- int i = 0;
- for (Assigner assigner : assigners) {
- assigner.assign(batchIndex, objects[i++]);
- }
- }
-
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRowDynBatch.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRowDynBatch.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRowDynBatch.java
deleted file mode 100644
index a696825..0000000
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRowDynBatch.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.ql.exec.vector;
-
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-
-/**
- * This class assigns specified columns of a VectorizedRowBatch row from a Writable row Object[].
- *
- * The caller provides the hive type names and target column numbers in the order desired to
- * assign from the Writable row Object[].
- *
- * This class is for use when the batch being assigned may change each time before processOp
- * is called.
- */
-public class VectorAssignRowDynBatch extends VectorAssignRow {
-
- public void setBatchOnEntry(VectorizedRowBatch batch) throws HiveException {
- setBatch(batch);
- }
-
- public void forgetBatchOnExit() {
- forgetBatch();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRowSameBatch.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRowSameBatch.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRowSameBatch.java
deleted file mode 100644
index 8c7c2ad..0000000
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRowSameBatch.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.ql.exec.vector;
-
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-
-/**
- * This class assigns specified columns of a VectorizedRowBatch row from a Writable row Object[].
- *
- * The caller provides the hive type names and target column numbers in the order desired to
- * assign from the Writable row Object[].
- *
- * This class is for use when the batch being assigned is always the same.
- */
-public class VectorAssignRowSameBatch extends VectorAssignRow {
-
- public void setOneBatch(VectorizedRowBatch batch) throws HiveException {
- setBatch(batch);
- }
-}
\ No newline at end of file
[44/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRowSameBatch.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRowSameBatch.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRowSameBatch.java
deleted file mode 100644
index faec0aa..0000000
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRowSameBatch.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.ql.exec.vector;
-
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-
-/**
- * This class extracts specified VectorizedRowBatch row columns into a Writable row Object[].
- *
- * The caller provides the hive type names and target column numbers in the order desired to
- * extract from the Writable row Object[].
- *
- * This class is for use when the batch being assigned is always the same.
- */
-public class VectorExtractRowSameBatch extends VectorExtractRow {
-
- public void setOneBatch(VectorizedRowBatch batch) throws HiveException {
- setBatch(batch);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFileSinkOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFileSinkOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFileSinkOperator.java
index a3082c3..ff88b85 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFileSinkOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFileSinkOperator.java
@@ -43,7 +43,7 @@ public class VectorFileSinkOperator extends FileSinkOperator {
private transient boolean firstBatch;
- private transient VectorExtractRowDynBatch vectorExtractRowDynBatch;
+ private transient VectorExtractRow vectorExtractRow;
protected transient Object[] singleRow;
@@ -80,30 +80,26 @@ public class VectorFileSinkOperator extends FileSinkOperator {
public void process(Object data, int tag) throws HiveException {
VectorizedRowBatch batch = (VectorizedRowBatch) data;
if (firstBatch) {
- vectorExtractRowDynBatch = new VectorExtractRowDynBatch();
- vectorExtractRowDynBatch.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
+ vectorExtractRow = new VectorExtractRow();
+ vectorExtractRow.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
- singleRow = new Object[vectorExtractRowDynBatch.getCount()];
+ singleRow = new Object[vectorExtractRow.getCount()];
firstBatch = false;
}
- vectorExtractRowDynBatch.setBatchOnEntry(batch);
-
if (batch.selectedInUse) {
int selected[] = batch.selected;
for (int logical = 0 ; logical < batch.size; logical++) {
int batchIndex = selected[logical];
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
super.process(singleRow, tag);
}
} else {
for (int batchIndex = 0 ; batchIndex < batch.size; batchIndex++) {
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
super.process(singleRow, tag);
}
}
-
- vectorExtractRowDynBatch.forgetBatchOnExit();
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java
index f20f614..98a9bf6 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java
@@ -103,7 +103,7 @@ public class VectorGroupByOperator extends Operator<GroupByDesc> implements
private transient VectorizedRowBatch outputBatch;
private transient VectorizedRowBatchCtx vrbCtx;
- private transient VectorAssignRowSameBatch vectorAssignRowSameBatch;
+ private transient VectorAssignRow vectorAssignRow;
private transient int numEntriesHashTable;
@@ -823,9 +823,8 @@ public class VectorGroupByOperator extends Operator<GroupByDesc> implements
vrbCtx = new VectorizedRowBatchCtx();
vrbCtx.init((StructObjectInspector) outputObjInspector, vOutContext.getScratchColumnTypeNames());
outputBatch = vrbCtx.createVectorizedRowBatch();
- vectorAssignRowSameBatch = new VectorAssignRowSameBatch();
- vectorAssignRowSameBatch.init((StructObjectInspector) outputObjInspector, vOutContext.getProjectedColumns());
- vectorAssignRowSameBatch.setOneBatch(outputBatch);
+ vectorAssignRow = new VectorAssignRow();
+ vectorAssignRow.init((StructObjectInspector) outputObjInspector, vOutContext.getProjectedColumns());
}
} catch (HiveException he) {
@@ -912,11 +911,11 @@ public class VectorGroupByOperator extends Operator<GroupByDesc> implements
} else {
// Output keys and aggregates into the output batch.
for (int i = 0; i < outputKeyLength; ++i) {
- vectorAssignRowSameBatch.assignRowColumn(outputBatch.size, fi++,
+ vectorAssignRow.assignRowColumn(outputBatch, outputBatch.size, fi++,
keyWrappersBatch.getWritableKeyValue (kw, i, keyOutputWriters[i]));
}
for (int i = 0; i < aggregators.length; ++i) {
- vectorAssignRowSameBatch.assignRowColumn(outputBatch.size, fi++,
+ vectorAssignRow.assignRowColumn(outputBatch, outputBatch.size, fi++,
aggregators[i].evaluateOutput(agg.getAggregationBuffer(i)));
}
++outputBatch.size;
@@ -937,7 +936,7 @@ public class VectorGroupByOperator extends Operator<GroupByDesc> implements
throws HiveException {
int fi = outputKeyLength; // Start after group keys.
for (int i = 0; i < aggregators.length; ++i) {
- vectorAssignRowSameBatch.assignRowColumn(outputBatch.size, fi++,
+ vectorAssignRow.assignRowColumn(outputBatch, outputBatch.size, fi++,
aggregators[i].evaluateOutput(agg.getAggregationBuffer(i)));
}
++outputBatch.size;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinBaseOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinBaseOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinBaseOperator.java
index 6bed52f..902a183 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinBaseOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinBaseOperator.java
@@ -59,7 +59,7 @@ public class VectorMapJoinBaseOperator extends MapJoinOperator implements Vector
protected transient VectorizedRowBatch outputBatch;
protected transient VectorizedRowBatch scratchBatch; // holds restored (from disk) big table rows
- protected transient Map<ObjectInspector, VectorAssignRowSameBatch> outputVectorAssignRowMap;
+ protected transient Map<ObjectInspector, VectorAssignRow> outputVectorAssignRowMap;
protected transient VectorizedRowBatchCtx vrbCtx = null;
@@ -100,7 +100,7 @@ public class VectorMapJoinBaseOperator extends MapJoinOperator implements Vector
outputBatch = vrbCtx.createVectorizedRowBatch();
- outputVectorAssignRowMap = new HashMap<ObjectInspector, VectorAssignRowSameBatch>();
+ outputVectorAssignRowMap = new HashMap<ObjectInspector, VectorAssignRow>();
}
/**
@@ -109,15 +109,14 @@ public class VectorMapJoinBaseOperator extends MapJoinOperator implements Vector
@Override
protected void internalForward(Object row, ObjectInspector outputOI) throws HiveException {
Object[] values = (Object[]) row;
- VectorAssignRowSameBatch va = outputVectorAssignRowMap.get(outputOI);
+ VectorAssignRow va = outputVectorAssignRowMap.get(outputOI);
if (va == null) {
- va = new VectorAssignRowSameBatch();
+ va = new VectorAssignRow();
va.init((StructObjectInspector) outputOI, vOutContext.getProjectedColumns());
- va.setOneBatch(outputBatch);
outputVectorAssignRowMap.put(outputOI, va);
}
- va.assignRow(outputBatch.size, values);
+ va.assignRow(outputBatch, outputBatch.size, values);
++outputBatch.size;
if (outputBatch.size == VectorizedRowBatch.DEFAULT_SIZE) {
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java
index e8f4471..3323df3 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java
@@ -181,7 +181,9 @@ public class VectorMapJoinOperator extends VectorMapJoinBaseOperator {
joinValues[posBigTable] = vectorNodeEvaluators;
// Filtering is handled in the input batch processing
- filterMaps[posBigTable] = null;
+ if (filterMaps != null) {
+ filterMaps[posBigTable] = null;
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
index 0fe1188..22bebb0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
@@ -44,7 +44,7 @@ public class VectorMapJoinOuterFilteredOperator extends VectorMapJoinBaseOperato
private transient boolean firstBatch;
- private transient VectorExtractRowDynBatch vectorExtractRowDynBatch;
+ private transient VectorExtractRow vectorExtractRow;
protected transient Object[] singleRow;
@@ -94,33 +94,28 @@ public class VectorMapJoinOuterFilteredOperator extends VectorMapJoinBaseOperato
}
if (firstBatch) {
- vectorExtractRowDynBatch = new VectorExtractRowDynBatch();
- vectorExtractRowDynBatch.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
+ vectorExtractRow = new VectorExtractRow();
+ vectorExtractRow.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
- singleRow = new Object[vectorExtractRowDynBatch.getCount()];
+ singleRow = new Object[vectorExtractRow.getCount()];
firstBatch = false;
}
-
- vectorExtractRowDynBatch.setBatchOnEntry(batch);
-
// VectorizedBatchUtil.debugDisplayBatch( batch, "VectorReduceSinkOperator processOp ");
if (batch.selectedInUse) {
int selected[] = batch.selected;
for (int logical = 0 ; logical < batch.size; logical++) {
int batchIndex = selected[logical];
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
super.process(singleRow, tag);
}
} else {
for (int batchIndex = 0 ; batchIndex < batch.size; batchIndex++) {
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
super.process(singleRow, tag);
}
}
-
- vectorExtractRowDynBatch.forgetBatchOnExit();
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapOperator.java
index 9f0c24e..6979956 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapOperator.java
@@ -18,20 +18,422 @@
package org.apache.hadoop.hive.ql.exec.vector;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.CompilationOpContext;
-import org.apache.hadoop.hive.ql.exec.MapOperator;
+import org.apache.hadoop.hive.ql.exec.AbstractMapOperator;
+import org.apache.hadoop.hive.ql.exec.Operator;
+import org.apache.hadoop.hive.ql.exec.TableScanOperator;
+import org.apache.hadoop.hive.ql.exec.Utilities;
import org.apache.hadoop.hive.ql.exec.mr.ExecMapperContext;
+import org.apache.hadoop.hive.ql.io.AcidUtils;
+import org.apache.hadoop.hive.ql.io.orc.OrcSerde;
+import org.apache.hadoop.hive.ql.io.orc.OrcStruct;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.plan.OperatorDesc;
+import org.apache.hadoop.hive.ql.plan.PartitionDesc;
+import org.apache.hadoop.hive.ql.plan.TableDesc;
+import org.apache.hadoop.hive.ql.plan.VectorPartitionDesc;
+import org.apache.hadoop.hive.ql.plan.VectorPartitionDesc.VectorMapOperatorReadType;
+import org.apache.hadoop.hive.ql.plan.api.OperatorType;
+import org.apache.hadoop.hive.serde2.ColumnProjectionUtils;
+import org.apache.hadoop.hive.serde2.Deserializer;
+import org.apache.hadoop.hive.serde2.SerDeException;
+import org.apache.hadoop.hive.serde2.SerDeUtils;
+import org.apache.hadoop.hive.serde2.fast.DeserializeRead;
+import org.apache.hadoop.hive.serde2.lazy.LazySerDeParameters;
+import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
+import org.apache.hadoop.hive.serde2.lazy.fast.LazySimpleDeserializeRead;
+import org.apache.hadoop.hive.serde2.lazybinary.fast.LazyBinaryDeserializeRead;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.ObjectInspectorCopyOption;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
+import org.apache.hadoop.io.BinaryComparable;
import org.apache.hadoop.io.Writable;
-import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
-public class VectorMapOperator extends MapOperator {
+/*
+ *
+ * The vectorized MapOperator.
+ *
+ * There are 3 modes of reading for vectorization:
+ *
+ * 1) One for the Vectorized Input File Format which returns VectorizedRowBatch as the row.
+ *
+ * 2) One for using VectorDeserializeRow to deserialize each row into the VectorizedRowBatch.
+ * Currently, these Input File Formats:
+ * TEXTFILE
+ * SEQUENCEFILE
+ *
+ * 3) And one using the regular partition deserializer to get the row object and assigning
+ * the row object into the VectorizedRowBatch with VectorAssignRow.
+ * This picks up Input File Format not supported by the other two.
+ */
+public class VectorMapOperator extends AbstractMapOperator {
private static final long serialVersionUID = 1L;
+ /*
+ * Overall information on this vectorized Map operation.
+ */
+ private transient HashMap<String, VectorPartitionContext> fileToPartitionContextMap;
+
+ private transient Operator<? extends OperatorDesc> oneRootOperator;
+
+ private transient TypeInfo tableStructTypeInfo;
+ private transient StandardStructObjectInspector tableStandardStructObjectInspector;
+
+ private transient TypeInfo[] tableRowTypeInfos;
+
+ private transient VectorizedRowBatchCtx batchContext;
+ // The context for creating the VectorizedRowBatch for this Map node that
+ // the Vectorizer class determined.
+
+ /*
+ * A different batch for vectorized Input File Format readers so they can do their work
+ * overlapped with work of the row collection that vector/row deserialization does. This allows
+ * the partitions to mix modes (e.g. for us to flush the previously batched rows on file change).
+ */
+ private transient VectorizedRowBatch vectorizedInputFileFormatBatch;
+
+ /*
+ * This batch is only used by vector/row deserializer readers.
+ */
+ private transient VectorizedRowBatch deserializerBatch;
+
+ private transient long batchCounter;
+
+ private transient int dataColumnCount;
+ private transient int partitionColumnCount;
+ private transient Object[] partitionValues;
+
+ private transient boolean[] columnsToIncludeTruncated;
+
+ /*
+ * The following members have context information for the current partition file being read.
+ */
+ private transient VectorMapOperatorReadType currentReadType;
+ private transient VectorPartitionContext currentVectorPartContext;
+ // Current vector map operator read type and context.
+
+ private transient int currentDataColumnCount;
+ // The number of data columns that the current reader will return.
+ // Only applicable for vector/row deserialization.
+
+ private transient DeserializeRead currentDeserializeRead;
+ private transient VectorDeserializeRow currentVectorDeserializeRow;
+ // When we are doing vector deserialization, these are the fast deserializer and
+ // the vector row deserializer.
+
+ private Deserializer currentPartDeserializer;
+ private StructObjectInspector currentPartRawRowObjectInspector;
+ private VectorAssignRow currentVectorAssign;
+ // When we are doing row deserialization, these are the regular deserializer,
+ // partition object inspector, and vector row assigner.
+
+ /*
+ * The abstract context for the 3 kinds of vectorized reading.
+ */
+ protected abstract class VectorPartitionContext {
+
+ protected final PartitionDesc partDesc;
+
+ String tableName;
+ String partName;
+
+ /*
+ * Initialization here is adapted from MapOperator.MapOpCtx.initObjectInspector method.
+ */
+ private VectorPartitionContext(PartitionDesc partDesc) {
+ this.partDesc = partDesc;
+
+ TableDesc td = partDesc.getTableDesc();
+
+ // Use table properties in case of unpartitioned tables,
+ // and the union of table properties and partition properties, with partition
+ // taking precedence, in the case of partitioned tables
+ Properties overlayedProps =
+ SerDeUtils.createOverlayedProperties(td.getProperties(), partDesc.getProperties());
+
+ Map<String, String> partSpec = partDesc.getPartSpec();
+
+ tableName = String.valueOf(overlayedProps.getProperty("name"));
+ partName = String.valueOf(partSpec);
+
+ }
+
+ public PartitionDesc getPartDesc() {
+ return partDesc;
+ }
+
+ /*
+ * Override this for concrete initialization.
+ */
+ public abstract void init(Configuration hconf)
+ throws SerDeException, Exception;
+
+ /*
+ * How many data columns is the partition reader actually supplying?
+ */
+ public abstract int getReaderDataColumnCount();
+ }
+
+ /*
+ * Context for reading a Vectorized Input File Format.
+ */
+ protected class VectorizedInputFileFormatPartitionContext extends VectorPartitionContext {
+
+ private VectorizedInputFileFormatPartitionContext(PartitionDesc partDesc) {
+ super(partDesc);
+ }
+
+ public void init(Configuration hconf) {
+ }
+
+ @Override
+ public int getReaderDataColumnCount() {
+ throw new RuntimeException("Not applicable");
+ }
+ }
+
+ /*
+ * Context for using VectorDeserializeRow to deserialize each row from the Input File Format
+ * into the VectorizedRowBatch.
+ */
+ protected class VectorDeserializePartitionContext extends VectorPartitionContext {
+
+ // This helper object deserializes known deserialization / input file format combination into
+ // columns of a row in a vectorized row batch.
+ private VectorDeserializeRow vectorDeserializeRow;
+
+ private DeserializeRead deserializeRead;
+
+ private int readerColumnCount;
+
+ private VectorDeserializePartitionContext(PartitionDesc partDesc) {
+ super(partDesc);
+ }
+
+ public VectorDeserializeRow getVectorDeserializeRow() {
+ return vectorDeserializeRow;
+ }
+
+ DeserializeRead getDeserializeRead() {
+ return deserializeRead;
+ }
+
+ @Override
+ public int getReaderDataColumnCount() {
+ return readerColumnCount;
+ }
+
+ public void init(Configuration hconf)
+ throws SerDeException, HiveException {
+ VectorPartitionDesc vectorPartDesc = partDesc.getVectorPartitionDesc();
+
+ // This type information specifies the data types the partition needs to read.
+ TypeInfo[] dataTypeInfos = vectorPartDesc.getDataTypeInfos();
+
+ switch (vectorPartDesc.getVectorDeserializeType()) {
+ case LAZY_SIMPLE:
+ {
+ LazySerDeParameters simpleSerdeParams =
+ new LazySerDeParameters(hconf, partDesc.getTableDesc().getProperties(),
+ LazySimpleSerDe.class.getName());
+
+ LazySimpleDeserializeRead lazySimpleDeserializeRead =
+ new LazySimpleDeserializeRead(dataTypeInfos, simpleSerdeParams);
+
+ vectorDeserializeRow =
+ new VectorDeserializeRow<LazySimpleDeserializeRead>(lazySimpleDeserializeRead);
+
+ // Initialize with data row type conversion parameters.
+ readerColumnCount =
+ vectorDeserializeRow.initConversion(tableRowTypeInfos, columnsToIncludeTruncated);
+
+ deserializeRead = lazySimpleDeserializeRead;
+ }
+ break;
+
+ case LAZY_BINARY:
+ {
+ LazyBinaryDeserializeRead lazyBinaryDeserializeRead =
+ new LazyBinaryDeserializeRead(dataTypeInfos);
+
+ vectorDeserializeRow =
+ new VectorDeserializeRow<LazyBinaryDeserializeRead>(lazyBinaryDeserializeRead);
+
+ // Initialize with data row type conversion parameters.
+ readerColumnCount =
+ vectorDeserializeRow.initConversion(tableRowTypeInfos, columnsToIncludeTruncated);
+
+ deserializeRead = lazyBinaryDeserializeRead;
+ }
+ break;
+
+ default:
+ throw new RuntimeException(
+ "Unexpected vector deserialize row type " + vectorPartDesc.getVectorDeserializeType().name());
+ }
+ }
+ }
+
+ /*
+ * Context for reading using the regular partition deserializer to get the row object and
+ * assigning the row object into the VectorizedRowBatch with VectorAssignRow
+ */
+ protected class RowDeserializePartitionContext extends VectorPartitionContext {
+
+ private Deserializer partDeserializer;
+ private StructObjectInspector partRawRowObjectInspector;
+ private VectorAssignRow vectorAssign;
+
+ private int readerColumnCount;
+
+ private RowDeserializePartitionContext(PartitionDesc partDesc) {
+ super(partDesc);
+ }
+
+ public Deserializer getPartDeserializer() {
+ return partDeserializer;
+ }
+
+ public StructObjectInspector getPartRawRowObjectInspector() {
+ return partRawRowObjectInspector;
+ }
+
+ public VectorAssignRow getVectorAssign() {
+ return vectorAssign;
+ }
+
+ @Override
+ public int getReaderDataColumnCount() {
+ return readerColumnCount;
+ }
+
+ public void init(Configuration hconf)
+ throws Exception {
+ VectorPartitionDesc vectorPartDesc = partDesc.getVectorPartitionDesc();
+
+ partDeserializer = partDesc.getDeserializer(hconf);
+
+ if (partDeserializer instanceof OrcSerde) {
+
+ // UNDONE: We need to get the table schema inspector from self-describing Input File
+ // Formats like ORC. Modify the ORC serde instead? For now, this works.
+
+ partRawRowObjectInspector =
+ (StructObjectInspector) OrcStruct.createObjectInspector(tableStructTypeInfo);
+
+ } else {
+ partRawRowObjectInspector =
+ (StructObjectInspector) partDeserializer.getObjectInspector();
+ }
+
+ TypeInfo[] dataTypeInfos = vectorPartDesc.getDataTypeInfos();
+
+ vectorAssign = new VectorAssignRow();
+
+ // Initialize with data type conversion parameters.
+ readerColumnCount =
+ vectorAssign.initConversion(dataTypeInfos, tableRowTypeInfos, columnsToIncludeTruncated);
+ }
+ }
+
+ public VectorPartitionContext createAndInitPartitionContext(PartitionDesc partDesc,
+ Configuration hconf)
+ throws SerDeException, Exception {
+
+ VectorPartitionDesc vectorPartDesc = partDesc.getVectorPartitionDesc();
+ VectorPartitionContext vectorPartitionContext;
+ VectorMapOperatorReadType vectorMapOperatorReadType =
+ vectorPartDesc.getVectorMapOperatorReadType();
+
+ if (vectorMapOperatorReadType == VectorMapOperatorReadType.VECTOR_DESERIALIZE ||
+ vectorMapOperatorReadType == VectorMapOperatorReadType.ROW_DESERIALIZE) {
+ // Verify hive.exec.schema.evolution is true or we have an ACID table so we are producing
+ // the table schema from ORC. The Vectorizer class assures this.
+ boolean isAcid =
+ AcidUtils.isTablePropertyTransactional(partDesc.getTableDesc().getProperties());
+ Preconditions.checkState(Utilities.isSchemaEvolutionEnabled(hconf, isAcid));
+ }
+
+ switch (vectorMapOperatorReadType) {
+ case VECTORIZED_INPUT_FILE_FORMAT:
+ vectorPartitionContext = new VectorizedInputFileFormatPartitionContext(partDesc);
+ break;
+
+ case VECTOR_DESERIALIZE:
+ vectorPartitionContext = new VectorDeserializePartitionContext(partDesc);
+ break;
+
+ case ROW_DESERIALIZE:
+ vectorPartitionContext = new RowDeserializePartitionContext(partDesc);
+ break;
+
+ default:
+ throw new RuntimeException("Unexpected vector MapOperator read type " +
+ vectorMapOperatorReadType.name());
+ }
+
+ vectorPartitionContext.init(hconf);
+
+ return vectorPartitionContext;
+ }
+
+ private void determineColumnsToInclude(Configuration hconf) {
+
+ columnsToIncludeTruncated = null;
+
+ List<Integer> columnsToIncludeTruncatedList = ColumnProjectionUtils.getReadColumnIDs(hconf);
+ if (columnsToIncludeTruncatedList != null &&
+ columnsToIncludeTruncatedList.size() > 0 && columnsToIncludeTruncatedList.size() < dataColumnCount ) {
+
+ // Partitioned columns will not be in the include list.
+
+ boolean[] columnsToInclude = new boolean[dataColumnCount];
+ Arrays.fill(columnsToInclude, false);
+ for (int columnNum : columnsToIncludeTruncatedList) {
+ columnsToInclude[columnNum] = true;
+ }
+
+ // Work backwards to find the highest wanted column.
+
+ int highestWantedColumnNum = -1;
+ for (int i = dataColumnCount - 1; i >= 0; i--) {
+ if (columnsToInclude[i]) {
+ highestWantedColumnNum = i;
+ break;
+ }
+ }
+ if (highestWantedColumnNum == -1) {
+ throw new RuntimeException("No columns to include?");
+ }
+ int newColumnCount = highestWantedColumnNum + 1;
+ if (newColumnCount == dataColumnCount) {
+ columnsToIncludeTruncated = columnsToInclude;
+ } else {
+ columnsToIncludeTruncated = Arrays.copyOf(columnsToInclude, newColumnCount);
+ }
+ }
+ }
+
/** Kryo ctor. */
- @VisibleForTesting
public VectorMapOperator() {
super();
}
@@ -40,29 +442,445 @@ public class VectorMapOperator extends MapOperator {
super(ctx);
}
+
+ /*
+ * This is the same as the setChildren method below but for empty tables.
+ */
+ @Override
+ public void initEmptyInputChildren(List<Operator<?>> children, Configuration hconf)
+ throws SerDeException, Exception {
+
+ // Get the single TableScanOperator. Vectorization only supports one input tree.
+ Preconditions.checkState(children.size() == 1);
+ oneRootOperator = children.get(0);
+
+ internalSetChildren(hconf);
+ }
+
+ @Override
+ public void setChildren(Configuration hconf) throws Exception {
+
+ // Get the single TableScanOperator. Vectorization only supports one input tree.
+ Iterator<Operator<? extends OperatorDesc>> aliasToWorkIterator =
+ conf.getAliasToWork().values().iterator();
+ oneRootOperator = aliasToWorkIterator.next();
+ Preconditions.checkState(!aliasToWorkIterator.hasNext());
+
+ internalSetChildren(hconf);
+ }
+
+ /*
+ * Create information for vector map operator.
+ * The member oneRootOperator has been set.
+ */
+ private void internalSetChildren(Configuration hconf) throws Exception {
+
+ // The setupPartitionContextVars uses the prior read type to flush the prior deserializerBatch,
+ // so set it here to none.
+ currentReadType = VectorMapOperatorReadType.NONE;
+
+ determineColumnsToInclude(hconf);
+
+ batchContext = conf.getVectorizedRowBatchCtx();
+
+ /*
+ * Use a different batch for vectorized Input File Format readers so they can do their work
+ * overlapped with work of the row collection that vector/row deserialization does. This allows
+ * the partitions to mix modes (e.g. for us to flush the previously batched rows on file change).
+ */
+ vectorizedInputFileFormatBatch =
+ batchContext.createVectorizedRowBatch(columnsToIncludeTruncated);
+ conf.setVectorizedRowBatch(vectorizedInputFileFormatBatch);
+
+ /*
+ * This batch is used by vector/row deserializer readers.
+ */
+ deserializerBatch = batchContext.createVectorizedRowBatch(columnsToIncludeTruncated);
+
+ batchCounter = 0;
+
+ dataColumnCount = batchContext.getDataColumnCount();
+ partitionColumnCount = batchContext.getPartitionColumnCount();
+ partitionValues = new Object[partitionColumnCount];
+
+ /*
+ * Create table related objects
+ */
+ tableStructTypeInfo =
+ TypeInfoFactory.getStructTypeInfo(
+ Arrays.asList(batchContext.getRowColumnNames()),
+ Arrays.asList(batchContext.getRowColumnTypeInfos()));
+ tableStandardStructObjectInspector =
+ (StandardStructObjectInspector)
+ TypeInfoUtils.getStandardWritableObjectInspectorFromTypeInfo(tableStructTypeInfo);
+
+ tableRowTypeInfos = batchContext.getRowColumnTypeInfos();
+
+ /*
+ * The Vectorizer class enforces that there is only one TableScanOperator, so
+ * we don't need the more complicated multiple root operator mapping that MapOperator has.
+ */
+ fileToPartitionContextMap = new HashMap<String, VectorPartitionContext>();
+
+ // Temporary map so we only create one partition context entry.
+ HashMap<PartitionDesc, VectorPartitionContext> partitionContextMap =
+ new HashMap<PartitionDesc, VectorPartitionContext>();
+
+ for (Map.Entry<String, ArrayList<String>> entry : conf.getPathToAliases().entrySet()) {
+ String path = entry.getKey();
+ PartitionDesc partDesc = conf.getPathToPartitionInfo().get(path);
+ ArrayList<String> aliases = entry.getValue();
+
+ VectorPartitionDesc vectorPartDesc = partDesc.getVectorPartitionDesc();
+ LOG.info("VectorMapOperator path: " + path +
+ ", read type " + vectorPartDesc.getVectorMapOperatorReadType().name() +
+ ", vector deserialize type " + vectorPartDesc.getVectorDeserializeType().name() +
+ ", aliases " + aliases);
+
+ VectorPartitionContext vectorPartitionContext;
+ if (!partitionContextMap.containsKey(partDesc)) {
+ vectorPartitionContext = createAndInitPartitionContext(partDesc, hconf);
+ partitionContextMap.put(partDesc, vectorPartitionContext);
+ } else {
+ vectorPartitionContext = partitionContextMap.get(partDesc);
+ }
+
+ fileToPartitionContextMap.put(path, vectorPartitionContext);
+ }
+
+ // Create list of one.
+ List<Operator<? extends OperatorDesc>> children =
+ new ArrayList<Operator<? extends OperatorDesc>>();
+ children.add(oneRootOperator);
+
+ setChildOperators(children);
+ }
+
+ @Override
+ public void initializeMapOperator(Configuration hconf) throws HiveException {
+ super.initializeMapOperator(hconf);
+
+ oneRootOperator.initialize(hconf, new ObjectInspector[] {tableStandardStructObjectInspector});
+ }
+
+ public void initializeContexts() throws HiveException {
+ Path fpath = getExecContext().getCurrentInputPath();
+ String nominalPath = getNominalPath(fpath);
+ setupPartitionContextVars(nominalPath);
+ }
+
+ // Find context for current input file
+ @Override
+ public void cleanUpInputFileChangedOp() throws HiveException {
+ super.cleanUpInputFileChangedOp();
+ Path fpath = getExecContext().getCurrentInputPath();
+ String nominalPath = getNominalPath(fpath);
+
+ setupPartitionContextVars(nominalPath);
+
+ // Add alias, table name, and partitions to hadoop conf so that their
+ // children will inherit these
+ oneRootOperator.setInputContext(currentVectorPartContext.tableName,
+ currentVectorPartContext.partName);
+ }
+
+ /*
+ * Setup the context for reading from the next partition file.
+ */
+ private void setupPartitionContextVars(String nominalPath) throws HiveException {
+
+ currentVectorPartContext = fileToPartitionContextMap.get(nominalPath);
+ PartitionDesc partDesc = currentVectorPartContext.getPartDesc();
+ VectorPartitionDesc vectorPartDesc = partDesc.getVectorPartitionDesc();
+ currentReadType = vectorPartDesc.getVectorMapOperatorReadType();
+
+ /*
+ * Setup for 3 different kinds of vectorized reading supported:
+ *
+ * 1) Read the Vectorized Input File Format which returns VectorizedRowBatch as the row.
+ *
+ * 2) Read using VectorDeserializeRow to deserialize each row into the VectorizedRowBatch.
+ *
+ * 3) And read using the regular partition deserializer to get the row object and assigning
+ * the row object into the VectorizedRowBatch with VectorAssignRow.
+ */
+ if (currentReadType == VectorMapOperatorReadType.VECTORIZED_INPUT_FILE_FORMAT) {
+
+ /*
+ * The Vectorized Input File Format reader is responsible for setting the partition column
+ * values, resetting and filling in the batch, etc.
+ */
+
+ /*
+ * Clear all the reading variables.
+ */
+ currentDataColumnCount = 0;
+
+ currentDeserializeRead = null;
+ currentVectorDeserializeRow = null;
+
+ currentPartDeserializer = null;
+ currentPartRawRowObjectInspector = null;
+ currentVectorAssign = null;
+
+ } else {
+
+ /*
+ * We will get "regular" single rows from the Input File Format reader that we will need
+ * to {vector|row} deserialize.
+ */
+ Preconditions.checkState(
+ currentReadType == VectorMapOperatorReadType.VECTOR_DESERIALIZE ||
+ currentReadType == VectorMapOperatorReadType.ROW_DESERIALIZE);
+
+ if (deserializerBatch.size > 0) {
+
+ /*
+ * Clear out any rows in the batch from previous partition since we are going to change
+ * the repeating partition column values.
+ */
+ batchCounter++;
+ oneRootOperator.process(deserializerBatch, 0);
+ deserializerBatch.reset();
+ if (oneRootOperator.getDone()) {
+ setDone(true);
+ return;
+ }
+
+ }
+
+ /*
+ * For this particular file, how many columns will we actually read?
+ */
+ currentDataColumnCount = currentVectorPartContext.getReaderDataColumnCount();
+
+ if (currentDataColumnCount < dataColumnCount) {
+
+ /*
+ * Default any additional data columns to NULL once for the file.
+ */
+ for (int i = currentDataColumnCount; i < dataColumnCount; i++) {
+ ColumnVector colVector = deserializerBatch.cols[i];
+ colVector.isNull[0] = true;
+ colVector.noNulls = false;
+ colVector.isRepeating = true;
+ }
+ }
+
+ if (batchContext.getPartitionColumnCount() > 0) {
+
+ /*
+ * The partition columns are set once for the partition and are marked repeating.
+ */
+ VectorizedRowBatchCtx.getPartitionValues(batchContext, partDesc, partitionValues);
+ batchContext.addPartitionColsToBatch(deserializerBatch, partitionValues);
+ }
+
+ /*
+ * Set or clear the rest of the reading variables based on {vector|row} deserialization.
+ */
+ switch (currentReadType) {
+ case VECTOR_DESERIALIZE:
+ {
+ VectorDeserializePartitionContext vectorDeserPartContext =
+ (VectorDeserializePartitionContext) currentVectorPartContext;
+
+ // Set ours.
+ currentDeserializeRead = vectorDeserPartContext.getDeserializeRead();
+ currentVectorDeserializeRow = vectorDeserPartContext.getVectorDeserializeRow();
+
+ // Clear the other ones.
+ currentPartDeserializer = null;
+ currentPartRawRowObjectInspector = null;
+ currentVectorAssign = null;
+
+ }
+ break;
+
+ case ROW_DESERIALIZE:
+ {
+ RowDeserializePartitionContext rowDeserPartContext =
+ (RowDeserializePartitionContext) currentVectorPartContext;
+
+ // Clear the other ones.
+ currentDeserializeRead = null;
+ currentVectorDeserializeRow = null;
+
+ // Set ours.
+ currentPartDeserializer = rowDeserPartContext.getPartDeserializer();
+ currentPartRawRowObjectInspector = rowDeserPartContext.getPartRawRowObjectInspector();
+ currentVectorAssign = rowDeserPartContext.getVectorAssign();
+ }
+ break;
+
+ default:
+ throw new RuntimeException("Unexpected VectorMapOperator read type " +
+ currentReadType.name());
+ }
+ }
+ }
+
+ @Override
+ public Deserializer getCurrentDeserializer() {
+ // Not applicable.
+ return null;
+ }
+
@Override
public void process(Writable value) throws HiveException {
+
// A mapper can span multiple files/partitions.
- // The serializers need to be reset if the input file changed
+ // The VectorPartitionContext need to be changed if the input file changed
ExecMapperContext context = getExecContext();
if (context != null && context.inputFileChanged()) {
// The child operators cleanup if input file has changed
cleanUpInputFileChanged();
}
- // The row has been converted to comply with table schema, irrespective of partition schema.
- // So, use tblOI (and not partOI) for forwarding
- try {
- int childrenDone = 0;
- for (MapOpCtx current : currentCtxs) {
- if (!current.forward(value)) {
- childrenDone++;
+ if (!oneRootOperator.getDone()) {
+
+ /*
+ * 3 different kinds of vectorized reading supported:
+ *
+ * 1) Read the Vectorized Input File Format which returns VectorizedRowBatch as the row.
+ *
+ * 2) Read using VectorDeserializeRow to deserialize each row into the VectorizedRowBatch.
+ *
+ * 3) And read using the regular partition deserializer to get the row object and assigning
+ * the row object into the VectorizedRowBatch with VectorAssignRow.
+ */
+ try {
+ if (currentReadType == VectorMapOperatorReadType.VECTORIZED_INPUT_FILE_FORMAT) {
+
+ /*
+ * The Vectorized Input File Format reader has already set the partition column
+ * values, reset and filled in the batch, etc.
+ *
+ * We pass the VectorizedRowBatch through here.
+ */
+ batchCounter++;
+ oneRootOperator.process(value, 0);
+ if (oneRootOperator.getDone()) {
+ setDone(true);
+ return;
+ }
+
+ } else {
+
+ /*
+ * We have a "regular" single rows from the Input File Format reader that we will need
+ * to deserialize.
+ */
+ Preconditions.checkState(
+ currentReadType == VectorMapOperatorReadType.VECTOR_DESERIALIZE ||
+ currentReadType == VectorMapOperatorReadType.ROW_DESERIALIZE);
+
+ if (deserializerBatch.size == deserializerBatch.DEFAULT_SIZE) {
+
+ /*
+ * Feed current full batch to operator tree.
+ */
+ batchCounter++;
+ oneRootOperator.process(deserializerBatch, 0);
+
+ /**
+ * Only reset the current data columns. Not any data columns defaulted to NULL
+ * because they are not present in the partition, and not partition columns.
+ */
+ for (int c = 0; c < currentDataColumnCount; c++) {
+ deserializerBatch.cols[c].reset();
+ deserializerBatch.cols[c].init();
+ }
+ deserializerBatch.selectedInUse = false;
+ deserializerBatch.size = 0;
+ deserializerBatch.endOfFile = false;
+
+ if (oneRootOperator.getDone()) {
+ setDone(true);
+ return;
+ }
+ }
+
+ /*
+ * Do the {vector|row} deserialization of the one row into the VectorizedRowBatch.
+ */
+ switch (currentReadType) {
+ case VECTOR_DESERIALIZE:
+ {
+ BinaryComparable binComp = (BinaryComparable) value;
+ currentDeserializeRead.set(binComp.getBytes(), 0, binComp.getLength());
+
+ // Deserialize and append new row using the current batch size as the index.
+ currentVectorDeserializeRow.deserialize(deserializerBatch, deserializerBatch.size++);
+ }
+ break;
+
+ case ROW_DESERIALIZE:
+ {
+ Object deserialized = currentPartDeserializer.deserialize(value);
+
+ // Note: Regardless of what the Input File Format returns, we have determined
+ // with VectorAppendRow.initConversion that only currentDataColumnCount columns
+ // have values we want.
+ //
+ // Any extra columns needed by the table schema were set to repeating null
+ // in the batch by setupPartitionContextVars.
+
+ // Convert input row to standard objects.
+ List<Object> standardObjects = new ArrayList<Object>();
+ ObjectInspectorUtils.copyToStandardObject(standardObjects, deserialized,
+ currentPartRawRowObjectInspector, ObjectInspectorCopyOption.WRITABLE);
+ if (standardObjects.size() < currentDataColumnCount) {
+ throw new HiveException("Input File Format returned row with too few columns");
+ }
+
+ // Append the deserialized standard object row using the current batch size
+ // as the index.
+ currentVectorAssign.assignRow(deserializerBatch, deserializerBatch.size++,
+ standardObjects, currentDataColumnCount);
+ }
+ break;
+
+ default:
+ throw new RuntimeException("Unexpected vector MapOperator read type " +
+ currentReadType.name());
+ }
}
+ } catch (Exception e) {
+ throw new HiveException("Hive Runtime Error while processing row ", e);
}
+ }
+ }
+
+ @Override
+ public void process(Object row, int tag) throws HiveException {
+ throw new HiveException("Hive 2 Internal error: should not be called!");
+ }
- rowsForwarded(childrenDone, ((VectorizedRowBatch)value).size);
- } catch (Exception e) {
- throw new HiveException("Hive Runtime Error while processing row ", e);
+ @Override
+ public void closeOp(boolean abort) throws HiveException {
+ if (!abort && oneRootOperator != null && !oneRootOperator.getDone() &&
+ currentReadType != VectorMapOperatorReadType.VECTORIZED_INPUT_FILE_FORMAT) {
+ if (deserializerBatch.size > 0) {
+ batchCounter++;
+ oneRootOperator.process(deserializerBatch, 0);
+ deserializerBatch.size = 0;
+ }
}
+ super.closeOp(abort);
+ }
+
+ @Override
+ public String getName() {
+ return getOperatorName();
+ }
+
+ static public String getOperatorName() {
+ return "MAP";
+ }
+
+ @Override
+ public OperatorType getType() {
+ return null;
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorReduceSinkOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorReduceSinkOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorReduceSinkOperator.java
index 74e5130..dd5e20f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorReduceSinkOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorReduceSinkOperator.java
@@ -40,7 +40,7 @@ public class VectorReduceSinkOperator extends ReduceSinkOperator {
private transient boolean firstBatch;
- private transient VectorExtractRowDynBatch vectorExtractRowDynBatch;
+ private transient VectorExtractRow vectorExtractRow;
protected transient Object[] singleRow;
@@ -81,32 +81,28 @@ public class VectorReduceSinkOperator extends ReduceSinkOperator {
VectorizedRowBatch batch = (VectorizedRowBatch) data;
if (firstBatch) {
- vectorExtractRowDynBatch = new VectorExtractRowDynBatch();
- vectorExtractRowDynBatch.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
+ vectorExtractRow = new VectorExtractRow();
+ vectorExtractRow.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
- singleRow = new Object[vectorExtractRowDynBatch.getCount()];
+ singleRow = new Object[vectorExtractRow.getCount()];
firstBatch = false;
}
- vectorExtractRowDynBatch.setBatchOnEntry(batch);
-
// VectorizedBatchUtil.debugDisplayBatch( batch, "VectorReduceSinkOperator processOp ");
if (batch.selectedInUse) {
int selected[] = batch.selected;
for (int logical = 0 ; logical < batch.size; logical++) {
int batchIndex = selected[logical];
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
super.process(singleRow, tag);
}
} else {
for (int batchIndex = 0 ; batchIndex < batch.size; batchIndex++) {
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
super.process(singleRow, tag);
}
}
-
- vectorExtractRowDynBatch.forgetBatchOnExit();
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java
index 85c8506..59153c8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java
@@ -76,7 +76,7 @@ public class VectorSMBMapJoinOperator extends SMBMapJoinOperator implements Vect
private transient VectorHashKeyWrapperBatch keyWrapperBatch;
- private transient Map<ObjectInspector, VectorAssignRowSameBatch> outputVectorAssignRowMap;
+ private transient Map<ObjectInspector, VectorAssignRow> outputVectorAssignRowMap;
private transient int batchIndex = -1;
@@ -159,7 +159,7 @@ public class VectorSMBMapJoinOperator extends SMBMapJoinOperator implements Vect
keyWrapperBatch = VectorHashKeyWrapperBatch.compileKeyWrapperBatch(keyExpressions);
- outputVectorAssignRowMap = new HashMap<ObjectInspector, VectorAssignRowSameBatch>();
+ outputVectorAssignRowMap = new HashMap<ObjectInspector, VectorAssignRow>();
// This key evaluator translates from the vectorized VectorHashKeyWrapper format
// into the row-mode MapJoinKey
@@ -287,15 +287,14 @@ public class VectorSMBMapJoinOperator extends SMBMapJoinOperator implements Vect
@Override
protected void internalForward(Object row, ObjectInspector outputOI) throws HiveException {
Object[] values = (Object[]) row;
- VectorAssignRowSameBatch va = outputVectorAssignRowMap.get(outputOI);
+ VectorAssignRow va = outputVectorAssignRowMap.get(outputOI);
if (va == null) {
- va = new VectorAssignRowSameBatch();
+ va = new VectorAssignRow();
va.init((StructObjectInspector) outputOI, vOutContext.getProjectedColumns());
- va.setOneBatch(outputBatch);
outputVectorAssignRowMap.put(outputOI, va);
}
- va.assignRow(outputBatch.size, values);
+ va.assignRow(outputBatch, outputBatch.size, values);
++outputBatch.size;
if (outputBatch.size == VectorizedRowBatch.DEFAULT_SIZE) {
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkHashTableSinkOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkHashTableSinkOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkHashTableSinkOperator.java
index 3d0b571..51d1436 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkHashTableSinkOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkHashTableSinkOperator.java
@@ -46,7 +46,7 @@ public class VectorSparkHashTableSinkOperator extends SparkHashTableSinkOperator
private transient boolean firstBatch;
- private transient VectorExtractRowDynBatch vectorExtractRowDynBatch;
+ private transient VectorExtractRow vectorExtractRow;
protected transient Object[] singleRow;
@@ -82,28 +82,26 @@ public class VectorSparkHashTableSinkOperator extends SparkHashTableSinkOperator
VectorizedRowBatch batch = (VectorizedRowBatch) row;
if (firstBatch) {
- vectorExtractRowDynBatch = new VectorExtractRowDynBatch();
- vectorExtractRowDynBatch.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
+ vectorExtractRow = new VectorExtractRow();
+ vectorExtractRow.init((StructObjectInspector) inputObjInspectors[0], vContext.getProjectedColumns());
- singleRow = new Object[vectorExtractRowDynBatch.getCount()];
+ singleRow = new Object[vectorExtractRow.getCount()];
firstBatch = false;
}
- vectorExtractRowDynBatch.setBatchOnEntry(batch);
+
if (batch.selectedInUse) {
int selected[] = batch.selected;
for (int logical = 0 ; logical < batch.size; logical++) {
int batchIndex = selected[logical];
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
super.process(singleRow, tag);
}
} else {
for (int batchIndex = 0 ; batchIndex < batch.size; batchIndex++) {
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
super.process(singleRow, tag);
}
}
-
- vectorExtractRowDynBatch.forgetBatchOnExit();
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkPartitionPruningSinkOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkPartitionPruningSinkOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkPartitionPruningSinkOperator.java
index e7ac531..2dc4d0e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkPartitionPruningSinkOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkPartitionPruningSinkOperator.java
@@ -42,7 +42,7 @@ public class VectorSparkPartitionPruningSinkOperator extends SparkPartitionPruni
protected transient boolean firstBatch;
- protected transient VectorExtractRowDynBatch vectorExtractRowDynBatch;
+ protected transient VectorExtractRow vectorExtractRow;
protected transient Object[] singleRow;
@@ -77,27 +77,24 @@ public class VectorSparkPartitionPruningSinkOperator extends SparkPartitionPruni
public void process(Object data, int tag) throws HiveException {
VectorizedRowBatch batch = (VectorizedRowBatch) data;
if (firstBatch) {
- vectorExtractRowDynBatch = new VectorExtractRowDynBatch();
- vectorExtractRowDynBatch.init((StructObjectInspector) inputObjInspectors[0],
+ vectorExtractRow = new VectorExtractRow();
+ vectorExtractRow.init((StructObjectInspector) inputObjInspectors[0],
vContext.getProjectedColumns());
- singleRow = new Object[vectorExtractRowDynBatch.getCount()];
+ singleRow = new Object[vectorExtractRow.getCount()];
firstBatch = false;
}
- vectorExtractRowDynBatch.setBatchOnEntry(batch);
ObjectInspector rowInspector = inputObjInspectors[0];
try {
Writable writableRow;
for (int logical = 0; logical < batch.size; logical++) {
int batchIndex = batch.selectedInUse ? batch.selected[logical] : logical;
- vectorExtractRowDynBatch.extractRow(batchIndex, singleRow);
+ vectorExtractRow.extractRow(batch, batchIndex, singleRow);
writableRow = serializer.serialize(singleRow, rowInspector);
writableRow.write(buffer);
}
} catch (Exception e) {
throw new HiveException(e);
}
-
- vectorExtractRowDynBatch.forgetBatchOnExit();
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
index 86025ef..5c55011 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
@@ -68,13 +68,11 @@ import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUD
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMaxLong;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMaxString;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMaxTimestamp;
-import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMaxIntervalDayTime;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMinDecimal;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMinDouble;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMinLong;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMinString;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMinTimestamp;
-import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFMinIntervalDayTime;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFStdPopDecimal;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFStdPopDouble;
import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.gen.VectorUDAFStdPopLong;
@@ -171,10 +169,6 @@ public class VectorizationContext {
public VectorizationContext(String contextName, List<String> initialColumnNames) {
this.contextName = contextName;
level = 0;
- if (LOG.isDebugEnabled()) {
- LOG.debug("VectorizationContext consructor contextName " + contextName + " level "
- + level + " initialColumnNames " + initialColumnNames);
- }
this.initialColumnNames = initialColumnNames;
this.projectionColumnNames = initialColumnNames;
@@ -195,9 +189,6 @@ public class VectorizationContext {
public VectorizationContext(String contextName) {
this.contextName = contextName;
level = 0;
- if (LOG.isDebugEnabled()) {
- LOG.debug("VectorizationContext consructor contextName " + contextName + " level " + level);
- }
initialColumnNames = new ArrayList<String>();
projectedColumns = new ArrayList<Integer>();
projectionColumnNames = new ArrayList<String>();
@@ -213,7 +204,6 @@ public class VectorizationContext {
public VectorizationContext(String contextName, VectorizationContext vContext) {
this.contextName = contextName;
level = vContext.level + 1;
- LOG.info("VectorizationContext consructor reference contextName " + contextName + " level " + level);
this.initialColumnNames = vContext.initialColumnNames;
this.projectedColumns = new ArrayList<Integer>();
this.projectionColumnNames = new ArrayList<String>();
@@ -485,7 +475,7 @@ public class VectorizationContext {
throw new HiveException("Could not vectorize expression: "+exprDesc.getName());
}
if (LOG.isDebugEnabled()) {
- LOG.debug("Input Expression = " + exprDesc.getTypeInfo()
+ LOG.debug("Input Expression = " + exprDesc.toString()
+ ", Vectorized Expression = " + ve.toString());
}
return ve;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java
index be04da8..9471e66 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.hive.ql.exec.vector;
import java.io.IOException;
+import java.sql.Date;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
@@ -28,8 +29,11 @@ import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.common.ObjectPair;
import org.apache.hadoop.hive.common.type.HiveChar;
+import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.common.type.HiveIntervalDayTime;
import org.apache.hadoop.hive.common.type.HiveIntervalYearMonth;
import org.apache.hadoop.hive.common.type.HiveVarchar;
@@ -49,12 +53,14 @@ import org.apache.hadoop.hive.serde2.objectinspector.ListObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.MapObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.StructField;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.UnionObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo;
@@ -63,6 +69,7 @@ import org.apache.hadoop.hive.serde2.typeinfo.StructTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
import org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
import org.apache.hadoop.io.BooleanWritable;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.DataOutputBuffer;
@@ -70,6 +77,7 @@ import org.apache.hadoop.io.FloatWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
+import org.apache.hadoop.io.Writable;
import org.apache.hive.common.util.DateUtils;
public class VectorizedBatchUtil {
@@ -638,6 +646,47 @@ public class VectorizedBatchUtil {
return newBatch;
}
+ public static Writable getPrimitiveWritable(PrimitiveCategory primitiveCategory) {
+ switch (primitiveCategory) {
+ case VOID:
+ return null;
+ case BOOLEAN:
+ return new BooleanWritable(false);
+ case BYTE:
+ return new ByteWritable((byte) 0);
+ case SHORT:
+ return new ShortWritable((short) 0);
+ case INT:
+ return new IntWritable(0);
+ case LONG:
+ return new LongWritable(0);
+ case TIMESTAMP:
+ return new TimestampWritable(new Timestamp(0));
+ case DATE:
+ return new DateWritable(new Date(0));
+ case FLOAT:
+ return new FloatWritable(0);
+ case DOUBLE:
+ return new DoubleWritable(0);
+ case BINARY:
+ return new BytesWritable(ArrayUtils.EMPTY_BYTE_ARRAY);
+ case STRING:
+ return new Text(ArrayUtils.EMPTY_BYTE_ARRAY);
+ case VARCHAR:
+ return new HiveVarcharWritable(new HiveVarchar(StringUtils.EMPTY, -1));
+ case CHAR:
+ return new HiveCharWritable(new HiveChar(StringUtils.EMPTY, -1));
+ case DECIMAL:
+ return new HiveDecimalWritable();
+ case INTERVAL_YEAR_MONTH:
+ return new HiveIntervalYearMonthWritable();
+ case INTERVAL_DAY_TIME:
+ return new HiveIntervalDayTimeWritable();
+ default:
+ throw new RuntimeException("Primitive category " + primitiveCategory.name() + " not supported");
+ }
+ }
+
public static String displayBytes(byte[] bytes, int start, int length) {
StringBuilder sb = new StringBuilder();
for (int i = start; i < start + length; i++) {
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java
index 5cbace4..6a3d64b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinGenerateResultOperator.java
@@ -186,7 +186,7 @@ public abstract class VectorMapJoinGenerateResultOperator extends VectorMapJoinC
int length = byteSegmentRef.getLength();
smallTableVectorDeserializeRow.setBytes(bytes, offset, length);
- smallTableVectorDeserializeRow.deserializeByValue(batch, batchIndex);
+ smallTableVectorDeserializeRow.deserialize(batch, batchIndex);
}
// VectorizedBatchUtil.debugDisplayOneRow(batch, batchIndex, "generateHashMapResultSingleValue big table");
@@ -253,7 +253,7 @@ public abstract class VectorMapJoinGenerateResultOperator extends VectorMapJoinC
int length = byteSegmentRef.getLength();
smallTableVectorDeserializeRow.setBytes(bytes, offset, length);
- smallTableVectorDeserializeRow.deserializeByValue(overflowBatch, overflowBatch.size);
+ smallTableVectorDeserializeRow.deserialize(overflowBatch, overflowBatch.size);
}
// VectorizedBatchUtil.debugDisplayOneRow(overflowBatch, overflowBatch.size, "generateHashMapResultMultiValue overflow");
@@ -304,7 +304,7 @@ public abstract class VectorMapJoinGenerateResultOperator extends VectorMapJoinC
int length = byteSegmentRef.getLength();
smallTableVectorDeserializeRow.setBytes(bytes, offset, length);
- smallTableVectorDeserializeRow.deserializeByValue(overflowBatch, overflowBatch.DEFAULT_SIZE);
+ smallTableVectorDeserializeRow.deserialize(overflowBatch, overflowBatch.DEFAULT_SIZE);
}
overflowBatch.size++;
@@ -545,7 +545,7 @@ public abstract class VectorMapJoinGenerateResultOperator extends VectorMapJoinC
// LOG.debug(CLASS_NAME + " reProcessBigTable serialized row #" + rowCount + ", offset " + offset + ", length " + length);
bigTableVectorDeserializeRow.setBytes(bytes, offset, length);
- bigTableVectorDeserializeRow.deserializeByValue(spillReplayBatch, spillReplayBatch.size);
+ bigTableVectorDeserializeRow.deserialize(spillReplayBatch, spillReplayBatch.size);
spillReplayBatch.size++;
if (spillReplayBatch.size == VectorizedRowBatch.DEFAULT_SIZE) {
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastLongHashUtil.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastLongHashUtil.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastLongHashUtil.java
index 1877f14..d02d1db 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastLongHashUtil.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastLongHashUtil.java
@@ -30,19 +30,19 @@ public class VectorMapJoinFastLongHashUtil {
long key = 0;
switch (hashTableKeyType) {
case BOOLEAN:
- key = (keyBinarySortableDeserializeRead.readBoolean() ? 1 : 0);
+ key = (keyBinarySortableDeserializeRead.currentBoolean ? 1 : 0);
break;
case BYTE:
- key = (long) keyBinarySortableDeserializeRead.readByte();
+ key = (long) keyBinarySortableDeserializeRead.currentByte;
break;
case SHORT:
- key = (long) keyBinarySortableDeserializeRead.readShort();
+ key = (long) keyBinarySortableDeserializeRead.currentShort;
break;
case INT:
- key = (long) keyBinarySortableDeserializeRead.readInt();
+ key = (long) keyBinarySortableDeserializeRead.currentInt;
break;
case LONG:
- key = keyBinarySortableDeserializeRead.readLong();
+ key = keyBinarySortableDeserializeRead.currentLong;
break;
default:
throw new RuntimeException("Unexpected hash table key type " + hashTableKeyType.name());
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastStringCommon.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastStringCommon.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastStringCommon.java
index adb8044..985fb1c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastStringCommon.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastStringCommon.java
@@ -22,7 +22,6 @@ import java.io.IOException;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.binarysortable.fast.BinarySortableDeserializeRead;
-import org.apache.hadoop.hive.serde2.fast.DeserializeRead.ReadStringResults;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
import org.apache.hadoop.io.BytesWritable;
@@ -40,8 +39,6 @@ public class VectorMapJoinFastStringCommon {
private BinarySortableDeserializeRead keyBinarySortableDeserializeRead;
- private ReadStringResults readStringResults;
-
public void adaptPutRow(VectorMapJoinFastBytesHashTable hashTable,
BytesWritable currentKey, BytesWritable currentValue) throws HiveException, IOException {
@@ -51,9 +48,11 @@ public class VectorMapJoinFastStringCommon {
if (keyBinarySortableDeserializeRead.readCheckNull()) {
return;
}
- keyBinarySortableDeserializeRead.readString(readStringResults);
- hashTable.add(readStringResults.bytes, readStringResults.start, readStringResults.length,
+ hashTable.add(
+ keyBinarySortableDeserializeRead.currentBytes,
+ keyBinarySortableDeserializeRead.currentBytesStart,
+ keyBinarySortableDeserializeRead.currentBytesLength,
currentValue);
}
@@ -61,6 +60,5 @@ public class VectorMapJoinFastStringCommon {
this.isOuterJoin = isOuterJoin;
PrimitiveTypeInfo[] primitiveTypeInfos = { TypeInfoFactory.stringTypeInfo };
keyBinarySortableDeserializeRead = new BinarySortableDeserializeRead(primitiveTypeInfos);
- readStringResults = keyBinarySortableDeserializeRead.createReadStringResults();
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java
index 46a5413..cfedf35 100755
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java
@@ -205,8 +205,8 @@ public class HiveInputFormat<K extends WritableComparable, V extends Writable>
if (!HiveConf.getBoolVar(conf, ConfVars.LLAP_IO_ENABLED, LlapProxy.isDaemon())) {
return inputFormat; // LLAP not enabled, no-op.
}
- boolean isSupported = inputFormat instanceof LlapWrappableInputFormatInterface,
- isVectorized = Utilities.isVectorMode(conf);
+ boolean isSupported = inputFormat instanceof LlapWrappableInputFormatInterface;
+ boolean isVectorized = Utilities.getUseVectorizedInputFileFormat(conf);
if (!isSupported || !isVectorized) {
LOG.info("Not using llap for " + inputFormat + ": supported = " + isSupported
+ ", vectorized = " + isVectorized);
@@ -225,7 +225,7 @@ public class HiveInputFormat<K extends WritableComparable, V extends Writable>
}
public static boolean canWrapAnyForLlap(Configuration conf, MapWork mapWork) {
- return Utilities.isVectorMode(conf, mapWork);
+ return Utilities.getUseVectorizedInputFileFormat(conf, mapWork);
}
public static boolean canWrapForLlap(Class<? extends InputFormat> inputFormatClass) {
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/io/NullRowsInputFormat.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/NullRowsInputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/NullRowsInputFormat.java
index c53d149..80858a9 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/NullRowsInputFormat.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/NullRowsInputFormat.java
@@ -72,7 +72,7 @@ public class NullRowsInputFormat implements InputFormat<NullWritable, NullWritab
private boolean addPartitionCols = true;
public NullRowsRecordReader(Configuration conf, InputSplit split) throws IOException {
- boolean isVectorMode = Utilities.isVectorMode(conf);
+ boolean isVectorMode = Utilities.getUseVectorizedInputFileFormat(conf);
if (LOG.isDebugEnabled()) {
LOG.debug("Null record reader in " + (isVectorMode ? "" : "non-") + "vector mode");
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
index fcb8ca4..33fe3b6 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
@@ -452,7 +452,7 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
List<FileStatus> files
) throws IOException {
- if (Utilities.isVectorMode(conf)) {
+ if (Utilities.getUseVectorizedInputFileFormat(conf)) {
return new VectorizedOrcInputFormat().validateInput(fs, conf, files);
}
@@ -1640,7 +1640,7 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
public org.apache.hadoop.mapred.RecordReader<NullWritable, OrcStruct>
getRecordReader(InputSplit inputSplit, JobConf conf,
Reporter reporter) throws IOException {
- boolean vectorMode = Utilities.isVectorMode(conf);
+ boolean vectorMode = Utilities.getUseVectorizedInputFileFormat(conf);
boolean isAcidRead = isAcidRead(conf, inputSplit);
if (!isAcidRead) {
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/MapredParquetInputFormat.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/MapredParquetInputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/MapredParquetInputFormat.java
index a4e35cb..5b65e5c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/MapredParquetInputFormat.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/MapredParquetInputFormat.java
@@ -59,7 +59,7 @@ public class MapredParquetInputFormat extends FileInputFormat<NullWritable, Arra
final org.apache.hadoop.mapred.Reporter reporter
) throws IOException {
try {
- if (Utilities.isVectorMode(job)) {
+ if (Utilities.getUseVectorizedInputFileFormat(job)) {
if (LOG.isDebugEnabled()) {
LOG.debug("Using vectorized record reader");
}
[36/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/avro_schema_evolution_native.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/avro_schema_evolution_native.q.out b/ql/src/test/results/clientpositive/avro_schema_evolution_native.q.out
index 98e541a..852a679 100644
--- a/ql/src/test/results/clientpositive/avro_schema_evolution_native.q.out
+++ b/ql/src/test/results/clientpositive/avro_schema_evolution_native.q.out
@@ -81,6 +81,44 @@ POSTHOOK: Lineage: episodes_partitioned PARTITION(doctor_pt=6).title SIMPLE [(ep
POSTHOOK: Lineage: episodes_partitioned PARTITION(doctor_pt=9).air_date SIMPLE [(episodes)episodes.FieldSchema(name:air_date, type:string, comment:initial date), ]
POSTHOOK: Lineage: episodes_partitioned PARTITION(doctor_pt=9).doctor SIMPLE [(episodes)episodes.FieldSchema(name:doctor, type:int, comment:main actor playing the Doctor in episode), ]
POSTHOOK: Lineage: episodes_partitioned PARTITION(doctor_pt=9).title SIMPLE [(episodes)episodes.FieldSchema(name:title, type:string, comment:episode title), ]
+title air_date doctor doctor_pt
+PREHOOK: query: DESCRIBE FORMATTED episodes_partitioned
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@episodes_partitioned
+POSTHOOK: query: DESCRIBE FORMATTED episodes_partitioned
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@episodes_partitioned
+col_name data_type comment
+# col_name data_type comment
+
+title string episode title
+air_date string initial date
+doctor int main actor playing the Doctor in episode
+
+# Partition Information
+# col_name data_type comment
+
+doctor_pt int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.avro.AvroSerDe
+InputFormat: org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
PREHOOK: query: ALTER TABLE episodes_partitioned
SET SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
WITH
@@ -149,6 +187,69 @@ SERDEPROPERTIES ('avro.schema.literal'='{
POSTHOOK: type: ALTERTABLE_SERIALIZER
POSTHOOK: Input: default@episodes_partitioned
POSTHOOK: Output: default@episodes_partitioned
+PREHOOK: query: DESCRIBE FORMATTED episodes_partitioned
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@episodes_partitioned
+POSTHOOK: query: DESCRIBE FORMATTED episodes_partitioned
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@episodes_partitioned
+col_name data_type comment
+# col_name data_type comment
+
+title string episode title
+air_date string initial date
+doctor int main actor playing the Doctor in episode
+value int default value
+
+# Partition Information
+# col_name data_type comment
+
+doctor_pt int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.avro.AvroSerDe
+InputFormat: org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ avro.schema.literal {\n \"namespace\": \"testing.hive.avro.serde\",\n \"name\": \"episodes\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\":\"title\",\n \"type\":\"string\",\n \"doc\":\"episode title\"\n },\n {\n \"name\":\"air_date\",\n \"type\":\"string\",\n \"doc\":\"initial date\"\n },\n {\n \"name\":\"doctor\",\n \"type\":\"int\",\n \"doc\":\"main actor playing the Doctor in episode\"\n },\n {\n \"name\":\"value\",\n \"type\":\"int\",\n \"default\":0,\n \"doc\":\"default value\"\n }\n ]\n}
+ serialization.format 1
+PREHOOK: query: EXPLAIN
+SELECT * FROM episodes_partitioned WHERE doctor_pt > 6
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT * FROM episodes_partitioned WHERE doctor_pt > 6
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: episodes_partitioned
+ Statistics: Num rows: 3 Data size: 889 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: title (type: string), air_date (type: string), doctor (type: int), value (type: int), doctor_pt (type: int)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 3 Data size: 889 Basic stats: COMPLETE Column stats: NONE
+ ListSink
+
PREHOOK: query: SELECT * FROM episodes_partitioned WHERE doctor_pt > 6
PREHOOK: type: QUERY
PREHOOK: Input: default@episodes_partitioned
@@ -161,6 +262,7 @@ POSTHOOK: Input: default@episodes_partitioned
POSTHOOK: Input: default@episodes_partitioned@doctor_pt=11
POSTHOOK: Input: default@episodes_partitioned@doctor_pt=9
#### A masked pattern was here ####
+episodes_partitioned.title episodes_partitioned.air_date episodes_partitioned.doctor episodes_partitioned.value episodes_partitioned.doctor_pt
Rose 26 March 2005 9 0 9
The Doctor's Wife 14 May 2011 11 0 11
The Eleventh Hour 3 April 2010 11 0 11
@@ -188,6 +290,7 @@ POSTHOOK: Input: default@episodes_partitioned@doctor_pt=5
POSTHOOK: Input: default@episodes_partitioned@doctor_pt=6
POSTHOOK: Input: default@episodes_partitioned@doctor_pt=9
#### A masked pattern was here ####
+episodes_partitioned.title episodes_partitioned.air_date episodes_partitioned.doctor episodes_partitioned.value episodes_partitioned.doctor_pt
An Unearthly Child 23 November 1963 1 0 1
Horror of Fang Rock 3 September 1977 4 0 4
Rose 26 March 2005 9 0 9
@@ -205,6 +308,7 @@ POSTHOOK: type: QUERY
POSTHOOK: Input: default@episodes_partitioned
POSTHOOK: Input: default@episodes_partitioned@doctor_pt=6
#### A masked pattern was here ####
+episodes_partitioned.title episodes_partitioned.air_date episodes_partitioned.doctor episodes_partitioned.value episodes_partitioned.doctor_pt
The Mysterious Planet 6 September 1986 6 0 6
PREHOOK: query: -- Fetch w/non-existent partition
SELECT * FROM episodes_partitioned WHERE doctor_pt = 7 LIMIT 5
@@ -216,3 +320,105 @@ SELECT * FROM episodes_partitioned WHERE doctor_pt = 7 LIMIT 5
POSTHOOK: type: QUERY
POSTHOOK: Input: default@episodes_partitioned
#### A masked pattern was here ####
+episodes_partitioned.title episodes_partitioned.air_date episodes_partitioned.doctor episodes_partitioned.value episodes_partitioned.doctor_pt
+PREHOOK: query: EXPLAIN
+SELECT * FROM episodes_partitioned WHERE doctor_pt > 6
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT * FROM episodes_partitioned WHERE doctor_pt > 6
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: episodes_partitioned
+ Statistics: Num rows: 3 Data size: 889 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: title (type: string), air_date (type: string), doctor (type: int), value (type: int), doctor_pt (type: int)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 3 Data size: 889 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 3 Data size: 889 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: SELECT * FROM episodes_partitioned WHERE doctor_pt > 6
+PREHOOK: type: QUERY
+PREHOOK: Input: default@episodes_partitioned
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=11
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=9
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM episodes_partitioned WHERE doctor_pt > 6
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@episodes_partitioned
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=11
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=9
+#### A masked pattern was here ####
+episodes_partitioned.title episodes_partitioned.air_date episodes_partitioned.doctor episodes_partitioned.value episodes_partitioned.doctor_pt
+Rose 26 March 2005 9 0 9
+The Doctor's Wife 14 May 2011 11 0 11
+The Eleventh Hour 3 April 2010 11 0 11
+PREHOOK: query: SELECT * FROM episodes_partitioned ORDER BY air_date LIMIT 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@episodes_partitioned
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=1
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=11
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=2
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=4
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=5
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=6
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=9
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM episodes_partitioned ORDER BY air_date LIMIT 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@episodes_partitioned
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=1
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=11
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=2
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=4
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=5
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=6
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=9
+#### A masked pattern was here ####
+episodes_partitioned.title episodes_partitioned.air_date episodes_partitioned.doctor episodes_partitioned.value episodes_partitioned.doctor_pt
+An Unearthly Child 23 November 1963 1 0 1
+Horror of Fang Rock 3 September 1977 4 0 4
+Rose 26 March 2005 9 0 9
+The Doctor's Wife 14 May 2011 11 0 11
+The Eleventh Hour 3 April 2010 11 0 11
+PREHOOK: query: SELECT * FROM episodes_partitioned WHERE doctor_pt = 6
+PREHOOK: type: QUERY
+PREHOOK: Input: default@episodes_partitioned
+PREHOOK: Input: default@episodes_partitioned@doctor_pt=6
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM episodes_partitioned WHERE doctor_pt = 6
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@episodes_partitioned
+POSTHOOK: Input: default@episodes_partitioned@doctor_pt=6
+#### A masked pattern was here ####
+episodes_partitioned.title episodes_partitioned.air_date episodes_partitioned.doctor episodes_partitioned.value episodes_partitioned.doctor_pt
+The Mysterious Planet 6 September 1986 6 0 6
+PREHOOK: query: SELECT * FROM episodes_partitioned WHERE doctor_pt = 7 LIMIT 5
+PREHOOK: type: QUERY
+PREHOOK: Input: default@episodes_partitioned
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM episodes_partitioned WHERE doctor_pt = 7 LIMIT 5
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@episodes_partitioned
+#### A masked pattern was here ####
+episodes_partitioned.title episodes_partitioned.air_date episodes_partitioned.doctor episodes_partitioned.value episodes_partitioned.doctor_pt
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/bucket_groupby.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_groupby.q.out b/ql/src/test/results/clientpositive/bucket_groupby.q.out
index d1414fe..ae736f9 100644
--- a/ql/src/test/results/clientpositive/bucket_groupby.q.out
+++ b/ql/src/test/results/clientpositive/bucket_groupby.q.out
@@ -41,14 +41,15 @@ POSTHOOK: Output: default@clustergroupby@ds=100
POSTHOOK: Lineage: clustergroupby PARTITION(ds=100).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: clustergroupby PARTITION(ds=100).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
PREHOOK: query: explain
-select key, count(1) from clustergroupby where ds='100' group by key limit 10
+select key, count(1) from clustergroupby where ds='100' group by key order by key limit 10
PREHOOK: type: QUERY
POSTHOOK: query: explain
-select key, count(1) from clustergroupby where ds='100' group by key limit 10
+select key, count(1) from clustergroupby where ds='100' group by key order by key limit 10
POSTHOOK: type: QUERY
STAGE DEPENDENCIES:
Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
STAGE PLANS:
Stage: Stage-1
@@ -72,7 +73,6 @@ STAGE PLANS:
sort order: +
Map-reduce partition columns: _col0 (type: string)
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
- TopN Hash Memory Usage: 0.1
value expressions: _col1 (type: bigint)
Reduce Operator Tree:
Group By Operator
@@ -81,6 +81,28 @@ STAGE PLANS:
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ value expressions: _col1 (type: bigint)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Limit
Number of rows: 10
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
@@ -98,12 +120,12 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: select key, count(1) from clustergroupby where ds='100' group by key limit 10
+PREHOOK: query: select key, count(1) from clustergroupby where ds='100' group by key order by key limit 10
PREHOOK: type: QUERY
PREHOOK: Input: default@clustergroupby
PREHOOK: Input: default@clustergroupby@ds=100
#### A masked pattern was here ####
-POSTHOOK: query: select key, count(1) from clustergroupby where ds='100' group by key limit 10
+POSTHOOK: query: select key, count(1) from clustergroupby where ds='100' group by key order by key limit 10
POSTHOOK: type: QUERY
POSTHOOK: Input: default@clustergroupby
POSTHOOK: Input: default@clustergroupby@ds=100
@@ -146,15 +168,16 @@ POSTHOOK: Lineage: clustergroupby PARTITION(ds=101).key SIMPLE [(src)src.FieldSc
POSTHOOK: Lineage: clustergroupby PARTITION(ds=101).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
PREHOOK: query: --normal--
explain
-select key, count(1) from clustergroupby where ds='101' group by key limit 10
+select key, count(1) from clustergroupby where ds='101' group by key order by key limit 10
PREHOOK: type: QUERY
POSTHOOK: query: --normal--
explain
-select key, count(1) from clustergroupby where ds='101' group by key limit 10
+select key, count(1) from clustergroupby where ds='101' group by key order by key limit 10
POSTHOOK: type: QUERY
STAGE DEPENDENCIES:
Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
STAGE PLANS:
Stage: Stage-1
@@ -178,7 +201,6 @@ STAGE PLANS:
sort order: +
Map-reduce partition columns: _col0 (type: string)
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
- TopN Hash Memory Usage: 0.1
value expressions: _col1 (type: bigint)
Reduce Operator Tree:
Group By Operator
@@ -187,6 +209,28 @@ STAGE PLANS:
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ value expressions: _col1 (type: bigint)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Limit
Number of rows: 10
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
@@ -204,12 +248,12 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: select key, count(1) from clustergroupby where ds='101' group by key limit 10
+PREHOOK: query: select key, count(1) from clustergroupby where ds='101' group by key order by key limit 10
PREHOOK: type: QUERY
PREHOOK: Input: default@clustergroupby
PREHOOK: Input: default@clustergroupby@ds=101
#### A masked pattern was here ####
-POSTHOOK: query: select key, count(1) from clustergroupby where ds='101' group by key limit 10
+POSTHOOK: query: select key, count(1) from clustergroupby where ds='101' group by key order by key limit 10
POSTHOOK: type: QUERY
POSTHOOK: Input: default@clustergroupby
POSTHOOK: Input: default@clustergroupby@ds=101
@@ -370,15 +414,16 @@ POSTHOOK: Input: default@clustergroupby@ds=101
3 416
PREHOOK: query: --constant--
explain
-select key, count(1) from clustergroupby where ds='101' group by key,3 limit 10
+select key, count(1) from clustergroupby where ds='101' group by key,3 order by key,3 limit 10
PREHOOK: type: QUERY
POSTHOOK: query: --constant--
explain
-select key, count(1) from clustergroupby where ds='101' group by key,3 limit 10
+select key, count(1) from clustergroupby where ds='101' group by key,3 order by key,3 limit 10
POSTHOOK: type: QUERY
STAGE DEPENDENCIES:
Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
STAGE PLANS:
Stage: Stage-1
@@ -402,7 +447,6 @@ STAGE PLANS:
sort order: ++
Map-reduce partition columns: _col0 (type: string), 3 (type: int)
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
- TopN Hash Memory Usage: 0.1
value expressions: _col2 (type: bigint)
Reduce Operator Tree:
Group By Operator
@@ -415,16 +459,38 @@ STAGE PLANS:
expressions: _col0 (type: string), _col2 (type: bigint)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
- Limit
- Number of rows: 10
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string), 3 (type: int)
+ sort order: ++
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ value expressions: _col1 (type: bigint)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ Limit
+ Number of rows: 10
+ Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
Stage: Stage-0
Fetch Operator
@@ -432,12 +498,12 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: select key, count(1) from clustergroupby where ds='101' group by key,3 limit 10
+PREHOOK: query: select key, count(1) from clustergroupby where ds='101' group by key,3 order by key,3 limit 10
PREHOOK: type: QUERY
PREHOOK: Input: default@clustergroupby
PREHOOK: Input: default@clustergroupby@ds=101
#### A masked pattern was here ####
-POSTHOOK: query: select key, count(1) from clustergroupby where ds='101' group by key,3 limit 10
+POSTHOOK: query: select key, count(1) from clustergroupby where ds='101' group by key,3 order by key,3 limit 10
POSTHOOK: type: QUERY
POSTHOOK: Input: default@clustergroupby
POSTHOOK: Input: default@clustergroupby@ds=101
@@ -454,15 +520,16 @@ POSTHOOK: Input: default@clustergroupby@ds=101
114 1
PREHOOK: query: --subquery--
explain
-select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key limit 10
+select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key order by key limit 10
PREHOOK: type: QUERY
POSTHOOK: query: --subquery--
explain
-select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key limit 10
+select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key order by key limit 10
POSTHOOK: type: QUERY
STAGE DEPENDENCIES:
Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
STAGE PLANS:
Stage: Stage-1
@@ -486,7 +553,6 @@ STAGE PLANS:
sort order: +
Map-reduce partition columns: _col0 (type: string)
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
- TopN Hash Memory Usage: 0.1
value expressions: _col1 (type: bigint)
Reduce Operator Tree:
Group By Operator
@@ -495,6 +561,28 @@ STAGE PLANS:
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ value expressions: _col1 (type: bigint)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Limit
Number of rows: 10
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
@@ -512,12 +600,12 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key limit 10
+PREHOOK: query: select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key order by key limit 10
PREHOOK: type: QUERY
PREHOOK: Input: default@clustergroupby
PREHOOK: Input: default@clustergroupby@ds=101
#### A masked pattern was here ####
-POSTHOOK: query: select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key limit 10
+POSTHOOK: query: select key, count(1) from (select value as key, key as value from clustergroupby where ds='101')subq group by key order by key limit 10
POSTHOOK: type: QUERY
POSTHOOK: Input: default@clustergroupby
POSTHOOK: Input: default@clustergroupby@ds=101
@@ -1020,14 +1108,15 @@ POSTHOOK: Output: default@clustergroupby@ds=102
POSTHOOK: Lineage: clustergroupby PARTITION(ds=102).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: clustergroupby PARTITION(ds=102).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
PREHOOK: query: explain
-select key, count(1) from clustergroupby where ds='102' group by key limit 10
+select key, count(1) from clustergroupby where ds='102' group by key order by key limit 10
PREHOOK: type: QUERY
POSTHOOK: query: explain
-select key, count(1) from clustergroupby where ds='102' group by key limit 10
+select key, count(1) from clustergroupby where ds='102' group by key order by key limit 10
POSTHOOK: type: QUERY
STAGE DEPENDENCIES:
Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
STAGE PLANS:
Stage: Stage-1
@@ -1052,7 +1141,6 @@ STAGE PLANS:
sort order: +
Map-reduce partition columns: _col0 (type: string)
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
- TopN Hash Memory Usage: 0.1
value expressions: _col1 (type: bigint)
Reduce Operator Tree:
Group By Operator
@@ -1061,6 +1149,28 @@ STAGE PLANS:
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ value expressions: _col1 (type: bigint)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Limit
Number of rows: 10
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
@@ -1078,12 +1188,12 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: select key, count(1) from clustergroupby where ds='102' group by key limit 10
+PREHOOK: query: select key, count(1) from clustergroupby where ds='102' group by key order by key limit 10
PREHOOK: type: QUERY
PREHOOK: Input: default@clustergroupby
PREHOOK: Input: default@clustergroupby@ds=102
#### A masked pattern was here ####
-POSTHOOK: query: select key, count(1) from clustergroupby where ds='102' group by key limit 10
+POSTHOOK: query: select key, count(1) from clustergroupby where ds='102' group by key order by key limit 10
POSTHOOK: type: QUERY
POSTHOOK: Input: default@clustergroupby
POSTHOOK: Input: default@clustergroupby@ds=102
@@ -1099,14 +1209,15 @@ POSTHOOK: Input: default@clustergroupby@ds=102
113 2
114 1
PREHOOK: query: explain
-select value, count(1) from clustergroupby where ds='102' group by value limit 10
+select value, count(1) from clustergroupby where ds='102' group by value order by value limit 10
PREHOOK: type: QUERY
POSTHOOK: query: explain
-select value, count(1) from clustergroupby where ds='102' group by value limit 10
+select value, count(1) from clustergroupby where ds='102' group by value order by value limit 10
POSTHOOK: type: QUERY
STAGE DEPENDENCIES:
Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
STAGE PLANS:
Stage: Stage-1
@@ -1130,7 +1241,6 @@ STAGE PLANS:
sort order: +
Map-reduce partition columns: _col0 (type: string)
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
- TopN Hash Memory Usage: 0.1
value expressions: _col1 (type: bigint)
Reduce Operator Tree:
Group By Operator
@@ -1139,6 +1249,28 @@ STAGE PLANS:
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ value expressions: _col1 (type: bigint)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Limit
Number of rows: 10
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
@@ -1156,12 +1288,12 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: select value, count(1) from clustergroupby where ds='102' group by value limit 10
+PREHOOK: query: select value, count(1) from clustergroupby where ds='102' group by value order by value limit 10
PREHOOK: type: QUERY
PREHOOK: Input: default@clustergroupby
PREHOOK: Input: default@clustergroupby@ds=102
#### A masked pattern was here ####
-POSTHOOK: query: select value, count(1) from clustergroupby where ds='102' group by value limit 10
+POSTHOOK: query: select value, count(1) from clustergroupby where ds='102' group by value order by value limit 10
POSTHOOK: type: QUERY
POSTHOOK: Input: default@clustergroupby
POSTHOOK: Input: default@clustergroupby@ds=102
@@ -1297,14 +1429,15 @@ POSTHOOK: Output: default@clustergroupby@ds=103
POSTHOOK: Lineage: clustergroupby PARTITION(ds=103).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: clustergroupby PARTITION(ds=103).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
PREHOOK: query: explain
-select key, count(1) from clustergroupby where ds='103' group by key limit 10
+select key, count(1) from clustergroupby where ds='103' group by key order by key limit 10
PREHOOK: type: QUERY
POSTHOOK: query: explain
-select key, count(1) from clustergroupby where ds='103' group by key limit 10
+select key, count(1) from clustergroupby where ds='103' group by key order by key limit 10
POSTHOOK: type: QUERY
STAGE DEPENDENCIES:
Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
STAGE PLANS:
Stage: Stage-1
@@ -1329,7 +1462,6 @@ STAGE PLANS:
sort order: +
Map-reduce partition columns: _col0 (type: string)
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
- TopN Hash Memory Usage: 0.1
value expressions: _col1 (type: bigint)
Reduce Operator Tree:
Group By Operator
@@ -1338,6 +1470,28 @@ STAGE PLANS:
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ value expressions: _col1 (type: bigint)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
Limit
Number of rows: 10
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
@@ -1355,12 +1509,12 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: select key, count(1) from clustergroupby where ds='103' group by key limit 10
+PREHOOK: query: select key, count(1) from clustergroupby where ds='103' group by key order by key limit 10
PREHOOK: type: QUERY
PREHOOK: Input: default@clustergroupby
PREHOOK: Input: default@clustergroupby@ds=103
#### A masked pattern was here ####
-POSTHOOK: query: select key, count(1) from clustergroupby where ds='103' group by key limit 10
+POSTHOOK: query: select key, count(1) from clustergroupby where ds='103' group by key order by key limit 10
POSTHOOK: type: QUERY
POSTHOOK: Input: default@clustergroupby
POSTHOOK: Input: default@clustergroupby@ds=103
@@ -1376,14 +1530,15 @@ POSTHOOK: Input: default@clustergroupby@ds=103
113 2
114 1
PREHOOK: query: explain
-select key, count(1) from clustergroupby where ds='103' group by value, key limit 10
+select key, count(1) from clustergroupby where ds='103' group by value, key order by key limit 10
PREHOOK: type: QUERY
POSTHOOK: query: explain
-select key, count(1) from clustergroupby where ds='103' group by value, key limit 10
+select key, count(1) from clustergroupby where ds='103' group by value, key order by key limit 10
POSTHOOK: type: QUERY
STAGE DEPENDENCIES:
Stage-1 is a root stage
- Stage-0 depends on stages: Stage-1
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
STAGE PLANS:
Stage: Stage-1
@@ -1407,7 +1562,6 @@ STAGE PLANS:
sort order: ++
Map-reduce partition columns: _col0 (type: string), _col1 (type: string)
Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
- TopN Hash Memory Usage: 0.1
value expressions: _col2 (type: bigint)
Reduce Operator Tree:
Group By Operator
@@ -1420,16 +1574,38 @@ STAGE PLANS:
expressions: _col1 (type: string), _col2 (type: bigint)
outputColumnNames: _col0, _col1
Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
- Limit
- Number of rows: 10
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+ Stage: Stage-2
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ TopN Hash Memory Usage: 0.1
+ value expressions: _col1 (type: bigint)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: bigint)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ Limit
+ Number of rows: 10
+ Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
- File Output Operator
- compressed: false
- Statistics: Num rows: 10 Data size: 100 Basic stats: COMPLETE Column stats: NONE
- table:
- input format: org.apache.hadoop.mapred.SequenceFileInputFormat
- output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
- serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
Stage: Stage-0
Fetch Operator
@@ -1437,12 +1613,12 @@ STAGE PLANS:
Processor Tree:
ListSink
-PREHOOK: query: select key, count(1) from clustergroupby where ds='103' group by value, key limit 10
+PREHOOK: query: select key, count(1) from clustergroupby where ds='103' group by value, key order by key limit 10
PREHOOK: type: QUERY
PREHOOK: Input: default@clustergroupby
PREHOOK: Input: default@clustergroupby@ds=103
#### A masked pattern was here ####
-POSTHOOK: query: select key, count(1) from clustergroupby where ds='103' group by value, key limit 10
+POSTHOOK: query: select key, count(1) from clustergroupby where ds='103' group by value, key order by key limit 10
POSTHOOK: type: QUERY
POSTHOOK: Input: default@clustergroupby
POSTHOOK: Input: default@clustergroupby@ds=103
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/groupby_sort_10.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_sort_10.q.out b/ql/src/test/results/clientpositive/groupby_sort_10.q.out
index c682e95..9b8d388 100644
--- a/ql/src/test/results/clientpositive/groupby_sort_10.q.out
+++ b/ql/src/test/results/clientpositive/groupby_sort_10.q.out
@@ -1,9 +1,13 @@
-PREHOOK: query: CREATE TABLE T1(key STRING, val STRING) PARTITIONED BY (ds string)
+PREHOOK: query: -- SORT_QUERY_RESULTS
+
+CREATE TABLE T1(key STRING, val STRING) PARTITIONED BY (ds string)
CLUSTERED BY (key) SORTED BY (key) INTO 2 BUCKETS
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
PREHOOK: Output: default@T1
-POSTHOOK: query: CREATE TABLE T1(key STRING, val STRING) PARTITIONED BY (ds string)
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+
+CREATE TABLE T1(key STRING, val STRING) PARTITIONED BY (ds string)
CLUSTERED BY (key) SORTED BY (key) INTO 2 BUCKETS
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_fetchwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_fetchwork_table.q.out b/ql/src/test/results/clientpositive/schema_evol_text_fetchwork_table.q.out
deleted file mode 100644
index f849004..0000000
--- a/ql/src/test/results/clientpositive/schema_evol_text_fetchwork_table.q.out
+++ /dev/null
@@ -1,298 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b
-1 new
-1 original
-2 new
-2 original
-3 new
-3 original
-4 new
-4 original
-5 new
-6 new
-PREHOOK: query: select a,b,c from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c
-1 new 10
-1 original NULL
-2 new 20
-2 original NULL
-3 new 30
-3 original NULL
-4 new 40
-4 original NULL
-5 new 100
-6 new 200
-PREHOOK: query: select a,b,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c d
-1 new 10 ten
-1 original NULL NULL
-2 new 20 twenty
-2 original NULL NULL
-3 new 30 thirty
-3 original NULL NULL
-4 new 40 forty
-4 original NULL NULL
-5 new 100 hundred
-6 new 200 two hundred
-PREHOOK: query: select a,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a c d
-1 10 ten
-1 NULL NULL
-2 20 twenty
-2 NULL NULL
-3 30 thirty
-3 NULL NULL
-4 40 forty
-4 NULL NULL
-5 100 hundred
-6 200 two hundred
-PREHOOK: query: select a,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a d
-1 NULL
-1 ten
-2 NULL
-2 twenty
-3 NULL
-3 thirty
-4 NULL
-4 forty
-5 hundred
-6 two hundred
-PREHOOK: query: select c from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select c from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-c
-10
-100
-20
-200
-30
-40
-NULL
-NULL
-NULL
-NULL
-PREHOOK: query: select d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-d
-NULL
-NULL
-NULL
-NULL
-forty
-hundred
-ten
-thirty
-twenty
-two hundred
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table2
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table2
-PREHOOK: query: insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table2
-PREHOOK: Output: default@table2
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table2
-POSTHOOK: Output: default@table2
-PREHOOK: query: insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: insert into table table2 values(5000, 'new'),(90000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(5000, 'new'),(90000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table2
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table2
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table2
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: DROP TABLE table1
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: DROP TABLE table1
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: DROP TABLE table2
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table2
-PREHOOK: Output: default@table2
-POSTHOOK: query: DROP TABLE table2
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table2
-POSTHOOK: Output: default@table2
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_mapwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_mapwork_table.q.out b/ql/src/test/results/clientpositive/schema_evol_text_mapwork_table.q.out
deleted file mode 100644
index f849004..0000000
--- a/ql/src/test/results/clientpositive/schema_evol_text_mapwork_table.q.out
+++ /dev/null
@@ -1,298 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table table1 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select a,b from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b
-1 new
-1 original
-2 new
-2 original
-3 new
-3 original
-4 new
-4 original
-5 new
-6 new
-PREHOOK: query: select a,b,c from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c
-1 new 10
-1 original NULL
-2 new 20
-2 original NULL
-3 new 30
-3 original NULL
-4 new 40
-4 original NULL
-5 new 100
-6 new 200
-PREHOOK: query: select a,b,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c d
-1 new 10 ten
-1 original NULL NULL
-2 new 20 twenty
-2 original NULL NULL
-3 new 30 thirty
-3 original NULL NULL
-4 new 40 forty
-4 original NULL NULL
-5 new 100 hundred
-6 new 200 two hundred
-PREHOOK: query: select a,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a c d
-1 10 ten
-1 NULL NULL
-2 20 twenty
-2 NULL NULL
-3 30 thirty
-3 NULL NULL
-4 40 forty
-4 NULL NULL
-5 100 hundred
-6 200 two hundred
-PREHOOK: query: select a,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a d
-1 NULL
-1 ten
-2 NULL
-2 twenty
-3 NULL
-3 thirty
-4 NULL
-4 forty
-5 hundred
-6 two hundred
-PREHOOK: query: select c from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select c from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-c
-10
-100
-20
-200
-30
-40
-NULL
-NULL
-NULL
-NULL
-PREHOOK: query: select d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-d
-NULL
-NULL
-NULL
-NULL
-forty
-hundred
-ten
-thirty
-twenty
-two hundred
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table2
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table2(a smallint, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table2
-PREHOOK: query: insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table2
-PREHOOK: Output: default@table2
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table table2 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table2
-POSTHOOK: Output: default@table2
-PREHOOK: query: insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: insert into table table2 values(5000, 'new'),(90000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@table2
-POSTHOOK: query: insert into table table2 values(5000, 'new'),(90000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@table2
-POSTHOOK: Lineage: table2.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table2.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table2
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table2
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table2
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: DROP TABLE table1
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: DROP TABLE table1
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: DROP TABLE table2
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table2
-PREHOOK: Output: default@table2
-POSTHOOK: query: DROP TABLE table2
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table2
-POSTHOOK: Output: default@table2
[06/50] [abbrv] hive git commit: HIVE-13390: HiveServer2: Add more
test to ZK service discovery using MiniHS2 (Vaibhav Gumashta reviewed by
Sushanth Sowmyan)
Posted by jd...@apache.org.
HIVE-13390: HiveServer2: Add more test to ZK service discovery using MiniHS2 (Vaibhav Gumashta reviewed by Sushanth Sowmyan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/3b2ea248
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/3b2ea248
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/3b2ea248
Branch: refs/heads/llap
Commit: 3b2ea248078bdf3a8372958cf51a989dc3883bcc
Parents: 4b5f0d9
Author: Vaibhav Gumashta <vg...@hortonworks.com>
Authored: Mon May 2 13:35:40 2016 -0700
Committer: Vaibhav Gumashta <vg...@hortonworks.com>
Committed: Mon May 2 13:35:40 2016 -0700
----------------------------------------------------------------------
data/files/keystore.jks | Bin 2248 -> 2206 bytes
data/files/keystore_exampledotcom.jks | Bin 0 -> 2222 bytes
data/files/truststore.jks | Bin 958 -> 1816 bytes
.../org/apache/hive/jdbc/miniHS2/MiniHS2.java | 35 ++++---
.../test/java/org/apache/hive/jdbc/TestSSL.java | 71 +++++++++++--
.../org/apache/hive/jdbc/HiveConnection.java | 99 +++++++++----------
.../hive/service/auth/HiveAuthFactory.java | 21 +++-
7 files changed, 148 insertions(+), 78 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/3b2ea248/data/files/keystore.jks
----------------------------------------------------------------------
diff --git a/data/files/keystore.jks b/data/files/keystore.jks
index 469d8a5..8f35af0 100644
Binary files a/data/files/keystore.jks and b/data/files/keystore.jks differ
http://git-wip-us.apache.org/repos/asf/hive/blob/3b2ea248/data/files/keystore_exampledotcom.jks
----------------------------------------------------------------------
diff --git a/data/files/keystore_exampledotcom.jks b/data/files/keystore_exampledotcom.jks
new file mode 100644
index 0000000..1d33aad
Binary files /dev/null and b/data/files/keystore_exampledotcom.jks differ
http://git-wip-us.apache.org/repos/asf/hive/blob/3b2ea248/data/files/truststore.jks
----------------------------------------------------------------------
diff --git a/data/files/truststore.jks b/data/files/truststore.jks
index 9c5d703..03dd2a3 100644
Binary files a/data/files/truststore.jks and b/data/files/truststore.jks differ
http://git-wip-us.apache.org/repos/asf/hive/blob/3b2ea248/itests/hive-unit/src/main/java/org/apache/hive/jdbc/miniHS2/MiniHS2.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/main/java/org/apache/hive/jdbc/miniHS2/MiniHS2.java b/itests/hive-unit/src/main/java/org/apache/hive/jdbc/miniHS2/MiniHS2.java
index 9ab5566..de1ce76 100644
--- a/itests/hive-unit/src/main/java/org/apache/hive/jdbc/miniHS2/MiniHS2.java
+++ b/itests/hive-unit/src/main/java/org/apache/hive/jdbc/miniHS2/MiniHS2.java
@@ -182,6 +182,8 @@ public class MiniHS2 extends AbstractHiveService {
private MiniHS2(HiveConf hiveConf, MiniClusterType miniClusterType, boolean useMiniKdc,
String serverPrincipal, String serverKeytab, boolean isMetastoreRemote,
boolean usePortsFromConf, String authType, boolean isHA) throws Exception {
+ // Always use localhost for hostname as some tests like SSL CN validation ones
+ // are tied to localhost being present in the certificate name
super(hiveConf, "localhost",
(usePortsFromConf ? hiveConf.getIntVar(HiveConf.ConfVars.HIVE_SERVER2_THRIFT_PORT) : MetaStoreUtils.findFreePort()),
(usePortsFromConf ? hiveConf.getIntVar(HiveConf.ConfVars.HIVE_SERVER2_THRIFT_HTTP_PORT) : MetaStoreUtils.findFreePort()));
@@ -382,29 +384,38 @@ public class MiniHS2 extends AbstractHiveService {
* @return
* @throws Exception
*/
- public String getJdbcURL(String dbName, String sessionConfExt, String hiveConfExt) throws Exception {
+ public String getJdbcURL(String dbName, String sessionConfExt, String hiveConfExt)
+ throws Exception {
sessionConfExt = (sessionConfExt == null ? "" : sessionConfExt);
hiveConfExt = (hiveConfExt == null ? "" : hiveConfExt);
- String krbConfig = "";
+ // Strip the leading ";" if provided
+ // (this is the assumption with which we're going to start configuring sessionConfExt)
+ if (sessionConfExt.startsWith(";")) {
+ sessionConfExt = sessionConfExt.substring(1);
+ }
if (isUseMiniKdc()) {
- krbConfig = "principal=" + serverPrincipal;
+ sessionConfExt = "principal=" + serverPrincipal + ";" + sessionConfExt;
}
if (isHttpTransportMode()) {
- sessionConfExt = "transportMode=http;httpPath=cliservice;" + sessionConfExt;
+ sessionConfExt = "transportMode=http;httpPath=cliservice" + ";" + sessionConfExt;
}
String baseJdbcURL;
if (isDynamicServiceDiscovery()) {
- String serviceDiscoveryConfig =
+ sessionConfExt =
"serviceDiscoveryMode=zooKeeper;zooKeeperNamespace="
- + getServerConf().getVar(HiveConf.ConfVars.HIVE_SERVER2_ZOOKEEPER_NAMESPACE) + ";";
- baseJdbcURL = getZKBaseJdbcURL() + dbName + ";" + serviceDiscoveryConfig;
+ + getServerConf().getVar(HiveConf.ConfVars.HIVE_SERVER2_ZOOKEEPER_NAMESPACE) + ";"
+ + sessionConfExt;
+ baseJdbcURL = getZKBaseJdbcURL();
+ } else {
+ baseJdbcURL = getBaseJdbcURL();
}
- else {
- baseJdbcURL = getBaseJdbcURL() + dbName + ";";
+
+ baseJdbcURL = baseJdbcURL + dbName;
+ if (!sessionConfExt.isEmpty()) {
+ baseJdbcURL = baseJdbcURL + ";" + sessionConfExt;
}
- baseJdbcURL = baseJdbcURL + krbConfig + ";" + sessionConfExt;
- if (!hiveConfExt.trim().equals("")) {
- baseJdbcURL = "?" + hiveConfExt;
+ if ((hiveConfExt != null) && (!hiveConfExt.trim().isEmpty())) {
+ baseJdbcURL = baseJdbcURL + "?" + hiveConfExt;
}
return baseJdbcURL;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/3b2ea248/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestSSL.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestSSL.java b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestSSL.java
index ea9acba..2f4db0d 100644
--- a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestSSL.java
+++ b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestSSL.java
@@ -18,6 +18,7 @@
package org.apache.hive.jdbc;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.File;
@@ -47,9 +48,10 @@ import org.slf4j.LoggerFactory;
public class TestSSL {
private static final Logger LOG = LoggerFactory.getLogger(TestSSL.class);
- private static final String KEY_STORE_NAME = "keystore.jks";
+ private static final String LOCALHOST_KEY_STORE_NAME = "keystore.jks";
+ private static final String EXAMPLEDOTCOM_KEY_STORE_NAME = "keystore_exampledotcom.jks";
private static final String TRUST_STORE_NAME = "truststore.jks";
- private static final String KEY_STORE_PASSWORD = "HiveJdbc";
+ private static final String KEY_STORE_TRUST_STORE_PASSWORD = "HiveJdbc";
private static final String JAVA_TRUST_STORE_PROP = "javax.net.ssl.trustStore";
private static final String JAVA_TRUST_STORE_PASS_PROP = "javax.net.ssl.trustStorePassword";
private static final String HS2_BINARY_MODE = "binary";
@@ -62,9 +64,9 @@ public class TestSSL {
private Connection hs2Conn = null;
private String dataFileDir = conf.get("test.data.files");
private Map<String, String> confOverlay;
- private final String SSL_CONN_PARAMS = ";ssl=true;sslTrustStore="
+ private final String SSL_CONN_PARAMS = "ssl=true;sslTrustStore="
+ URLEncoder.encode(dataFileDir + File.separator + TRUST_STORE_NAME) + ";trustStorePassword="
- + KEY_STORE_PASSWORD;
+ + KEY_STORE_TRUST_STORE_PASSWORD;
@BeforeClass
public static void beforeTest() throws Exception {
@@ -127,7 +129,7 @@ public class TestSSL {
// make SSL connection
hs2Conn =
DriverManager.getConnection(miniHS2.getJdbcURL() + ";ssl=true;sslTrustStore=" + dataFileDir
- + File.separator + TRUST_STORE_NAME + ";trustStorePassword=" + KEY_STORE_PASSWORD,
+ + File.separator + TRUST_STORE_NAME + ";trustStorePassword=" + KEY_STORE_TRUST_STORE_PASSWORD,
System.getProperty("user.name"), "bar");
hs2Conn.close();
Assert.assertEquals("Expected exit code of 1", 1, execCommand("openssl s_client -connect "
@@ -144,7 +146,7 @@ public class TestSSL {
hs2Conn =
DriverManager.getConnection(miniHS2.getJdbcURL() + ";ssl=true;sslTrustStore="
+ dataFileDir + File.separator + TRUST_STORE_NAME + ";trustStorePassword="
- + KEY_STORE_PASSWORD, System.getProperty("user.name"), "bar");
+ + KEY_STORE_TRUST_STORE_PASSWORD, System.getProperty("user.name"), "bar");
Assert.fail("Expected SQLException during connect");
} catch (SQLException e) {
LOG.info("Expected exception: " + e, e);
@@ -181,7 +183,7 @@ public class TestSSL {
}
System.setProperty(JAVA_TRUST_STORE_PROP, dataFileDir + File.separator + TRUST_STORE_NAME );
- System.setProperty(JAVA_TRUST_STORE_PASS_PROP, KEY_STORE_PASSWORD);
+ System.setProperty(JAVA_TRUST_STORE_PASS_PROP, KEY_STORE_TRUST_STORE_PASSWORD);
try {
hs2Conn = DriverManager.getConnection(miniHS2.getJdbcURL() + ";ssl=true",
System.getProperty("user.name"), "bar");
@@ -291,7 +293,7 @@ public class TestSSL {
miniHS2.start(confOverlay);
System.setProperty(JAVA_TRUST_STORE_PROP, dataFileDir + File.separator + TRUST_STORE_NAME );
- System.setProperty(JAVA_TRUST_STORE_PASS_PROP, KEY_STORE_PASSWORD);
+ System.setProperty(JAVA_TRUST_STORE_PASS_PROP, KEY_STORE_TRUST_STORE_PASSWORD);
// make SSL connection
hs2Conn = DriverManager.getConnection(miniHS2.getJdbcURL() + ";ssl=true",
System.getProperty("user.name"), "bar");
@@ -375,6 +377,55 @@ public class TestSSL {
hs2Conn.close();
}
+ /***
+ * Test a new connection when server sends a certificate with wrong CN
+ * (sends a certificate for www.example.com instead of localhost)
+ * Opening a new connection with this wrong certificate should fail
+ * @throws Exception
+ */
+ @Test
+ public void testConnectionWrongCertCN() throws Exception {
+ // This call sets the default ssl params including the correct keystore in the server config
+ setSslConfOverlay(confOverlay);
+ // Replace default keystore with keystore for www.example.com
+ confOverlay.put(ConfVars.HIVE_SERVER2_SSL_KEYSTORE_PATH.varname, dataFileDir + File.separator
+ + EXAMPLEDOTCOM_KEY_STORE_NAME);
+ // Binary (TCP) mode
+ setBinaryConfOverlay(confOverlay);
+ miniHS2.start(confOverlay);
+ try {
+ hs2Conn =
+ DriverManager.getConnection(miniHS2.getJdbcURL("default", SSL_CONN_PARAMS),
+ System.getProperty("user.name"), "bar");
+ fail("SSL connection, with the server providing wrong certifcate (with CN www.example.com, "
+ + "instead of localhost), should fail");
+ } catch (SQLException e) {
+ // Expected error: should throw java.security.cert.CertificateException
+ assertEquals("08S01", e.getSQLState().trim());
+ assertTrue(e.toString().contains("java.security.cert.CertificateException"));
+ }
+
+ miniHS2.stop();
+
+ // Http mode
+ setHttpConfOverlay(confOverlay);
+ miniHS2.start(confOverlay);
+ try {
+ hs2Conn =
+ DriverManager.getConnection(miniHS2.getJdbcURL("default", SSL_CONN_PARAMS),
+ System.getProperty("user.name"), "bar");
+ fail("SSL connection, with the server providing wrong certifcate (with CN www.example.com, "
+ + "instead of localhost), should fail");
+ } catch (SQLException e) {
+ // Expected error: should throw javax.net.ssl.SSLPeerUnverifiedException
+ assertEquals("08S01", e.getSQLState().trim());
+ assertTrue(e.toString().contains("javax.net.ssl.SSLPeerUnverifiedException"));
+ }
+ // Revert to default keystore path
+ confOverlay.put(ConfVars.HIVE_SERVER2_SSL_KEYSTORE_PATH.varname, dataFileDir + File.separator
+ + LOCALHOST_KEY_STORE_NAME);
+ }
+
private void setupTestTableWithData(String tableName, Path dataFilePath,
Connection hs2Conn) throws Exception {
Statement stmt = hs2Conn.createStatement();
@@ -393,9 +444,9 @@ public class TestSSL {
private void setSslConfOverlay(Map<String, String> confOverlay) {
confOverlay.put(ConfVars.HIVE_SERVER2_USE_SSL.varname, "true");
confOverlay.put(ConfVars.HIVE_SERVER2_SSL_KEYSTORE_PATH.varname,
- dataFileDir + File.separator + KEY_STORE_NAME);
+ dataFileDir + File.separator + LOCALHOST_KEY_STORE_NAME);
confOverlay.put(ConfVars.HIVE_SERVER2_SSL_KEYSTORE_PASSWORD.varname,
- KEY_STORE_PASSWORD);
+ KEY_STORE_TRUST_STORE_PASSWORD);
}
private void clearSslConfOverlay(Map<String, String> confOverlay) {
http://git-wip-us.apache.org/repos/asf/hive/blob/3b2ea248/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java b/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
index 40ad3b2..0b0db43 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
@@ -44,13 +44,15 @@ import org.apache.http.client.ServiceUnavailableRetryStrategy;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.socket.ConnectionSocketFactory;
-import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.conn.ssl.DefaultHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.apache.http.protocol.HttpContext;
+import org.apache.http.ssl.SSLContexts;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.transport.THttpClient;
@@ -324,30 +326,29 @@ public class HiveConnection implements java.sql.Connection {
if (isCookieEnabled) {
// Create a http client with a retry mechanism when the server returns a status code of 401.
httpClientBuilder =
- HttpClients.custom().setServiceUnavailableRetryStrategy(
- new ServiceUnavailableRetryStrategy() {
-
- @Override
- public boolean retryRequest(
- final HttpResponse response,
- final int executionCount,
- final HttpContext context) {
- int statusCode = response.getStatusLine().getStatusCode();
- boolean ret = statusCode == 401 && executionCount <= 1;
-
- // Set the context attribute to true which will be interpreted by the request interceptor
- if (ret) {
- context.setAttribute(Utils.HIVE_SERVER2_RETRY_KEY, Utils.HIVE_SERVER2_RETRY_TRUE);
- }
- return ret;
- }
-
- @Override
- public long getRetryInterval() {
- // Immediate retry
- return 0;
- }
- });
+ HttpClients.custom().setServiceUnavailableRetryStrategy(
+ new ServiceUnavailableRetryStrategy() {
+ @Override
+ public boolean retryRequest(final HttpResponse response, final int executionCount,
+ final HttpContext context) {
+ int statusCode = response.getStatusLine().getStatusCode();
+ boolean ret = statusCode == 401 && executionCount <= 1;
+
+ // Set the context attribute to true which will be interpreted by the request
+ // interceptor
+ if (ret) {
+ context.setAttribute(Utils.HIVE_SERVER2_RETRY_KEY,
+ Utils.HIVE_SERVER2_RETRY_TRUE);
+ }
+ return ret;
+ }
+
+ @Override
+ public long getRetryInterval() {
+ // Immediate retry
+ return 0;
+ }
+ });
} else {
httpClientBuilder = HttpClientBuilder.create();
}
@@ -360,47 +361,37 @@ public class HiveConnection implements java.sql.Connection {
String sslTrustStorePassword = sessConfMap.get(
JdbcConnectionParams.SSL_TRUST_STORE_PASSWORD);
KeyStore sslTrustStore;
- SSLSocketFactory socketFactory;
-
+ SSLConnectionSocketFactory socketFactory;
+ SSLContext sslContext;
/**
- * The code within the try block throws:
- * 1. SSLInitializationException
- * 2. KeyStoreException
- * 3. IOException
- * 4. NoSuchAlgorithmException
- * 5. CertificateException
- * 6. KeyManagementException
- * 7. UnrecoverableKeyException
- * We don't want the client to retry on any of these, hence we catch all
- * and throw a SQLException.
+ * The code within the try block throws: SSLInitializationException, KeyStoreException,
+ * IOException, NoSuchAlgorithmException, CertificateException, KeyManagementException &
+ * UnrecoverableKeyException. We don't want the client to retry on any of these,
+ * hence we catch all and throw a SQLException.
*/
try {
- if (useTwoWaySSL != null &&
- useTwoWaySSL.equalsIgnoreCase(JdbcConnectionParams.TRUE)) {
+ if (useTwoWaySSL != null && useTwoWaySSL.equalsIgnoreCase(JdbcConnectionParams.TRUE)) {
socketFactory = getTwoWaySSLSocketFactory();
} else if (sslTrustStorePath == null || sslTrustStorePath.isEmpty()) {
// Create a default socket factory based on standard JSSE trust material
- socketFactory = SSLSocketFactory.getSocketFactory();
+ socketFactory = SSLConnectionSocketFactory.getSocketFactory();
} else {
// Pick trust store config from the given path
sslTrustStore = KeyStore.getInstance(JdbcConnectionParams.SSL_TRUST_STORE_TYPE);
try (FileInputStream fis = new FileInputStream(sslTrustStorePath)) {
sslTrustStore.load(fis, sslTrustStorePassword.toCharArray());
}
- socketFactory = new SSLSocketFactory(sslTrustStore);
+ sslContext = SSLContexts.custom().loadTrustMaterial(sslTrustStore, null).build();
+ socketFactory =
+ new SSLConnectionSocketFactory(sslContext, new DefaultHostnameVerifier(null));
}
- socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
-
final Registry<ConnectionSocketFactory> registry =
- RegistryBuilder.<ConnectionSocketFactory>create()
- .register("https", socketFactory)
- .build();
-
+ RegistryBuilder.<ConnectionSocketFactory> create().register("https", socketFactory)
+ .build();
httpClientBuilder.setConnectionManager(new BasicHttpClientConnectionManager(registry));
- }
- catch (Exception e) {
- String msg = "Could not create an https connection to " +
- jdbcUriString + ". " + e.getMessage();
+ } catch (Exception e) {
+ String msg =
+ "Could not create an https connection to " + jdbcUriString + ". " + e.getMessage();
throw new SQLException(msg, " 08S01", e);
}
}
@@ -502,8 +493,8 @@ public class HiveConnection implements java.sql.Connection {
return transport;
}
- SSLSocketFactory getTwoWaySSLSocketFactory() throws SQLException {
- SSLSocketFactory socketFactory = null;
+ SSLConnectionSocketFactory getTwoWaySSLSocketFactory() throws SQLException {
+ SSLConnectionSocketFactory socketFactory = null;
try {
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(
@@ -540,7 +531,7 @@ public class HiveConnection implements java.sql.Connection {
SSLContext context = SSLContext.getInstance("TLS");
context.init(keyManagerFactory.getKeyManagers(),
trustManagerFactory.getTrustManagers(), new SecureRandom());
- socketFactory = new SSLSocketFactory(context);
+ socketFactory = new SSLConnectionSocketFactory(context);
} catch (Exception e) {
throw new SQLException("Error while initializing 2 way ssl socket factory ", e);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/3b2ea248/service/src/java/org/apache/hive/service/auth/HiveAuthFactory.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/auth/HiveAuthFactory.java b/service/src/java/org/apache/hive/service/auth/HiveAuthFactory.java
index 8af9d0a..ab8806c 100644
--- a/service/src/java/org/apache/hive/service/auth/HiveAuthFactory.java
+++ b/service/src/java/org/apache/hive/service/auth/HiveAuthFactory.java
@@ -29,7 +29,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLSocket;
import javax.security.auth.login.LoginException;
import javax.security.sasl.AuthenticationException;
import javax.security.sasl.Sasl;
@@ -258,7 +260,9 @@ public class HiveAuthFactory {
public static TTransport getSSLSocket(String host, int port, int loginTimeout)
throws TTransportException {
- return TSSLTransportFactory.getClientSocket(host, port, loginTimeout);
+ // The underlying SSLSocket object is bound to host:port with the given SO_TIMEOUT
+ TSocket tSSLSocket = TSSLTransportFactory.getClientSocket(host, port, loginTimeout);
+ return getSSLSocketWithHttps(tSSLSocket);
}
public static TTransport getSSLSocket(String host, int port, int loginTimeout,
@@ -267,7 +271,20 @@ public class HiveAuthFactory {
new TSSLTransportFactory.TSSLTransportParameters();
params.setTrustStore(trustStorePath, trustStorePassWord);
params.requireClientAuth(true);
- return TSSLTransportFactory.getClientSocket(host, port, loginTimeout, params);
+ // The underlying SSLSocket object is bound to host:port with the given SO_TIMEOUT and
+ // SSLContext created with the given params
+ TSocket tSSLSocket = TSSLTransportFactory.getClientSocket(host, port, loginTimeout, params);
+ return getSSLSocketWithHttps(tSSLSocket);
+ }
+
+ // Using endpoint identification algorithm as HTTPS enables us to do
+ // CNAMEs/subjectAltName verification
+ private static TSocket getSSLSocketWithHttps(TSocket tSSLSocket) throws TTransportException {
+ SSLSocket sslSocket = (SSLSocket) tSSLSocket.getSocket();
+ SSLParameters sslParams = sslSocket.getSSLParameters();
+ sslParams.setEndpointIdentificationAlgorithm("HTTPS");
+ sslSocket.setSSLParameters(sslParams);
+ return new TSocket(sslSocket);
}
public static TServerSocket getServerSocket(String hiveHost, int portNum)
[25/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part_all_complex.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part_all_complex.q.out b/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part_all_complex.q.out
new file mode 100644
index 0000000..8af1b4f
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_part_all_complex.q.out
@@ -0,0 +1,732 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_a_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_a_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:s1, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct1_a_txt.insert_num struct1_a_txt.s1 struct1_a_txt.b
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":-29.0764,"c7":4.70614135E8,"c8":470614135,"c9":"dynamic reptile ","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":n)\u06af} original
+2 1 {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":-3651.672,"c7":46114.284799488,"c8":46114.284799488,"c9":" baffling ","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":n)\u06af} original
+3 1 {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af} original
+4 1 {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af} original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_b_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_b_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).b SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).insert_num SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).s1 SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_b_txt.insert_num struct1_b_txt.s1 struct1_b_txt.b
+PREHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_c_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_c_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_c_txt.insert_num struct1_c_txt.s1 struct1_c_txt.b
+PREHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_struct1
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), s1 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>), _col3 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+PREHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":"TRUE","c2":null,"c3":null,"c4":"3244222","c5":"-99999999999","c6":"-29.0764","c7":"4.70614135E8","c8":"470614135","c9":"dynamic reptile","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":"n)\u06af"} original
+2 1 {"c1":null,"c2":"100","c3":null,"c4":"14","c5":"-23866739993","c6":"-3651.672","c7":"46114.284799488","c8":"46114.284799488","c9":" baffling","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":"n)\u06af"} original
+3 1 {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"} original
+4 1 {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"} original
+5 2 {"c1":"true","c2":"400","c3":"44388","c4":"-100","c5":"953967041.","c6":"62.079153","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":"timestamp","c12":"date","c13":"binary"} new
+6 1 {"c1":"FALSE","c2":"-67","c3":"833","c4":"63993","c5":"1255178165","c6":"905071.0","c7":"-4314.7918","c8":"-1240033819","c9":"trial","c10":"trial","c11":null,"c12":"2016-03-07","c13":"n)\u06af"} new
+PREHOOK: query: drop table part_change_various_various_struct1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: drop table part_change_various_various_struct1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1
+PREHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+insert_num part b
+1 1 original
+2 1 original
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_a_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_a_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_a_txt.insert_num struct2_a_txt.b struct2_a_txt.s2
+PREHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_b_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_b_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_b_txt.insert_num struct2_b_txt.b struct2_b_txt.s2
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af}
+6 2 new {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_c_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_c_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_c_txt.insert_num struct2_c_txt.b struct2_c_txt.s2
+PREHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_d_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_d_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_d_txt.insert_num struct2_d_txt.b struct2_d_txt.s2
+PREHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_various_various_struct2
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), b (type: string), s2 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"}
+6 2 new {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"}
+7 2 new {"c1":"TRUE","c2":null,"c3":null,"c4":"-100","c5":"953967041","c6":"62.07915","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":null,"c12":null,"c13":"n)\u06af"}
+8 1 new NULL
+PREHOOK: query: drop table part_add_various_various_struct2
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: drop table part_add_various_various_struct2
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_a_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_a_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint>, comment:null), ]
+struct4_a_txt.insert_num struct4_a_txt.b struct4_a_txt.s3
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_b_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_b_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).b SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).insert_num SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).s3 SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_b_txt.insert_num struct4_b_txt.b struct4_b_txt.s3
+PREHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_c_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_c_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_c_txt.insert_num struct4_c_txt.b struct4_c_txt.s3
+PREHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_to_various_various_struct4
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), b (type: string), s3 (type: struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+3 2 new {"c1":true,"c2":null,"c3":null,"c4":-100,"c5":953967041,"c6":62.07915,"c7":718.78,"c8":1,"c9":"verdict ","c10":"verdict","c11":null,"c12":null,"c13":n)\u06af}
+4 1 new {"c1":false,"c2":-67,"c3":833,"c4":63993,"c5":1255178165,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+PREHOOK: query: drop table part_add_to_various_various_struct4
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: drop table part_add_to_various_various_struct4
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
[20/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part_all_complex.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part_all_complex.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part_all_complex.q.out
new file mode 100644
index 0000000..b0b00b8
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part_all_complex.q.out
@@ -0,0 +1,669 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_a_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_a_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:s1, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct1_a_txt.insert_num struct1_a_txt.s1 struct1_a_txt.b
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":-29.0764,"c7":4.70614135E8,"c8":470614135,"c9":"dynamic reptile ","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":n)\u06af} original
+2 1 {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":-3651.672,"c7":46114.284799488,"c8":46114.284799488,"c9":" baffling ","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":n)\u06af} original
+3 1 {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af} original
+4 1 {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af} original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_b_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_b_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).b SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).insert_num SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).s1 SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_b_txt.insert_num struct1_b_txt.s1 struct1_b_txt.b
+PREHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_c_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_c_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_c_txt.insert_num struct1_c_txt.s1 struct1_c_txt.b
+PREHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=6 width=151)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=6 width=151)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=6 width=151)
+ default@part_change_various_various_struct1,part_change_various_various_struct1,Tbl:COMPLETE,Col:NONE,Output:["insert_num","s1","b"]
+
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+PREHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":"TRUE","c2":null,"c3":null,"c4":"3244222","c5":"-99999999999","c6":"-29.0764","c7":"4.70614135E8","c8":"470614135","c9":"dynamic reptile","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":"n)\u06af"} original
+2 1 {"c1":null,"c2":"100","c3":null,"c4":"14","c5":"-23866739993","c6":"-3651.672","c7":"46114.284799488","c8":"46114.284799488","c9":" baffling","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":"n)\u06af"} original
+3 1 {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"} original
+4 1 {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"} original
+5 2 {"c1":"true","c2":"400","c3":"44388","c4":"-100","c5":"953967041.","c6":"62.079153","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":"timestamp","c12":"date","c13":"binary"} new
+6 1 {"c1":"FALSE","c2":"-67","c3":"833","c4":"63993","c5":"1255178165","c6":"905071.0","c7":"-4314.7918","c8":"-1240033819","c9":"trial","c10":"trial","c11":null,"c12":"2016-03-07","c13":"n)\u06af"} new
+PREHOOK: query: drop table part_change_various_various_struct1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: drop table part_change_various_various_struct1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1
+PREHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+insert_num part b
+1 1 original
+2 1 original
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_a_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_a_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_a_txt.insert_num struct2_a_txt.b struct2_a_txt.s2
+PREHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_b_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_b_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_b_txt.insert_num struct2_b_txt.b struct2_b_txt.s2
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af}
+6 2 new {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_c_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_c_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_c_txt.insert_num struct2_c_txt.b struct2_c_txt.s2
+PREHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_d_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_d_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_d_txt.insert_num struct2_d_txt.b struct2_d_txt.s2
+PREHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=8 width=113)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=8 width=113)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=8 width=113)
+ default@part_add_various_various_struct2,part_add_various_various_struct2,Tbl:COMPLETE,Col:NONE,Output:["insert_num","b","s2"]
+
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"}
+6 2 new {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"}
+7 2 new {"c1":"TRUE","c2":null,"c3":null,"c4":"-100","c5":"953967041","c6":"62.07915","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":null,"c12":null,"c13":"n)\u06af"}
+8 1 new NULL
+PREHOOK: query: drop table part_add_various_various_struct2
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: drop table part_add_various_various_struct2
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_a_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_a_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint>, comment:null), ]
+struct4_a_txt.insert_num struct4_a_txt.b struct4_a_txt.s3
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_b_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_b_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).b SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).insert_num SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).s3 SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_b_txt.insert_num struct4_b_txt.b struct4_b_txt.s3
+PREHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_c_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_c_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_c_txt.insert_num struct4_c_txt.b struct4_c_txt.s3
+PREHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=4 width=84)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=4 width=84)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=4 width=84)
+ default@part_add_to_various_various_struct4,part_add_to_various_various_struct4,Tbl:COMPLETE,Col:NONE,Output:["insert_num","b","s3"]
+
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+3 2 new {"c1":true,"c2":null,"c3":null,"c4":-100,"c5":953967041,"c6":62.07915,"c7":718.78,"c8":1,"c9":"verdict ","c10":"verdict","c11":null,"c12":null,"c13":n)\u06af}
+4 1 new {"c1":false,"c2":-67,"c3":833,"c4":63993,"c5":1255178165,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+PREHOOK: query: drop table part_add_to_various_various_struct4
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: drop table part_add_to_various_various_struct4
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
[33/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part_all_complex.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part_all_complex.q.out b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part_all_complex.q.out
new file mode 100644
index 0000000..2a5fb24
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part_all_complex.q.out
@@ -0,0 +1,726 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_a_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_a_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:s1, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct1_a_txt.insert_num struct1_a_txt.s1 struct1_a_txt.b
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":-29.0764,"c7":4.70614135E8,"c8":470614135,"c9":"dynamic reptile ","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":n)\u06af} original
+2 1 {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":-3651.672,"c7":46114.284799488,"c8":46114.284799488,"c9":" baffling ","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":n)\u06af} original
+3 1 {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af} original
+4 1 {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af} original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_b_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_b_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).b SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).insert_num SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).s1 SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_b_txt.insert_num struct1_b_txt.s1 struct1_b_txt.b
+PREHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_c_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_c_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_c_txt.insert_num struct1_c_txt.s1 struct1_c_txt.b
+PREHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_struct1
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), s1 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>), _col3 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+PREHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":"TRUE","c2":null,"c3":null,"c4":"3244222","c5":"-99999999999","c6":"-29.0764","c7":"4.70614135E8","c8":"470614135","c9":"dynamic reptile","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":"n)\u06af"} original
+2 1 {"c1":null,"c2":"100","c3":null,"c4":"14","c5":"-23866739993","c6":"-3651.672","c7":"46114.284799488","c8":"46114.284799488","c9":" baffling","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":"n)\u06af"} original
+3 1 {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"} original
+4 1 {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"} original
+5 2 {"c1":"true","c2":"400","c3":"44388","c4":"-100","c5":"953967041.","c6":"62.079153","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":"timestamp","c12":"date","c13":"binary"} new
+6 1 {"c1":"FALSE","c2":"-67","c3":"833","c4":"63993","c5":"1255178165","c6":"905071.0","c7":"-4314.7918","c8":"-1240033819","c9":"trial","c10":"trial","c11":null,"c12":"2016-03-07","c13":"n)\u06af"} new
+PREHOOK: query: drop table part_change_various_various_struct1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: drop table part_change_various_various_struct1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1
+PREHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+insert_num part b
+1 1 original
+2 1 original
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_a_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_a_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_a_txt.insert_num struct2_a_txt.b struct2_a_txt.s2
+PREHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_b_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_b_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_b_txt.insert_num struct2_b_txt.b struct2_b_txt.s2
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af}
+6 2 new {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_c_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_c_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_c_txt.insert_num struct2_c_txt.b struct2_c_txt.s2
+PREHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_d_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_d_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_d_txt.insert_num struct2_d_txt.b struct2_d_txt.s2
+PREHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_various_various_struct2
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), b (type: string), s2 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"}
+6 2 new {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"}
+7 2 new {"c1":"TRUE","c2":null,"c3":null,"c4":"-100","c5":"953967041","c6":"62.07915","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":null,"c12":null,"c13":"n)\u06af"}
+8 1 new NULL
+PREHOOK: query: drop table part_add_various_various_struct2
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: drop table part_add_various_various_struct2
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_a_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_a_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint>, comment:null), ]
+struct4_a_txt.insert_num struct4_a_txt.b struct4_a_txt.s3
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_b_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_b_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).b SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).insert_num SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).s3 SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_b_txt.insert_num struct4_b_txt.b struct4_b_txt.s3
+PREHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_c_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_c_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_c_txt.insert_num struct4_c_txt.b struct4_c_txt.s3
+PREHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_to_various_various_struct4
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), b (type: string), s3 (type: struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+3 2 new {"c1":true,"c2":null,"c3":null,"c4":-100,"c5":953967041,"c6":62.07915,"c7":718.78,"c8":1,"c9":"verdict ","c10":"verdict","c11":null,"c12":null,"c13":n)\u06af}
+4 1 new {"c1":false,"c2":-67,"c3":833,"c4":63993,"c5":1255178165,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+PREHOOK: query: drop table part_add_to_various_various_struct4
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: drop table part_add_to_various_various_struct4
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
[21/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part.q.out
index 44f5822..40c3f47 100644
--- a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part.q.out
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part.q.out
@@ -1,642 +1,3995 @@
PREHOOK: query: -- SORT_QUERY_RESULTS
--
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Partitioned
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned1
+PREHOOK: Output: default@part_add_int_permute_select
POSTHOOK: query: -- SORT_QUERY_RESULTS
--
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Partitioned
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
--
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@partitioned1@part=1
-POSTHOOK: query: insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@partitioned1@part=1
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string)
+alter table part_add_int_permute_select add columns(c int)
PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@partitioned1
-PREHOOK: Output: default@partitioned1
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string)
+alter table part_add_int_permute_select add columns(c int)
POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@partitioned1@part=2
-POSTHOOK: query: insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
+PREHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@partitioned1@part=2
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
_col0 _col1 _col2 _col3
-PREHOOK: query: insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@partitioned1@part=1
-POSTHOOK: query: insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@partitioned1@part=1
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=10 width=11)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=10 width=11)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=10 width=11)
+ default@part_add_int_permute_select,part_add_int_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
#### A masked pattern was here ####
POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b
-1 1 original
-1 2 original
-1 3 original
-1 4 original
-1 5 new
-1 6 new
-2 1 new
-2 2 new
-2 3 new
-2 4 new
-PREHOOK: query: select part,a,b,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c
-1 1 original NULL
-1 2 original NULL
-1 3 original NULL
-1 4 original NULL
-1 5 new NULL
-1 6 new NULL
-2 1 new 10
-2 2 new 20
-2 3 new 30
-2 4 new 40
-PREHOOK: query: select part,a,b,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c d
-1 1 original NULL NULL
-1 2 original NULL NULL
-1 3 original NULL NULL
-1 4 original NULL NULL
-1 5 new NULL NULL
-1 6 new NULL NULL
-2 1 new 10 ten
-2 2 new 20 twenty
-2 3 new 30 thirty
-2 4 new 40 forty
-PREHOOK: query: select part,a,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a c d
-1 1 NULL NULL
-1 2 NULL NULL
-1 3 NULL NULL
-1 4 NULL NULL
-1 5 NULL NULL
-1 6 NULL NULL
-2 1 10 ten
-2 2 20 twenty
-2 3 30 thirty
-2 4 40 forty
-PREHOOK: query: select part,a,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a d
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
1 1 NULL
-1 2 NULL
-1 3 NULL
-1 4 NULL
-1 5 NULL
-1 6 NULL
-2 1 ten
-2 2 twenty
-2 3 thirty
-2 4 forty
-PREHOOK: query: select part,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part c
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 10
-2 20
-2 30
-2 40
-PREHOOK: query: select part,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part d
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 forty
-2 ten
-2 thirty
-2 twenty
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: drop table part_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: drop table part_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
--
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
--
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@partitioned2@part=1
-POSTHOOK: query: insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@partitioned2@part=1
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@partitioned2
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@partitioned2@part=2
-POSTHOOK: query: insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
+PREHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@partitioned2@part=2
-POSTHOOK: Lineage: partitioned2 PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new')
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@partitioned2@part=1
-POSTHOOK: query: insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new')
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@partitioned2@part=1
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select part,a,b from partitioned2
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned2
-PREHOOK: Input: default@partitioned2@part=1
-PREHOOK: Input: default@partitioned2@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b from partitioned2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Input: default@partitioned2@part=1
-POSTHOOK: Input: default@partitioned2@part=2
-#### A masked pattern was here ####
-part a b
-1 1000 original
-1 3 original
-1 4 original
-1 5000 new
-1 6737 original
-1 NULL new
-2 200 new
-2 32768 new
-2 40000 new
-2 72909 new
-PREHOOK: query: --
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=10 width=15)
+ Output:["_col0","_col1","_col2","_col3"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=10 width=15)
+ Output:["_col0","_col1","_col2","_col3"]
+ TableScan [TS_0] (rows=10 width=15)
+ default@part_add_int_string_permute_select,part_add_int_string_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c d
+1 1 1 original NULL NULL
+10 1 6 new NULL NULL
+2 1 2 original NULL NULL
+3 1 3 original NULL NULL
+4 1 4 original NULL NULL
+5 2 1 new 10 ten
+6 2 2 new 20 twenty
+7 2 3 new 30 thirty
+8 2 4 new 40 forty
+9 1 5 new NULL NULL
+PREHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a c d
+1 1 1 NULL NULL
+10 1 6 NULL NULL
+2 1 2 NULL NULL
+3 1 3 NULL NULL
+4 1 4 NULL NULL
+5 2 1 10 ten
+6 2 2 20 twenty
+7 2 3 30 thirty
+8 2 4 40 forty
+9 1 5 NULL NULL
+PREHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a d
+1 1 1 NULL
+10 1 6 NULL
+2 1 2 NULL
+3 1 3 NULL
+4 1 4 NULL
+5 2 1 ten
+6 2 2 twenty
+7 2 3 thirty
+8 2 4 forty
+9 1 5 NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part d
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 ten
+6 2 twenty
+7 2 thirty
+8 2 forty
+9 1 NULL
+PREHOOK: query: drop table part_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: drop table part_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: --
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__7
-PREHOOK: Output: default@partitioned3@part=1
-POSTHOOK: query: insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__7
-POSTHOOK: Output: default@partitioned3@part=1
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).a EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@partitioned3
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@partitioned3
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1)
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__8
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1)
+PREHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__8
-POSTHOOK: Output: default@partitioned3@part=1
-POSTHOOK: Output: default@partitioned3@part=2
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).a EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).c EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).d SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).a EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).c EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).d SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
_col0 _col1 _col2 _col3 _col4
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=10 width=55)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=10 width=55)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ TableScan [TS_0] (rows=10 width=55)
+ default@part_change_string_group_double,part_change_string_group_double,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Input: default@part_change_string_group_double@part=1
+PREHOOK: Input: default@part_change_string_group_double@part=2
#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b
-1 1 original
-1 2 original
-1 3 original
-1 4 original
-1 5 new
-1 6 new
-2 1 new
-2 2 new
-2 3 new
-2 4 new
-PREHOOK: query: select part,a,b,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c
-1 1 original NULL
-1 2 original NULL
-1 3 original NULL
-1 4 original NULL
-1 5 new NULL
-1 6 new NULL
-2 1 new 10
-2 2 new 20
-2 3 new 30
-2 4 new 40
-PREHOOK: query: select part,a,b,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c d
-1 1 original NULL NULL
-1 2 original NULL NULL
-1 3 original NULL NULL
-1 4 original NULL NULL
-1 5 new NULL NULL
-1 6 new NULL NULL
-2 1 new 10 ten
-2 2 new 20 twenty
-2 3 new 30 thirty
-2 4 new 40 forty
-PREHOOK: query: select part,a,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a c d
-1 1 NULL NULL
-1 2 NULL NULL
-1 3 NULL NULL
-1 4 NULL NULL
-1 5 NULL NULL
-1 6 NULL NULL
-2 1 10 ten
-2 2 20 twenty
-2 3 30 thirty
-2 4 40 forty
-PREHOOK: query: select part,a,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a d
-1 1 NULL
-1 2 NULL
-1 3 NULL
-1 4 NULL
-1 5 NULL
-1 6 NULL
-2 1 ten
-2 2 twenty
-2 3 thirty
-2 4 forty
-PREHOOK: query: select part,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part c
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 10
-2 20
-2 30
-2 40
-PREHOOK: query: select part,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part d
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 forty
-2 ten
-2 thirty
-2 twenty
+POSTHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Input: default@part_change_string_group_double@part=1
+POSTHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 b
+1 1 753.7028 753.7028 753.7028 original
+10 1 9250340.75 9250340.75 9250340.75 new
+2 1 -3651.672121 -3651.672121 -3651.672121 original
+3 1 -29.0764 -29.0764 -29.0764 original
+4 1 -10.3 -10.3 -10.3 original
+5 2 30.774 30.774 30.774 new
+6 2 20.31 20.31 20.31 new
+7 2 46114.284799488 46114.284799488 46114.284799488 new
+8 2 -66475.561431 -66475.561431 -66475.561431 new
+9 1 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table part_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: drop table part_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=9 width=147)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=9 width=147)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ TableScan [TS_0] (rows=9 width=147)
+ default@part_change_date_group_string_group_timestamp,part_change_date_group_string_group_timestamp,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 1 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 1 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 2 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 2 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 1 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 NULL 6229-06-28 02:54:28.970117179 NULL new
+9 1 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 NULL 5966-07-09 03:30:50.597 NULL new
+PREHOOK: query: drop table part_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table part_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
--
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned4
+PREHOOK: Output: default@part_change_date_group_string_group_date
POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
--
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned4
-PREHOOK: query: insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__9
-PREHOOK: Output: default@partitioned4@part=1
-POSTHOOK: query: insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__9
-POSTHOOK: Output: default@partitioned4@part=1
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).a EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@partitioned4
-PREHOOK: Output: default@partitioned4
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Output: default@partitioned4
-PREHOOK: query: insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1)
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__10
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1)
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__10
-POSTHOOK: Output: default@partitioned4@part=1
-POSTHOOK: Output: default@partitioned4@part=2
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).a EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=2).a EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=2).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1 _col2
-PREHOOK: query: select part,a,b from partitioned4
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned4
-PREHOOK: Input: default@partitioned4@part=1
-PREHOOK: Input: default@partitioned4@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b from partitioned4
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Input: default@partitioned4@part=1
-POSTHOOK: Input: default@partitioned4@part=2
-#### A masked pattern was here ####
-part a b
-1 1000 original
-1 3 original
-1 4 original
-1 5000 new
-1 6737 original
-1 NULL new
-2 200 new
-2 32768 new
-2 40000 new
-2 72909 new
-PREHOOK: query: DROP TABLE partitioned1
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=9 width=91)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=9 width=91)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7"]
+ TableScan [TS_0] (rows=9 width=91)
+ default@part_change_date_group_string_group_date,part_change_date_group_string_group_date,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 1 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 1 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 2 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 2 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 2 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 2 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table part_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: drop table part_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREA
<TRUNCATED>
[18/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_table.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_table.q.out
index 4003c20..14abca9 100644
--- a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_table.q.out
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_table.q.out
@@ -1,297 +1,3737 @@
PREHOOK: query: -- SORT_QUERY_RESULTS
--
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@table1
+PREHOOK: Output: default@table_add_int_permute_select
POSTHOOK: query: -- SORT_QUERY_RESULTS
--
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
--
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b
-1 original
-2 original
-3 original
-4 original
-PREHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(c int, d string)
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(c int, d string)
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
_col0 _col1 _col2 _col3
-PREHOOK: query: select a,b,c,d from table1
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=10 width=11)
+ Output:["_col0","_col1","_col2"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=10 width=11)
+ Output:["_col0","_col1","_col2"]
+ TableScan [TS_0] (rows=10 width=11)
+ default@table_add_int_permute_select,table_add_int_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
+PREHOOK: Input: default@table_add_int_permute_select
#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d from table1
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
+POSTHOOK: Input: default@table_add_int_permute_select
#### A masked pattern was here ####
-a b c d
-1 new 10 ten
-1 original NULL NULL
-2 new 20 twenty
-2 original NULL NULL
-3 new 30 thirty
-3 original NULL NULL
-4 new 40 forty
-4 original NULL NULL
-PREHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(e string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(e string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2')
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2')
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: table1.e SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
-_col0 _col1 _col2 _col3 _col4
-PREHOOK: query: select a,b,c,d,e from table1
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
+PREHOOK: Input: default@table_add_int_permute_select
#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d,e from table1
+POSTHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
+POSTHOOK: Input: default@table_add_int_permute_select
#### A masked pattern was here ####
-a b c d e
-1 new 10 ten NULL
-1 original NULL NULL NULL
-2 new 20 twenty NULL
-2 original NULL NULL NULL
-3 new 30 thirty NULL
-3 original NULL NULL NULL
-4 new 40 forty NULL
-4 original NULL NULL NULL
-5 new 100 hundred another1
-6 new 200 two hundred another2
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: drop table table_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: drop table table_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
--
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@table3
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
--
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-3 original
-4 original
-6737 original
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-6737 original
-72909 new
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6')
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6')
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table3.e SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-_col0 _col1 _col2
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: DROP TABLE table1
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=10 width=15)
+ Output:["_col0","_col1","_col2"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=10 width=15)
+ Output:["_col0","_col1","_col2"]
+ TableScan [TS_0] (rows=10 width=15)
+ default@table_add_int_string_permute_select,table_add_int_string_permute_select,Tbl:COMPLETE,Col:NONE,Output:["insert_num","a","b"]
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c d
+1 1 original NULL NULL
+10 6 new 200 two hundred
+2 2 original NULL NULL
+3 3 original NULL NULL
+4 4 original NULL NULL
+5 1 new 10 ten
+6 2 new 20 twenty
+7 3 new 30 thirty
+8 4 new 40 forty
+9 5 new 100 hundred
+PREHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a c d
+1 1 NULL NULL
+10 6 200 two hundred
+2 2 NULL NULL
+3 3 NULL NULL
+4 4 NULL NULL
+5 1 10 ten
+6 2 20 twenty
+7 3 30 thirty
+8 4 40 forty
+9 5 100 hundred
+PREHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a d
+1 1 NULL
+10 6 two hundred
+2 2 NULL
+3 3 NULL
+4 4 NULL
+5 1 ten
+6 2 twenty
+7 3 thirty
+8 4 forty
+9 5 hundred
+PREHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num d
+1 NULL
+10 two hundred
+2 NULL
+3 NULL
+4 NULL
+5 ten
+6 twenty
+7 thirty
+8 forty
+9 hundred
+PREHOOK: query: drop table table_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: drop table table_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=10 width=55)
+ Output:["_col0","_col1","_col2","_col3","_col4"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=10 width=55)
+ Output:["_col0","_col1","_col2","_col3","_col4"]
+ TableScan [TS_0] (rows=10 width=55)
+ default@table_change_string_group_double,table_change_string_group_double,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+insert_num c1 c2 c3 b
+1 753.7028 753.7028 753.7028 original
+10 9250340.75 9250340.75 9250340.75 new
+2 -3651.672121 -3651.672121 -3651.672121 original
+3 -29.0764 -29.0764 -29.0764 original
+4 -10.3 -10.3 -10.3 original
+5 30.774 30.774 30.774 new
+6 20.31 20.31 20.31 new
+7 46114.284799488 46114.284799488 46114.284799488 new
+8 -66475.561431 -66475.561431 -66475.561431 new
+9 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table table_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: drop table table_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=9 width=147)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=9 width=147)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=9 width=147)
+ default@table_change_date_group_string_group_timestamp,table_change_date_group_string_group_timestamp,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 6229-06-28 02:5 6229-06-28 02:54:28.970117179 6229-06-28 02:5 new
+9 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 5966-07-09 03:3 5966-07-09 03:30:50.597 5966-07-09 03:3 new
+PREHOOK: query: drop table table_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table table_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+c1 string
+c2 char(50)
+c3 char(15)
+c4 varchar(50)
+c5 varchar(15)
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 3
+ rawDataSize 195
+ totalSize 198
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=9 width=91)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=9 width=91)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6"]
+ TableScan [TS_0] (rows=9 width=91)
+ default@table_change_date_group_string_group_date,table_change_date_group_string_group_date,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table table_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: drop table table_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=10 width=33)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ TableScan [TS_0] (rows=10 width=33)
+ default@table_change_numeric_group_string_group_multi_ints_string,table_change_numeric_group_string_group_multi_ints_string,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","b"]
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+10 17 90000 754072151 3289094 new
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+5 2000 72909 3244222 -93222 new
+6 1 200 2323322 5430907 new
+7 256 32768 31889 470614135 new
+8 5555 40000 -719017797 810662019 new
+9 100 5000 5443 0 new
+PREHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__17
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__17
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__18
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__18
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=10 width=140)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=10 width=140)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5"]
+ TableScan [TS_0] (rows=1
<TRUNCATED>
[37/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part_all_primitive.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part_all_primitive.q b/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part_all_primitive.q
new file mode 100644
index 0000000..f2cada2
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part_all_primitive.q
@@ -0,0 +1,514 @@
+set hive.explain.user=true;
+set hive.mapred.mode=nonstrict;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=false;
+SET hive.vectorized.use.vector.serde.deserialize=false;
+SET hive.vectorized.use.row.serde.deserialize=true;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=false;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING);
+
+insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new');
+
+insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num;
+
+drop table part_change_various_various_boolean;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING);
+
+insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new');
+
+insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num;
+
+drop table part_change_various_various_tinyint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING);
+
+insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new');
+
+insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num;
+
+drop table part_change_various_various_smallint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING);
+
+insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new');
+
+insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num;
+
+drop table part_change_various_various_int;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING);
+
+insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new');
+
+insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num;
+
+drop table part_change_various_various_bigint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> FLOAT
+--
+CREATE TABLE part_change_various_various_float(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_float partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '2402.3', '2402.3', '2402.3', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_float order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_float replace columns (insert_num int, c1 FLOAT, c2 FLOAT, c3 FLOAT, c4 FLOAT, c5 FLOAT, c6 FLOAT, c7 FLOAT, c8 FLOAT, c9 FLOAT, c10 FLOAT, c11 FLOAT, b STRING);
+
+insert into table part_change_various_various_float partition(part=2)
+ values (5, 953967041., 62.0791539559013466, 718.78, 1, 203.199548118, -60, 6275638713485623898, -230, -695025, -3651.67212, 46114.28, 'new');
+
+insert into table part_change_various_various_float partition(part=1)
+ values (6, -1255178165.77663, 9043162437544575070.974, -4314.7918, -1240033819, 91, 1698.95, -100.3597812, -63, 0, -93222.200, 29.076, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_float order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_float order by insert_num;
+
+drop table part_change_various_various_float;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> DOUBLE
+--
+CREATE TABLE part_change_various_various_double(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_double partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_double order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, c4 DOUBLE, c5 DOUBLE, c6 DOUBLE, c7 DOUBLE, c8 DOUBLE, c9 DOUBLE, c10 DOUBLE, c11 DOUBLE, b STRING);
+
+insert into table part_change_various_various_double partition(part=2)
+ values (5, 953967041., 62.0791539559013466, 718.78, 1, 203.199548118, -60, 6275638713485623898, -230, -695025, 0.00007011717, 4.28479948, 'new');
+
+insert into table part_change_various_various_double partition(part=1)
+ values (6, -1255178165.77663, 9043162437544575070.974, -4314.7918, -1240033819, 91, 1698.95, -100.3597812, -63, 0, -66475.0000008, -284799488.1, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_double order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_double order by insert_num;
+
+drop table part_change_various_various_double;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, STRING, CHAR, VARCHAR, TIMESTAMP) --> DECIMAL
+--
+CREATE TABLE part_change_various_various_decimal(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_decimal partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '--1551801.09502', '--1551801.09502', '--1551801.09502', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '2402.3', '2402.3', '2402.3', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_decimal order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_decimal replace columns (insert_num int, c1 DECIMAL(38,18), c2 DECIMAL(38,18), c3 DECIMAL(38,18), c4 DECIMAL(38,18), c5 DECIMAL(38,18), c6 DECIMAL(38,18), c7 DECIMAL(38,18), c8 DECIMAL(38,18), c9 DECIMAL(38,18), c10 DECIMAL(38,18), c11 DECIMAL(38,18), b STRING);
+
+insert into table part_change_various_various_decimal partition(part=2)
+ values (5, 953967041., 62.0791539559013466, 718.78, 1, 203.199548118, -60, 6275638713485623898, -230, -695025, 0.00007011717, 4.28479948, 'new');
+
+insert into table part_change_various_various_decimal partition(part=1)
+ values (6,-1255178165.77663, 9043162437544575070.974, -4314.7918, -1240033819, 91, 1698.95, -100.3597812, -63, 0, -66475.0000008, -284799488.1, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_decimal order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_decimal order by insert_num;
+
+drop table part_change_various_various_decimal;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY) --> STRING
+--
+CREATE TABLE part_change_various_various_string(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_string partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, c5 STRING, c6 STRING, c7 STRING, c8 STRING, c9 STRING, c10 STRING, c11 STRING, c12 STRING, c13 STRING, b STRING);
+
+insert into table part_change_various_various_string partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_string partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_string order by insert_num;
+
+drop table part_change_various_various_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, VARCHAR, TIMESTAMP, DATE, BINARY) --> CHAR
+--
+CREATE TABLE part_change_various_various_char(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 VARCHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_char partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_char replace columns (insert_num int, c1 CHAR(25), c2 CHAR(25), c3 CHAR(25), c4 CHAR(25), c5 CHAR(25), c6 CHAR(25), c7 CHAR(25), c8 CHAR(25), c9 CHAR(25), c10 CHAR(25), c11 CHAR(25), c12 CHAR(25), c13 CHAR(25), b STRING);
+
+insert into table part_change_various_various_char partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_char partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char order by insert_num;
+
+drop table part_change_various_various_char;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, VARCHAR, TIMESTAMP, DATE, BINARY) --> CHAR trunc
+--
+CREATE TABLE part_change_various_various_char_trunc(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 VARCHAR(8), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_char_trunc partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_char_trunc replace columns (insert_num int, c1 CHAR(8), c2 CHAR(8), c3 CHAR(8), c4 CHAR(8), c5 CHAR(8), c6 CHAR(8), c7 CHAR(8), c8 CHAR(8), c9 CHAR(8), c10 CHAR(8), c11 CHAR(8), c12 CHAR(8), c13 CHAR(8), b STRING);
+
+insert into table part_change_various_various_char_trunc partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_char_trunc partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char_trunc order by insert_num;
+
+drop table part_change_various_various_char_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, CHAR, TIMESTAMP, DATE, BINARY) --> VARCHAR
+--
+CREATE TABLE part_change_various_various_varchar(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 CHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_varchar partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_varchar replace columns (insert_num int, c1 VARCHAR(25), c2 VARCHAR(25), c3 VARCHAR(25), c4 VARCHAR(25), c5 VARCHAR(25), c6 VARCHAR(25), c7 VARCHAR(25), c8 VARCHAR(25), c9 VARCHAR(25), c10 VARCHAR(25), c11 VARCHAR(25), c12 VARCHAR(25), c13 VARCHAR(25), b STRING);
+
+insert into table part_change_various_various_varchar partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_varchar partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar order by insert_num;
+
+drop table part_change_various_various_varchar;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, CHAR, TIMESTAMP, DATE, BINARY) --> VARCHAR trunc
+--
+CREATE TABLE part_change_various_various_varchar_trunc(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 CHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_varchar_trunc partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_varchar_trunc replace columns (insert_num int, c1 VARCHAR(8), c2 VARCHAR(8), c3 VARCHAR(8), c4 VARCHAR(8), c5 VARCHAR(8), c6 VARCHAR(8), c7 VARCHAR(8), c8 VARCHAR(8), c9 VARCHAR(8), c10 VARCHAR(8), c11 VARCHAR(8), c12 VARCHAR(8), c13 VARCHAR(8), b STRING);
+
+insert into table part_change_various_various_varchar_trunc partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_varchar_trunc partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar_trunc order by insert_num;
+
+drop table part_change_various_various_varchar_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, CHAR, VARCHAR, DATE) --> TIMESTAMP
+--
+CREATE TABLE part_change_various_various_timestamp(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 CHAR(25), c11 VARCHAR(25), c12 DATE, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_timestamp partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '2007-02-09', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '0004-09-22', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '5966-07-09', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '1815-05-06', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,b from part_change_various_various_timestamp order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_timestamp replace columns (insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, c6 TIMESTAMP, c7 TIMESTAMP, c8 TIMESTAMP, c9 TIMESTAMP, c10 TIMESTAMP, c11 TIMESTAMP, c12 TIMESTAMP, b STRING);
+
+insert into table part_change_various_various_timestamp partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'timestamp', 'timestamp', 'timestamp', 'date', 'new');
+
+insert into table part_change_various_various_timestamp partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', '2016-03-07 03:02:22.0', '2016-03-07 03:02:22.0', '2016-03-07 03:02:22.0', '2016-03-07', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,b from part_change_various_various_timestamp order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,b from part_change_various_various_timestamp order by insert_num;
+
+drop table part_change_various_various_timestamp;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (STRING, CHAR, VARCHAR, TIMESTAMP --> DATE
+--
+CREATE TABLE part_change_various_various_date(insert_num int, c1 STRING, c2 CHAR(25), c3 VARCHAR(25), c4 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_date partition(part=1)
+ values(1, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_various_various_date order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_date replace columns (insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, b STRING);
+
+insert into table part_change_various_various_date partition(part=2)
+ values (5, '2016-03-07', '2016-03-07', '2016-03-07', '2016-03-07', 'new');
+
+insert into table part_change_various_various_date partition(part=1)
+ values (6,-'2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10','new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_various_various_date order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_various_various_date order by insert_num;
+
+drop table part_change_various_various_date;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (STRING, CHAR, VARCHAR) --> BINARY
+--
+CREATE TABLE part_change_various_various_binary(insert_num int, c1 STRING, c2 CHAR(25), c3 VARCHAR(25), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_binary partition(part=1)
+ values(1, 'binary', 'binary', 'binary', 'original'),
+ (2, 'binary', 'binary', 'binary', 'original'),
+ (3, 'binary', 'binary', 'binary', 'original'),
+ (4, 'binary', 'binary', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_various_various_binary order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_binary replace columns (insert_num int, c1 BINARY, c2 BINARY, c3 BINARY, b STRING);
+
+insert into table part_change_various_various_binary partition(part=2)
+ values (5, 'binary', 'binary', 'binary', 'new');
+
+insert into table part_change_various_various_binary partition(part=1)
+ values (6,-'binary', 'binary', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_various_various_binary order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_various_various_binary order by insert_num;
+
+drop table part_change_various_various_binary;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_table.q b/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_table.q
new file mode 100644
index 0000000..de0b7ba
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_table.q
@@ -0,0 +1,826 @@
+set hive.explain.user=true;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=false;
+SET hive.vectorized.use.vector.serde.deserialize=false;
+SET hive.vectorized.use.row.serde.deserialize=true;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=true;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING);
+DESCRIBE FORMATTED table_add_int_permute_select;
+
+insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int);
+DESCRIBE FORMATTED table_add_int_permute_select;
+
+insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40);
+
+insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200);
+
+explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num;
+select insert_num,a,b,c from table_add_int_permute_select order by insert_num;
+select insert_num,c from table_add_int_permute_select order by insert_num;
+
+drop table table_add_int_permute_select;
+
+
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING);
+DESCRIBE FORMATTED table_add_int_string_permute_select;
+
+insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string);
+DESCRIBE FORMATTED table_add_int_string_permute_select;
+
+insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty');
+
+insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred');
+
+explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,d from table_add_int_string_permute_select order by insert_num;
+select insert_num,c from table_add_int_string_permute_select order by insert_num;
+select insert_num,d from table_add_int_string_permute_select order by insert_num;
+
+drop table table_add_int_string_permute_select;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING);
+
+insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING);
+
+insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new');
+
+insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num;
+
+drop table table_change_string_group_double;
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING);
+
+insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);
+
+insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new');
+insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num;
+
+drop table table_change_date_group_string_group_timestamp;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING);
+
+insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);DESCRIBE FORMATTED table_change_date_group_string_group_date;
+
+insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num;
+
+drop table table_change_date_group_string_group_date;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_char_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_varchar(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), c4 VARCHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_varchar_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_varchar_trunc replace columns (insert_num int, c1 VARCHAR(5), c2 VARCHAR(5), c3 VARCHAR(5), c4 VARCHAR(5), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_varchar_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (FLOAT, DOUBLE, DECIMAL), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_string(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_string
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, - 832222222, 255, 4957,'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_string
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_string order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_string order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_string;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_char(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_char
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957,'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_char
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_char_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_char_trunc
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 832222222, -255, 4957, 'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_char_trunc replace columns (insert_num int, c1 CHAR(7), c2 CHAR(7), c3 CHAR(7), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_char_trunc
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_char_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_varchar(insert_num int, c1 float, c2 double, c3 decimal(38,18), b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_varchar
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_varchar
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_varchar_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_varchar_trunc
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_varchar_trunc replace columns (insert_num int, c1 VARCHAR(7), c2 VARCHAR(7), c3 VARCHAR(7), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_varchar_trunc
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_varchar_trunc;
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: STRING, (CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_string_group_string_group_string(insert_num int, c1 string, c2 string, c3 string, c4 string, b STRING);
+
+insert into table table_change_string_group_string_group_string
+ values (1, 'escapist', 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_string_group_string_group_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_string_group_string replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 VARCHAR(50), c4 CHAR(9), b STRING) ;
+
+insert into table table_change_string_group_string_group_string
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'junkyard', 'new'),
+ (6, ' baffling ', ' baffling ', ' baffling ', ' baffling ', 'new'),
+ (7, ' featherweight ', ' featherweight ',' featherweight ',' featherweight ', 'new'),
+ (8, ' against', ' against', ' against', ' against', 'new'),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new'),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'bottom ', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_string_group_string_group_string order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_string_group_string_group_string order by insert_num;
+
+drop table table_change_string_group_string_group_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: CHAR, (VARCHAR, VARCHAR trunc, STRING)
+--
+CREATE TABLE table_change_string_group_string_group_char(insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING);
+
+insert into table table_change_string_group_string_group_char
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_string_group_char replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(9), c3 STRING, b STRING) ;
+
+insert into table table_change_string_group_string_group_char
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new'),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new'),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new'),
+ (8, ' against', ' against', ' against', 'new'),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new'),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_char order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_char order by insert_num;
+
+drop table table_change_string_group_string_group_char;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: VARCHAR, (CHAR, CHAR trunc, STRING)
+--
+CREATE TABLE table_change_string_group_string_group_varchar(insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING);
+
+insert into table table_change_string_group_string_group_varchar
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_string_group_varchar replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 STRING, b STRING) ;
+
+insert into table table_change_string_group_string_group_varchar
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new'),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new'),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new'),
+ (8, ' against', ' against', ' against', 'new'),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new'),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_varchar order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_varchar order by insert_num;
+
+drop table table_change_string_group_string_group_varchar;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: TINYINT, (SMALLINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_tinyint(insert_num int, c1 tinyint, c2 tinyint, c3 tinyint, c4 tinyint, c5 tinyint, c6 tinyint, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_tinyint
+ values (1, 45, 45, 45, 45, 45, 45, 'original'),
+ (2, -2, -2, -2, -2, -2, -2, 'original'),
+ (3, -255, -255, -255, -255, -255, -255, 'original'),
+ (4, 100, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,c1,c2,c3,c4,c5,c6,b from table_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_tinyint replace columns (insert_num int, c1 SMALLINT, c2 INT, c3 BIGINT, c4 decimal(38,18), c5 FLOAT, c6 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_tinyint
+ values (5, '774', '2031', '200', '12', '99', '0', 'new'),
+ (6, '561431', '52927714', '7203778961', '8', '7', '6', 'new'),
+ (7, '256', '32768', '31889', '300', '444', '506', 'new'),
+ (8, '5555', '40000', '-719017797', '45', '55', '65', 'new'),
+ (9, '100', '5000', '5443', '22', '2', '-2', 'new'),
+ (10, '17', '90000', '754072151', '95', '20', '18', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,c6,b from table_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,c6,b from table_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_tinyint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: SMALLINT, (INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_smallint(insert_num int, c1 smallint, c2 smallint, c3 smallint, c4 smallint, c5 smallint, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_smallint
+ values (1, 2031, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, -5000, 'original'),
+ (4, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_smallint replace columns (insert_num int, c1 INT, c2 BIGINT, c3 decimal(38,18), c4 FLOAT, c5 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_smallint
+ values (5, '774', '2031', '200', '12', '99', 'new'),
+ (6, '561431', '52927714', '7203778961', '8', '7', 'new'),
+ (7, '256', '32768', '31889', '300', '444', 'new'),
+ (8, '5555', '40000', '-719017797', '45', '55', 'new'),
+ (9, '100', '5000', '5443', '22', '2', 'new'),
+ (10, '17', '90000', '754072151', '95', '20', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_smallint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: INT, (BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_int(insert_num int, c1 int, c2 int, c3 int, c4 int, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_int
+ values (1, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_lower_to_higher_numeric_group_int order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_int replace columns (insert_num int, c1 BIGINT, c2 decimal(38,18), c3 FLOAT, c4 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_int
+ values (5, '774', '2031', '200', '12', 'new'),
+ (6, '561431', '52927714', '7203778961', '8', 'new'),
+ (7, '256', '32768', '31889', '300', 'new'),
+ (8, '5555', '40000', '-719017797', '45', 'new'),
+ (9, '100', '5000', '5443', '22', 'new'),
+ (10, '17', '90000', '754072151', '95', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_lower_to_higher_numeric_group_int order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_lower_to_higher_numeric_group_int order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_int;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: BIGINT, (DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_bigint(insert_num int, c1 bigint, c2 bigint, c3 bigint, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_bigint
+ values (1, 7203778961, 7203778961, 7203778961, 'original'),
+ (2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_bigint replace columns (insert_num int, c1 decimal(38,18), c2 FLOAT, c3 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_bigint
+ values (5, '774', '2031', '200', 'new'),
+ (6, '561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_bigint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: DECIMAL, (FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_decimal(insert_num int, c1 decimal(38,18), c2 decimal(38,18), b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_decimal
+ values (1, -29.0764, -29.0764, 'original'),
+ (2, 753.7028, 753.7028, 'original'),
+ (3, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 'original');
+
+select insert_num,c1,c2,b from table_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_decimal replace columns (insert_num int, c1 float, c2 double, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_decimal
+ values (5, '7.74', '22.3', 'new'),
+ (6, '56.1431', '90.9', 'new'),
+ (7, '2.56', '25.6', 'new'),
+ (8, '555.5', '55.55', 'new'),
+ (9, '10.0', '0.100', 'new'),
+ (10, '1.7', '17.8888', 'new');
+
+explain
+select insert_num,c1,c2,b from table_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+select insert_num,c1,c2,b from table_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_decimal;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: FLOAT, (DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_float(insert_num int, c1 float, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_float
+ values (1, -29.0764, 'original'),
+ (2, 753.7028, 'original'),
+ (3, -5000, 'original'),
+ (4, 52927714, 'original');
+
+select insert_num,c1,b from table_change_lower_to_higher_numeric_group_float order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_float replace columns (insert_num int, c1 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_float
+ values (5, '774', 'new'),
+ (6, '561431', 'new'),
+ (7, '256', 'new'),
+ (8, '5555', 'new'),
+ (9, '100', 'new'),
+ (10, '17', 'new');
+
+explain
+select insert_num,c1,b from table_change_lower_to_higher_numeric_group_float order by insert_num;
+
+select insert_num,c1,b from table_change_lower_to_higher_numeric_group_float order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_float;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/tez_schema_evolution.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/tez_schema_evolution.q b/ql/src/test/queries/clientpositive/tez_schema_evolution.q
index d855cd2..1d8f487 100644
--- a/ql/src/test/queries/clientpositive/tez_schema_evolution.q
+++ b/ql/src/test/queries/clientpositive/tez_schema_evolution.q
@@ -1,3 +1,4 @@
+SET hive.vectorized.execution.enabled=false;
set hive.mapred.mode=nonstrict;
-- SORT_QUERY_RESULTS
[34/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part.q.out b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part.q.out
index 44f5822..2c1caa3 100644
--- a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part.q.out
+++ b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_mapwork_part.q.out
@@ -1,642 +1,4451 @@
PREHOOK: query: -- SORT_QUERY_RESULTS
--
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Partitioned
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned1
+PREHOOK: Output: default@part_add_int_permute_select
POSTHOOK: query: -- SORT_QUERY_RESULTS
--
--- FILE VARIATION: TEXT, Non-Vectorized, MapWork, Partitioned
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
--
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@partitioned1@part=1
-POSTHOOK: query: insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@partitioned1@part=1
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string)
+alter table part_add_int_permute_select add columns(c int)
PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@partitioned1
-PREHOOK: Output: default@partitioned1
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string)
+alter table part_add_int_permute_select add columns(c int)
POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@partitioned1@part=2
-POSTHOOK: query: insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
+PREHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@partitioned1@part=2
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
_col0 _col1 _col2 _col3
-PREHOOK: query: insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@partitioned1@part=1
-POSTHOOK: query: insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@partitioned1@part=1
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_int_permute_select
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
#### A masked pattern was here ####
POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b
-1 1 original
-1 2 original
-1 3 original
-1 4 original
-1 5 new
-1 6 new
-2 1 new
-2 2 new
-2 3 new
-2 4 new
-PREHOOK: query: select part,a,b,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c
-1 1 original NULL
-1 2 original NULL
-1 3 original NULL
-1 4 original NULL
-1 5 new NULL
-1 6 new NULL
-2 1 new 10
-2 2 new 20
-2 3 new 30
-2 4 new 40
-PREHOOK: query: select part,a,b,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c d
-1 1 original NULL NULL
-1 2 original NULL NULL
-1 3 original NULL NULL
-1 4 original NULL NULL
-1 5 new NULL NULL
-1 6 new NULL NULL
-2 1 new 10 ten
-2 2 new 20 twenty
-2 3 new 30 thirty
-2 4 new 40 forty
-PREHOOK: query: select part,a,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a c d
-1 1 NULL NULL
-1 2 NULL NULL
-1 3 NULL NULL
-1 4 NULL NULL
-1 5 NULL NULL
-1 6 NULL NULL
-2 1 10 ten
-2 2 20 twenty
-2 3 30 thirty
-2 4 40 forty
-PREHOOK: query: select part,a,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a d
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
1 1 NULL
-1 2 NULL
-1 3 NULL
-1 4 NULL
-1 5 NULL
-1 6 NULL
-2 1 ten
-2 2 twenty
-2 3 thirty
-2 4 forty
-PREHOOK: query: select part,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part c
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 10
-2 20
-2 30
-2 40
-PREHOOK: query: select part,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part d
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 forty
-2 ten
-2 thirty
-2 twenty
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: drop table part_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: drop table part_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
--
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
--
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@partitioned2@part=1
-POSTHOOK: query: insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@partitioned2@part=1
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@partitioned2
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@partitioned2@part=2
-POSTHOOK: query: insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
+PREHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@partitioned2@part=2
-POSTHOOK: Lineage: partitioned2 PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new')
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@partitioned2@part=1
-POSTHOOK: query: insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new')
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@partitioned2@part=1
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select part,a,b from partitioned2
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned2
-PREHOOK: Input: default@partitioned2@part=1
-PREHOOK: Input: default@partitioned2@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b from partitioned2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Input: default@partitioned2@part=1
-POSTHOOK: Input: default@partitioned2@part=2
-#### A masked pattern was here ####
-part a b
-1 1000 original
-1 3 original
-1 4 original
-1 5000 new
-1 6737 original
-1 NULL new
-2 200 new
-2 32768 new
-2 40000 new
-2 72909 new
-PREHOOK: query: --
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_int_string_permute_select
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c d
+1 1 1 original NULL NULL
+10 1 6 new NULL NULL
+2 1 2 original NULL NULL
+3 1 3 original NULL NULL
+4 1 4 original NULL NULL
+5 2 1 new 10 ten
+6 2 2 new 20 twenty
+7 2 3 new 30 thirty
+8 2 4 new 40 forty
+9 1 5 new NULL NULL
+PREHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a c d
+1 1 1 NULL NULL
+10 1 6 NULL NULL
+2 1 2 NULL NULL
+3 1 3 NULL NULL
+4 1 4 NULL NULL
+5 2 1 10 ten
+6 2 2 20 twenty
+7 2 3 30 thirty
+8 2 4 40 forty
+9 1 5 NULL NULL
+PREHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a d
+1 1 1 NULL
+10 1 6 NULL
+2 1 2 NULL
+3 1 3 NULL
+4 1 4 NULL
+5 2 1 ten
+6 2 2 twenty
+7 2 3 thirty
+8 2 4 forty
+9 1 5 NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part d
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 ten
+6 2 twenty
+7 2 thirty
+8 2 forty
+9 1 NULL
+PREHOOK: query: drop table part_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: drop table part_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: --
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
--
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__7
-PREHOOK: Output: default@partitioned3@part=1
-POSTHOOK: query: insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__7
-POSTHOOK: Output: default@partitioned3@part=1
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).a EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@partitioned3
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@partitioned3
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1)
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
PREHOOK: type: QUERY
PREHOOK: Input: default@values__tmp__table__8
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1)
+PREHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
POSTHOOK: type: QUERY
POSTHOOK: Input: default@values__tmp__table__8
-POSTHOOK: Output: default@partitioned3@part=1
-POSTHOOK: Output: default@partitioned3@part=2
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).a EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).c EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).d SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).a EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).c EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).d SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
_col0 _col1 _col2 _col3 _col4
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_string_group_double
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: double), c2 (type: double), c3 (type: double), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: double), _col3 (type: double), _col4 (type: double), _col5 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: double), VALUE._col2 (type: double), VALUE._col3 (type: double), VALUE._col4 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 550 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Input: default@part_change_string_group_double@part=1
+PREHOOK: Input: default@part_change_string_group_double@part=2
#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b
-1 1 original
-1 2 original
-1 3 original
-1 4 original
-1 5 new
-1 6 new
-2 1 new
-2 2 new
-2 3 new
-2 4 new
-PREHOOK: query: select part,a,b,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c
-1 1 original NULL
-1 2 original NULL
-1 3 original NULL
-1 4 original NULL
-1 5 new NULL
-1 6 new NULL
-2 1 new 10
-2 2 new 20
-2 3 new 30
-2 4 new 40
-PREHOOK: query: select part,a,b,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c d
-1 1 original NULL NULL
-1 2 original NULL NULL
-1 3 original NULL NULL
-1 4 original NULL NULL
-1 5 new NULL NULL
-1 6 new NULL NULL
-2 1 new 10 ten
-2 2 new 20 twenty
-2 3 new 30 thirty
-2 4 new 40 forty
-PREHOOK: query: select part,a,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a c d
-1 1 NULL NULL
-1 2 NULL NULL
-1 3 NULL NULL
-1 4 NULL NULL
-1 5 NULL NULL
-1 6 NULL NULL
-2 1 10 ten
-2 2 20 twenty
-2 3 30 thirty
-2 4 40 forty
-PREHOOK: query: select part,a,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a d
-1 1 NULL
-1 2 NULL
-1 3 NULL
-1 4 NULL
-1 5 NULL
-1 6 NULL
-2 1 ten
-2 2 twenty
-2 3 thirty
-2 4 forty
-PREHOOK: query: select part,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part c
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 10
-2 20
-2 30
-2 40
-PREHOOK: query: select part,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part d
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 forty
-2 ten
-2 thirty
-2 twenty
+POSTHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Input: default@part_change_string_group_double@part=1
+POSTHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 b
+1 1 753.7028 753.7028 753.7028 original
+10 1 9250340.75 9250340.75 9250340.75 new
+2 1 -3651.672121 -3651.672121 -3651.672121 original
+3 1 -29.0764 -29.0764 -29.0764 original
+4 1 -10.3 -10.3 -10.3 original
+5 2 30.774 30.774 30.774 new
+6 2 20.31 20.31 20.31 new
+7 2 46114.284799488 46114.284799488 46114.284799488 new
+8 2 -66475.561431 -66475.561431 -66475.561431 new
+9 1 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table part_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: drop table part_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_date_group_string_group_timestamp
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: char(50)), _col4 (type: char(15)), _col5 (type: varchar(50)), _col6 (type: varchar(15)), _col7 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: char(50)), VALUE._col3 (type: char(15)), VALUE._col4 (type: varchar(50)), VALUE._col5 (type: varchar(15)), VALUE._col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 1326 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 1 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 1 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 2 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 2 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 1 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 NULL 6229-06-28 02:54:28.970117179 NULL new
+9 1 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 NULL 5966-07-09 03:30:50.597 NULL new
+PREHOOK: query: drop table part_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table part_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
--
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned4
+PREHOOK: Output: default@part_change_date_group_string_group_date
POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
--
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned4
-PREHOOK: query: insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__9
-PREHOOK: Output: default@partitioned4@part=1
-POSTHOOK: query: insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__9
-POSTHOOK: Output: default@partitioned4@part=1
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).a EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@partitioned4
-PREHOOK: Output: default@partitioned4
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Output: default@partitioned4
-PREHOOK: query: insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1)
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__10
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1)
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__10
-POSTHOOK: Output: default@partitioned4@part=1
-POSTHOOK: Output: default@partitioned4@part=2
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).a EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=2).a EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=2).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1 _col2
-PREHOOK: query: select part,a,b from partitioned4
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned4
-PREHOOK: Input: default@partitioned4@part=1
-PREHOOK: Input: default@partitioned4@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b from partitioned4
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Input: default@partitioned4@part=1
-POSTHOOK: Input: default@partitioned4@part=2
-#### A masked pattern was here ####
-part a b
-1 1000 original
-1 3 original
-1 4 original
-1 5000 new
-1 6737 original
-1 NULL new
-2 200 new
-2 32768 new
-2 40000 new
-2 72909 new
-PREHOOK: query: DROP TABLE partitioned1
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date P
<TRUNCATED>
[27/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_table.q.out b/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_table.q.out
new file mode 100644
index 0000000..50328d3
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_table.q.out
@@ -0,0 +1,4221 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_add_int_permute_select
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: drop table table_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: drop table table_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_add_int_string_permute_select
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c d
+1 1 original NULL NULL
+10 6 new 200 two hundred
+2 2 original NULL NULL
+3 3 original NULL NULL
+4 4 original NULL NULL
+5 1 new 10 ten
+6 2 new 20 twenty
+7 3 new 30 thirty
+8 4 new 40 forty
+9 5 new 100 hundred
+PREHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a c d
+1 1 NULL NULL
+10 6 200 two hundred
+2 2 NULL NULL
+3 3 NULL NULL
+4 4 NULL NULL
+5 1 10 ten
+6 2 20 twenty
+7 3 30 thirty
+8 4 40 forty
+9 5 100 hundred
+PREHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a d
+1 1 NULL
+10 6 two hundred
+2 2 NULL
+3 3 NULL
+4 4 NULL
+5 1 ten
+6 2 twenty
+7 3 thirty
+8 4 forty
+9 5 hundred
+PREHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num d
+1 NULL
+10 two hundred
+2 NULL
+3 NULL
+4 NULL
+5 ten
+6 twenty
+7 thirty
+8 forty
+9 hundred
+PREHOOK: query: drop table table_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: drop table table_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_string_group_double
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: double), c2 (type: double), c3 (type: double), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: double), _col2 (type: double), _col3 (type: double), _col4 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: double), VALUE._col1 (type: double), VALUE._col2 (type: double), VALUE._col3 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+insert_num c1 c2 c3 b
+1 753.7028 753.7028 753.7028 original
+10 9250340.75 9250340.75 9250340.75 new
+2 -3651.672121 -3651.672121 -3651.672121 original
+3 -29.0764 -29.0764 -29.0764 original
+4 -10.3 -10.3 -10.3 original
+5 30.774 30.774 30.774 new
+6 20.31 20.31 20.31 new
+7 46114.284799488 46114.284799488 46114.284799488 new
+8 -66475.561431 -66475.561431 -66475.561431 new
+9 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table table_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: drop table table_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_date_group_string_group_timestamp
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: char(50)), _col3 (type: char(15)), _col4 (type: varchar(50)), _col5 (type: varchar(15)), _col6 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: string), VALUE._col1 (type: char(50)), VALUE._col2 (type: char(15)), VALUE._col3 (type: varchar(50)), VALUE._col4 (type: varchar(15)), VALUE._col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 6229-06-28 02:5 6229-06-28 02:54:28.970117179 6229-06-28 02:5 new
+9 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 5966-07-09 03:3 5966-07-09 03:30:50.597 5966-07-09 03:3 new
+PREHOOK: query: drop table table_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table table_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+c1 string
+c2 char(50)
+c3 char(15)
+c4 varchar(50)
+c5 varchar(15)
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 3
+ rawDataSize 195
+ totalSize 198
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_date_group_string_group_date
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: char(50)), _col3 (type: char(15)), _col4 (type: varchar(50)), _col5 (type: varchar(15)), _col6 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: string), VALUE._col1 (type: char(50)), VALUE._col2 (type: char(15)), VALUE._col3 (type: varchar(50)), VALUE._col4 (type: varchar(15)), VALUE._col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table table_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: drop table table_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_numeric_group_string_group_multi_ints_string
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: string), c2 (type: string), c3 (type: string), c4 (type: string), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: string), VALUE._col1 (type: string), VALUE._col2 (type: string), VALUE._col3 (type: string), VALUE._col4 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+10 17 90000 754072151 3289094 new
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+5 2000 72909 3244222 -93222 new
+6 1 200 2323322 5430907 new
+7 256 32768 31889 470614135 new
+8 5555 40000 -719017797 810662019 new
+9 100 5000 5443 0 new
+PREHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__17
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__17
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__18
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__18
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_numeric_group_string_group_multi_ints_char
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: char(50)), c2 (type: char(50)), c3 (type: char(50)), c4 (type: char(50)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: char(50)), _col2 (type: char(50)), _col3 (type: char(50)), _col4 (type: char(50)), _col5 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(50)), VALUE._col1 (type: char(50)), VALUE._col2 (type: char(50)), VALUE._col3 (type: char(50)), VALUE._col4 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45
<TRUNCATED>
[50/50] [abbrv] hive git commit: Merge branch 'master' into llap
Posted by jd...@apache.org.
Merge branch 'master' into llap
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/e073cce2
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/e073cce2
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/e073cce2
Branch: refs/heads/llap
Commit: e073cce2354801e12c4767f47a76fbf25168d026
Parents: 342668f e9a7218
Author: Jason Dere <jd...@hortonworks.com>
Authored: Mon May 2 18:29:03 2016 -0700
Committer: Jason Dere <jd...@hortonworks.com>
Committed: Mon May 2 18:29:03 2016 -0700
----------------------------------------------------------------------
.../apache/hive/beeline/DatabaseConnection.java | 12 +-
.../org/apache/hadoop/hive/cli/CliDriver.java | 5 +-
.../org/apache/hadoop/hive/conf/HiveConf.java | 19 +
data/files/keystore.jks | Bin 2248 -> 2206 bytes
data/files/keystore_exampledotcom.jks | Bin 0 -> 2222 bytes
data/files/struct1_a.txt | 4 +
data/files/struct1_b.txt | 1 +
data/files/struct1_c.txt | 1 +
data/files/struct2_a.txt | 2 +
data/files/struct2_b.txt | 2 +
data/files/struct2_c.txt | 1 +
data/files/struct2_d.txt | 1 +
data/files/struct3_a.txt | 2 +
data/files/struct3_b.txt | 1 +
data/files/struct3_c.txt | 1 +
data/files/struct4_a.txt | 2 +
data/files/struct4_b.txt | 1 +
data/files/struct4_c.txt | 1 +
data/files/truststore.jks | Bin 958 -> 1816 bytes
.../hcatalog/templeton/ExecServiceImpl.java | 7 +-
.../org/apache/hive/jdbc/miniHS2/MiniHS2.java | 35 +-
.../org/apache/hive/jdbc/TestJdbcDriver2.java | 25 +-
.../test/java/org/apache/hive/jdbc/TestSSL.java | 71 +-
itests/pom.xml | 3 -
.../test/resources/testconfiguration.properties | 34 +-
.../org/apache/hive/jdbc/HiveConnection.java | 99 +-
.../java/org/apache/hive/jdbc/JdbcColumn.java | 13 +-
.../hadoop/hive/llap/cli/LlapServiceDriver.java | 21 +-
.../llap/cli/LlapStatusOptionsProcessor.java | 44 +-
.../hive/llap/cli/LlapStatusServiceDriver.java | 74 +-
.../daemon/impl/LlapProtocolServerImpl.java | 57 +-
.../hive/llap/io/api/impl/LlapInputFormat.java | 2 +-
.../main/resources/llap-cli-log4j2.properties | 2 +-
llap-server/src/main/resources/package.py | 7 +-
packaging/src/main/assembly/bin.xml | 5 +
.../hive/ql/exec/AbstractMapOperator.java | 178 +
.../org/apache/hadoop/hive/ql/exec/DDLTask.java | 7 +
.../hadoop/hive/ql/exec/FunctionRegistry.java | 8 +
.../apache/hadoop/hive/ql/exec/MapOperator.java | 86 +-
.../apache/hadoop/hive/ql/exec/Utilities.java | 33 +-
.../hadoop/hive/ql/exec/mr/ExecMapper.java | 3 +-
.../ql/exec/spark/SparkMapRecordHandler.java | 3 +-
.../hadoop/hive/ql/exec/tez/DagUtils.java | 3 +-
.../hive/ql/exec/tez/MapRecordProcessor.java | 15 +-
.../hive/ql/exec/tez/MapRecordSource.java | 6 +-
.../hive/ql/exec/tez/ReduceRecordSource.java | 4 +-
.../vector/VectorAppMasterEventOperator.java | 16 +-
.../hive/ql/exec/vector/VectorAssignRow.java | 1111 ++--
.../ql/exec/vector/VectorAssignRowDynBatch.java | 41 -
.../exec/vector/VectorAssignRowSameBatch.java | 36 -
.../ql/exec/vector/VectorDeserializeRow.java | 1114 ++--
.../hive/ql/exec/vector/VectorExtractRow.java | 971 +---
.../exec/vector/VectorExtractRowDynBatch.java | 40 -
.../exec/vector/VectorExtractRowSameBatch.java | 36 -
.../ql/exec/vector/VectorFileSinkOperator.java | 16 +-
.../ql/exec/vector/VectorGroupByOperator.java | 13 +-
.../exec/vector/VectorMapJoinBaseOperator.java | 11 +-
.../ql/exec/vector/VectorMapJoinOperator.java | 4 +-
.../VectorMapJoinOuterFilteredOperator.java | 17 +-
.../hive/ql/exec/vector/VectorMapOperator.java | 848 ++-
.../exec/vector/VectorReduceSinkOperator.java | 16 +-
.../exec/vector/VectorSMBMapJoinOperator.java | 11 +-
.../VectorSparkHashTableSinkOperator.java | 16 +-
...VectorSparkPartitionPruningSinkOperator.java | 13 +-
.../ql/exec/vector/VectorizationContext.java | 12 +-
.../ql/exec/vector/VectorizedBatchUtil.java | 49 +
.../VectorMapJoinGenerateResultOperator.java | 8 +-
.../fast/VectorMapJoinFastLongHashUtil.java | 10 +-
.../fast/VectorMapJoinFastStringCommon.java | 10 +-
.../hadoop/hive/ql/io/HiveInputFormat.java | 6 +-
.../hadoop/hive/ql/io/NullRowsInputFormat.java | 2 +-
.../hadoop/hive/ql/io/orc/OrcInputFormat.java | 4 +-
.../ql/io/parquet/MapredParquetInputFormat.java | 2 +-
.../hive/ql/optimizer/physical/Vectorizer.java | 334 +-
.../hadoop/hive/ql/parse/FromClauseParser.g | 4 +-
.../hadoop/hive/ql/parse/IdentifiersParser.g | 6 +-
.../hadoop/hive/ql/parse/SelectClauseParser.g | 4 +-
.../apache/hadoop/hive/ql/plan/BaseWork.java | 23 +
.../org/apache/hadoop/hive/ql/plan/MapWork.java | 11 +
.../org/apache/hadoop/hive/ql/plan/TezWork.java | 9 +-
.../hive/ql/plan/VectorPartitionConversion.java | 172 +-
.../hive/ql/plan/VectorPartitionDesc.java | 164 +-
.../hadoop/hive/ql/udf/generic/BaseMaskUDF.java | 473 ++
.../hive/ql/udf/generic/GenericUDFMask.java | 334 ++
.../ql/udf/generic/GenericUDFMaskFirstN.java | 229 +
.../hive/ql/udf/generic/GenericUDFMaskHash.java | 77 +
.../ql/udf/generic/GenericUDFMaskLastN.java | 193 +
.../udf/generic/GenericUDFMaskShowFirstN.java | 248 +
.../ql/udf/generic/GenericUDFMaskShowLastN.java | 198 +
.../ql/exec/vector/TestVectorRowObject.java | 14 +-
.../hive/ql/exec/vector/TestVectorSerDeRow.java | 169 +-
.../hive/ql/io/orc/TestInputOutputFormat.java | 10 +-
.../hive/ql/plan/TestTezWorkConcurrency.java | 65 +
.../avro_schema_evolution_native.q | 18 +
.../queries/clientpositive/bucket_groupby.q | 33 +-
.../queries/clientpositive/groupby_sort_10.q | 2 +
.../schema_evol_orc_acidvec_mapwork_part.q | 3 +
.../schema_evol_orc_acidvec_mapwork_table.q | 3 +
.../schema_evol_orc_nonvec_mapwork_table.q | 2 -
.../schema_evol_orc_vec_mapwork_part.q | 3 +
.../schema_evol_orc_vec_mapwork_table.q | 7 +-
.../schema_evol_text_fetchwork_table.q | 56 -
.../schema_evol_text_mapwork_table.q | 56 -
.../schema_evol_text_nonvec_fetchwork_part.q | 98 -
.../schema_evol_text_nonvec_fetchwork_table.q | 67 -
.../schema_evol_text_nonvec_mapwork_part.q | 828 ++-
..._evol_text_nonvec_mapwork_part_all_complex.q | 159 +
...vol_text_nonvec_mapwork_part_all_primitive.q | 509 ++
.../schema_evol_text_nonvec_mapwork_table.q | 822 ++-
.../schema_evol_text_vec_mapwork_part.q | 827 +++
...ema_evol_text_vec_mapwork_part_all_complex.q | 164 +
...a_evol_text_vec_mapwork_part_all_primitive.q | 514 ++
.../schema_evol_text_vec_mapwork_table.q | 826 +++
.../schema_evol_text_vecrow_mapwork_part.q | 827 +++
..._evol_text_vecrow_mapwork_part_all_complex.q | 165 +
...vol_text_vecrow_mapwork_part_all_primitive.q | 514 ++
.../schema_evol_text_vecrow_mapwork_table.q | 826 +++
.../clientpositive/tez_schema_evolution.q | 1 +
ql/src/test/queries/clientpositive/udf_mask.q | 13 +
.../queries/clientpositive/udf_mask_first_n.q | 13 +
.../test/queries/clientpositive/udf_mask_hash.q | 13 +
.../queries/clientpositive/udf_mask_last_n.q | 13 +
.../clientpositive/udf_mask_show_first_n.q | 13 +
.../clientpositive/udf_mask_show_last_n.q | 13 +
.../beelinepositive/show_functions.q.out | 6 +
.../results/clientnegative/subq_insert.q.out | 2 +-
.../avro_schema_evolution_native.q.out | 206 +
.../results/clientpositive/bucket_groupby.q.out | 308 +-
.../results/clientpositive/groupby1_limit.q.out | 2 +-
.../clientpositive/groupby_sort_10.q.out | 8 +-
.../results/clientpositive/regexp_extract.q.out | 137 -
.../schema_evol_text_fetchwork_table.q.out | 298 --
.../schema_evol_text_mapwork_table.q.out | 298 --
...schema_evol_text_nonvec_fetchwork_part.q.out | 642 ---
...chema_evol_text_nonvec_fetchwork_table.q.out | 297 --
.../schema_evol_text_nonvec_mapwork_part.q.out | 4909 ++++++++++++++++--
...l_text_nonvec_mapwork_part_all_complex.q.out | 726 +++
...text_nonvec_mapwork_part_all_primitive.q.out | 3038 +++++++++++
.../schema_evol_text_nonvec_mapwork_table.q.out | 4376 +++++++++++++++-
.../schema_evol_text_vec_mapwork_part.q.out | 4479 ++++++++++++++++
...evol_text_vec_mapwork_part_all_complex.q.out | 730 +++
...ol_text_vec_mapwork_part_all_primitive.q.out | 3058 +++++++++++
.../schema_evol_text_vec_mapwork_table.q.out | 4221 +++++++++++++++
.../schema_evol_text_vecrow_mapwork_part.q.out | 4479 ++++++++++++++++
...l_text_vecrow_mapwork_part_all_complex.q.out | 732 +++
...text_vecrow_mapwork_part_all_primitive.q.out | 3058 +++++++++++
.../schema_evol_text_vecrow_mapwork_table.q.out | 4221 +++++++++++++++
.../results/clientpositive/show_functions.q.out | 12 +
.../tez/schema_evol_text_fetchwork_table.q.out | 298 --
.../tez/schema_evol_text_mapwork_table.q.out | 298 --
...schema_evol_text_nonvec_fetchwork_part.q.out | 642 ---
...chema_evol_text_nonvec_fetchwork_table.q.out | 297 --
.../schema_evol_text_nonvec_mapwork_part.q.out | 4453 ++++++++++++++--
...l_text_nonvec_mapwork_part_all_complex.q.out | 669 +++
...text_nonvec_mapwork_part_all_primitive.q.out | 2734 ++++++++++
.../schema_evol_text_nonvec_mapwork_table.q.out | 3920 +++++++++++++-
.../tez/schema_evol_text_vec_mapwork_part.q.out | 3999 ++++++++++++++
...evol_text_vec_mapwork_part_all_complex.q.out | 673 +++
...ol_text_vec_mapwork_part_all_primitive.q.out | 2738 ++++++++++
.../schema_evol_text_vec_mapwork_table.q.out | 3741 +++++++++++++
.../schema_evol_text_vecrow_mapwork_part.q.out | 3999 ++++++++++++++
...l_text_vecrow_mapwork_part_all_complex.q.out | 675 +++
...text_vecrow_mapwork_part_all_primitive.q.out | 2738 ++++++++++
.../schema_evol_text_vecrow_mapwork_table.q.out | 3741 +++++++++++++
.../vector_orc_string_reader_empty_dict.q.out | 62 +
.../tez/vector_partition_diff_num_cols.q.out | 1 +
.../tez/vector_tablesample_rows.q.out | 307 ++
.../test/results/clientpositive/udf_mask.q.out | 71 +
.../clientpositive/udf_mask_first_n.q.out | 68 +
.../results/clientpositive/udf_mask_hash.q.out | 59 +
.../clientpositive/udf_mask_last_n.q.out | 68 +
.../clientpositive/udf_mask_show_first_n.q.out | 68 +
.../clientpositive/udf_mask_show_last_n.q.out | 68 +
.../vector_partition_diff_num_cols.q.out | 1 +
.../vector_tablesample_rows.q.out | 2 -
.../compiler/errors/missing_overwrite.q.out | 2 +-
.../fast/BinarySortableDeserializeRead.java | 806 +--
.../hive/serde2/fast/DeserializeRead.java | 379 +-
.../lazy/fast/LazySimpleDeserializeRead.java | 704 +--
.../fast/LazyBinaryDeserializeRead.java | 944 +---
.../apache/hadoop/hive/serde2/VerifyFast.java | 75 +-
.../hive/service/auth/HiveAuthFactory.java | 21 +-
182 files changed, 84895 insertions(+), 10148 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/e073cce2/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --cc common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 7db492f,caadf2a..5f78ae6
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@@ -2658,13 -2670,17 +2670,20 @@@ public class HiveConf extends Configura
"ZooKeeper for ZooKeeper SecretManager."),
LLAP_ZKSM_ZK_CONNECTION_STRING("hive.llap.zk.sm.connectionString", "",
"ZooKeeper connection string for ZooKeeper SecretManager."),
+ LLAP_ZK_REGISTRY_USER("hive.llap.zk.registry.user", "",
+ "In the LLAP ZooKeeper-based registry, specifies the username in the Zookeeper path.\n" +
+ "This should be the hive user or whichever user is running the LLAP daemon."),
// Note: do not rename to ..service.acl; Hadoop generates .hosts setting name from this,
// resulting in a collision with existing hive.llap.daemon.service.hosts and bizarre errors.
+ // These are read by Hadoop IPC, so you should check the usage and naming conventions (e.g.
+ // ".blocked" is a string hardcoded by Hadoop, and defaults are enforced elsewhere in Hive)
+ // before making changes or copy-pasting these.
LLAP_SECURITY_ACL("hive.llap.daemon.acl", "*", "The ACL for LLAP daemon."),
+ LLAP_SECURITY_ACL_DENY("hive.llap.daemon.acl.blocked", "", "The deny ACL for LLAP daemon."),
LLAP_MANAGEMENT_ACL("hive.llap.management.acl", "*", "The ACL for LLAP daemon management."),
+ LLAP_MANAGEMENT_ACL_DENY("hive.llap.management.acl.blocked", "",
+ "The deny ACL for LLAP daemon management."),
+
// Hadoop DelegationTokenManager default is 1 week.
LLAP_DELEGATION_TOKEN_LIFETIME("hive.llap.daemon.delegation.token.lifetime", "14d",
new TimeValidator(TimeUnit.SECONDS),
http://git-wip-us.apache.org/repos/asf/hive/blob/e073cce2/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/e073cce2/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
----------------------------------------------------------------------
diff --cc ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
index 7a3d6a6,9a9f43a..dc63d7b
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java
@@@ -33,9 -33,9 +33,10 @@@ import org.slf4j.Logger
import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
+ import org.apache.hadoop.hive.ql.exec.AbstractMapOperator;
import org.apache.hadoop.hive.llap.io.api.LlapProxy;
import org.apache.hadoop.hive.ql.CompilationOpContext;
+import org.apache.hadoop.hive.llap.LlapOutputFormat;
import org.apache.hadoop.hive.ql.exec.DummyStoreOperator;
import org.apache.hadoop.hive.ql.exec.HashTableDummyOperator;
import org.apache.hadoop.hive.ql.exec.MapOperator;
[15/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part_all_primitive.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part_all_primitive.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part_all_primitive.q.out
new file mode 100644
index 0000000..ea798f9
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_vec_mapwork_part_all_primitive.q.out
@@ -0,0 +1,2738 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 true 0004-09-22 18:26:29.519542222 original
+2 1 45 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 NULL NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 6229-06-28 02:54:28.970117179 original
+4 1 1 NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 time will come 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=96)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=96)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ TableScan [TS_0] (rows=6 width=96)
+ default@part_change_various_various_boolean,part_change_various_various_boolean,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+PREHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+POSTHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL true true true true true true true true original
+2 1 true true true true true true true false true original
+3 1 NULL NULL true true true true true true true original
+4 1 true NULL true true true true true true true original
+5 2 NULL NULL false NULL NULL false false NULL false new
+6 1 NULL NULL NULL NULL NULL NULL NULL true NULL new
+PREHOOK: query: drop table part_change_various_various_boolean
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: drop table part_change_various_various_boolean
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 NULL 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 NULL NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=97)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=97)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=97)
+ default@part_change_various_various_tinyint,part_change_various_various_tinyint,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+PREHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL -48 -51 -66 -29 119 119 73 73 73 -43 original
+2 1 NULL -24 -63 -25 -67 34 34 NULL NULL NULL 105 original
+3 1 0 NULL -66 -38 30 85 85 1 1 1 84 original
+4 1 NULL NULL 87 6 34 36 36 -77 -77 -77 60 original
+5 2 23 71 127 1 NULL -60 68 NULL NULL 40 93 new
+6 1 NULL 85 -126 NULL 91 113 -28 -63 0 8 NULL new
+PREHOOK: query: drop table part_change_various_various_tinyint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: drop table part_change_various_various_tinyint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 NULL 100 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 NULL -90 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=103)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=103)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=103)
+ default@part_change_various_various_smallint,part_change_various_various_smallint,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+PREHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+POSTHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL 7373 -32578 -29 119 119 -2999 -2999 -2999 -11819 original
+2 1 NULL 100 25025 29415 -3651 -19422 -19422 NULL NULL NULL 29801 original
+3 1 0 72 -32578 -27686 30 -939 -939 1 1 1 -8620 original
+4 1 NULL -90 14935 12294 -19422 9764 9764 5299 5299 5299 -17092 original
+5 2 -30486 15230 3117 1 -117 -7131 20227 -24858 -28771 NULL NULL new
+6 1 NULL NULL -4844 15507 91 22385 -28 -12268 0 NULL NULL new
+PREHOOK: query: drop table part_change_various_various_smallint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: drop table part_change_various_various_smallint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 NULL 100 NULL -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 NULL -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=106)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=106)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=106)
+ default@part_change_various_various_int,part_change_various_various_int,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+PREHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+POSTHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL NULL 3244222 -29 470614135 470614135 -2999 -2999 -2999 -1888628267 original
+2 1 NULL 100 NULL 1903063783 -3651 46114 46114 NULL NULL NULL 1171027049 original
+3 1 0 72 NULL -93222 30 -66475 -66475 1 1 1 1272503892 original
+4 1 NULL -90 NULL 3289094 46114 9250340 9250340 5299 5299 5299 1021033788 original
+5 2 560930 -1281818 127 1 84269672 -60 27094665 -36016110 -182 3244222 561431 new
+6 1 NULL NULL NULL -167 91 113 -164341325 -134237413 0 6229 NULL new
+PREHOOK: query: drop table part_change_various_various_int
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: drop table part_change_various_various_int
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 NULL 100 NULL NULL -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 NULL -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 1998287.3541 1998287.3541 1998287.3541 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2 vectorized
+ File Output Operator [FS_8]
+ Select Operator [SEL_7] (rows=6 width=113)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE] vectorized
+ SHUFFLE [RS_6]
+ Select Operator [SEL_5] (rows=6 width=113)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=113)
+ default@part_change_various_various_bigint,part_change_various_various_bigint,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Input: default@part_change_various_various_bigint@part=1
+PREHOOK: Input: default@part_change_various_various_bigint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Input: default@part_change_various_various_bigint@part=1
+POSTHOOK: Input: default@part_change_various_various_bigint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL NULL 3244222 -29 470614135 470614135 -2999 -2999 -2999 -62018170411 original
+2 1 NULL 100 NULL NULL -3651 46114 46114 NULL NULL NULL 1171027049 original
+3 1 0 72 NULL -93222 30 -66475 -66475 1 1 1 134416490068 original
+4 1 NULL -90 NULL 3289094 46114 9250340 9250340 1998287 NULL NULL 1021033788 original
+5 2 5573199346255528403 71 151775655 1 131 -60 6275638713485623898 -230 -695025 519542222 -29 new
+6 1 NULL NULL -126 NULL 91 113 -28 -63 0 3244222 NULL new
+PREHOOK: query: drop table part_change_various_various_bigint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: drop table part_change_various_various_bigint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> FLOAT
+--
+CREATE TABLE part_change_various_various_float(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_float
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> FLOAT
+--
+CREATE TABLE part_change_various_various_float(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_float
+PREHOOK: query: insert into table part_change_various_various_float partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '2402.3', '2402.3', '2402.3', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@part_change_various_various_float@part=1
+POSTHOOK: query: insert into table part_change_various_various_float partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '2402.3', '2402.3', '2402.3', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@part_change_various_various_float@part=1
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change
<TRUNCATED>
[29/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part_all_complex.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part_all_complex.q.out b/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part_all_complex.q.out
new file mode 100644
index 0000000..7a1ccfe
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part_all_complex.q.out
@@ -0,0 +1,730 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_a_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_a_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_a_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_a_txt)struct1_a_txt.FieldSchema(name:s1, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct1_a_txt.insert_num struct1_a_txt.s1 struct1_a_txt.b
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":-29.0764,"c7":4.70614135E8,"c8":470614135,"c9":"dynamic reptile ","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":n)\u06af} original
+2 1 {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":-3651.672,"c7":46114.284799488,"c8":46114.284799488,"c9":" baffling ","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":n)\u06af} original
+3 1 {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af} original
+4 1 {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af} original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_b_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_b_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_b_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=2
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).b SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).insert_num SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=2).s1 SIMPLE [(struct1_b_txt)struct1_b_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_b_txt.insert_num struct1_b_txt.s1 struct1_b_txt.b
+PREHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct1_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct1_c_txt
+PREHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct1_c_txt
+PREHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: query: insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct1_c_txt
+POSTHOOK: Output: default@part_change_various_various_struct1@part=1
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).b SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).insert_num SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_change_various_various_struct1 PARTITION(part=1).s1 SIMPLE [(struct1_c_txt)struct1_c_txt.FieldSchema(name:s1, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct1_c_txt.insert_num struct1_c_txt.s1 struct1_c_txt.b
+PREHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_struct1
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), s1 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>), _col3 (type: string)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Input: default@part_change_various_various_struct1@part=1
+PREHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=1
+POSTHOOK: Input: default@part_change_various_various_struct1@part=2
+#### A masked pattern was here ####
+insert_num part s1 b
+1 1 {"c1":"TRUE","c2":null,"c3":null,"c4":"3244222","c5":"-99999999999","c6":"-29.0764","c7":"4.70614135E8","c8":"470614135","c9":"dynamic reptile","c10":"dynamic reptile ","c11":"0004-09-22 18:26:29.519542222","c12":"2007-02-09","c13":"n)\u06af"} original
+2 1 {"c1":null,"c2":"100","c3":null,"c4":"14","c5":"-23866739993","c6":"-3651.672","c7":"46114.284799488","c8":"46114.284799488","c9":" baffling","c10":" baffling ","c11":"2007-02-09 05:17:29.368756876","c12":"0004-09-22","c13":"n)\u06af"} original
+3 1 {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"} original
+4 1 {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"} original
+5 2 {"c1":"true","c2":"400","c3":"44388","c4":"-100","c5":"953967041.","c6":"62.079153","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":"timestamp","c12":"date","c13":"binary"} new
+6 1 {"c1":"FALSE","c2":"-67","c3":"833","c4":"63993","c5":"1255178165","c6":"905071.0","c7":"-4314.7918","c8":"-1240033819","c9":"trial","c10":"trial","c11":null,"c12":"2016-03-07","c13":"n)\u06af"} new
+PREHOOK: query: drop table part_change_various_various_struct1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_struct1
+PREHOOK: Output: default@part_change_various_various_struct1
+POSTHOOK: query: drop table part_change_various_various_struct1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_struct1
+POSTHOOK: Output: default@part_change_various_various_struct1
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1
+PREHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+#### A masked pattern was here ####
+insert_num part b
+1 1 original
+2 1 original
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_a_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_a_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_a_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_a_txt)struct2_a_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_a_txt.insert_num struct2_a_txt.b struct2_a_txt.s2
+PREHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_b_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_b_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_b_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_b_txt)struct2_b_txt.FieldSchema(name:s2, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct2_b_txt.insert_num struct2_b_txt.b struct2_b_txt.s2
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":false,"c2":72,"c3":null,"c4":-93222,"c5":30,"c6":-66475.56,"c7":-66475.561431,"c8":0.561431,"c9":"1 ","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":n)\u06af}
+6 2 new {"c1":null,"c2":-90,"c3":null,"c4":3289094,"c5":46114,"c6":9250341.0,"c7":9250340.75,"c8":9250340.75,"c9":"junkyard ","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":n)\u06af}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_c_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_c_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_c_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=2
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).b SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).insert_num SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=2).s2 SIMPLE [(struct2_c_txt)struct2_c_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_c_txt.insert_num struct2_c_txt.b struct2_c_txt.s2
+PREHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct2_d_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct2_d_txt
+PREHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct2_d_txt
+PREHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: query: insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct2_d_txt
+POSTHOOK: Output: default@part_add_various_various_struct2@part=1
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).b SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).insert_num SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_various_various_struct2 PARTITION(part=1).s2 SIMPLE [(struct2_d_txt)struct2_d_txt.FieldSchema(name:s2, type:struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>, comment:null), ]
+struct2_d_txt.insert_num struct2_d_txt.b struct2_d_txt.s2
+PREHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_various_various_struct2
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), b (type: string), s2 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: struct<c1:string,c2:string,c3:string,c4:string,c5:string,c6:string,c7:string,c8:string,c9:string,c10:string,c11:string,c12:string,c13:string>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 8 Data size: 907 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Input: default@part_add_various_various_struct2@part=1
+PREHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Input: default@part_add_various_various_struct2@part=1
+POSTHOOK: Input: default@part_add_various_various_struct2@part=2
+#### A masked pattern was here ####
+insert_num part b s2
+1 1 original NULL
+2 1 original NULL
+3 1 new NULL
+4 1 new NULL
+5 2 new {"c1":"FALSE","c2":"72","c3":null,"c4":"-93222","c5":"30","c6":"-66475.56","c7":"-66475.561431","c8":"0.561431","c9":"1","c10":"1","c11":"6229-06-28 02:54:28.970117179","c12":"5966-07-09","c13":"n)\u06af"}
+6 2 new {"c1":null,"c2":"-90","c3":null,"c4":"3289094","c5":"46114","c6":"9250341.0","c7":"9250340.75","c8":"9250340.75","c9":"junkyard","c10":"junkyard","c11":"2002-05-10 05:29:48.990818073","c12":"1815-05-06","c13":"n)\u06af"}
+7 2 new {"c1":"TRUE","c2":null,"c3":null,"c4":"-100","c5":"953967041","c6":"62.07915","c7":"718.78","c8":"1","c9":"verdict","c10":"verdict","c11":null,"c12":null,"c13":"n)\u06af"}
+8 1 new NULL
+PREHOOK: query: drop table part_add_various_various_struct2
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_various_various_struct2
+PREHOOK: Output: default@part_add_various_various_struct2
+POSTHOOK: query: drop table part_add_various_various_struct2
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_various_various_struct2
+POSTHOOK: Output: default@part_add_various_various_struct2
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_a_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_a_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_a_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_a_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_a_txt)struct4_a_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint>, comment:null), ]
+struct4_a_txt.insert_num struct4_a_txt.b struct4_a_txt.s3
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993}
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
+PREHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_b_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_b_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_b_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_b_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=2
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).b SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).insert_num SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=2).s3 SIMPLE [(struct4_b_txt)struct4_b_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_b_txt.insert_num struct4_b_txt.b struct4_b_txt.s3
+PREHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@struct4_c_txt
+POSTHOOK: query: load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@struct4_c_txt
+PREHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@struct4_c_txt
+PREHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: query: insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@struct4_c_txt
+POSTHOOK: Output: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).b SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).insert_num SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:insert_num, type:int, comment:null), ]
+POSTHOOK: Lineage: part_add_to_various_various_struct4 PARTITION(part=1).s3 SIMPLE [(struct4_c_txt)struct4_c_txt.FieldSchema(name:s3, type:struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>, comment:null), ]
+struct4_c_txt.insert_num struct4_c_txt.b struct4_c_txt.s3
+PREHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_to_various_various_struct4
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), b (type: string), s3 (type: struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>)
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: struct<c1:boolean,c2:tinyint,c3:smallint,c4:int,c5:bigint,c6:float,c7:double,c8:decimal(38,18),c9:char(25),c10:varchar(25),c11:timestamp,c12:date,c13:binary>)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 4 Data size: 337 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=1
+PREHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=1
+POSTHOOK: Input: default@part_add_to_various_various_struct4@part=2
+#### A masked pattern was here ####
+insert_num part b s3
+1 1 original {"c1":true,"c2":null,"c3":null,"c4":3244222,"c5":-99999999999,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+2 1 original {"c1":null,"c2":100,"c3":null,"c4":14,"c5":-23866739993,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+3 2 new {"c1":true,"c2":null,"c3":null,"c4":-100,"c5":953967041,"c6":62.07915,"c7":718.78,"c8":1,"c9":"verdict ","c10":"verdict","c11":null,"c12":null,"c13":n)\u06af}
+4 1 new {"c1":false,"c2":-67,"c3":833,"c4":63993,"c5":1255178165,"c6":null,"c7":null,"c8":null,"c9":null,"c10":null,"c11":null,"c12":null,"c13":null}
+PREHOOK: query: drop table part_add_to_various_various_struct4
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_to_various_various_struct4
+PREHOOK: Output: default@part_add_to_various_various_struct4
+POSTHOOK: query: drop table part_add_to_various_various_struct4
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_to_various_various_struct4
+POSTHOOK: Output: default@part_add_to_various_various_struct4
[38/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part.q b/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part.q
new file mode 100644
index 0000000..086ebd2
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part.q
@@ -0,0 +1,827 @@
+set hive.explain.user=true;
+set hive.mapred.mode=nonstrict;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=false;
+SET hive.vectorized.use.vector.serde.deserialize=false;
+SET hive.vectorized.use.row.serde.deserialize=true;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=true;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT);
+DESCRIBE FORMATTED part_add_int_permute_select;
+
+insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int);
+DESCRIBE FORMATTED part_add_int_permute_select;
+
+insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40);
+
+insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200);
+
+explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num;
+select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num;
+select insert_num,part,c from part_add_int_permute_select order by insert_num;
+
+drop table part_add_int_permute_select;
+
+
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT);
+DESCRIBE FORMATTED part_add_int_string_permute_select;
+
+insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string);
+DESCRIBE FORMATTED part_add_int_string_permute_select;
+
+insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty');
+
+insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred');
+
+explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,c from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,d from part_add_int_string_permute_select order by insert_num;
+
+drop table part_add_int_string_permute_select;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING);
+
+insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new');
+
+insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new');
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num;
+
+drop table part_change_string_group_double;
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);
+
+insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new');
+insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num;
+
+drop table part_change_date_group_string_group_timestamp;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);
+
+insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num;
+
+drop table part_change_date_group_string_group_date;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_char partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_char_trunc partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_char_trunc partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_char_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_varchar(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), c4 VARCHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_varchar_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar_trunc partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_varchar_trunc replace columns (insert_num int, c1 VARCHAR(5), c2 VARCHAR(5), c3 VARCHAR(5), c4 VARCHAR(5), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar_trunc partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_varchar_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_string(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_string partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, - 832222222, 255, 4957,'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_string partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_string order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_string;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_char(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_char partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957,'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_char partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_char_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_char_trunc partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 832222222, -255, 4957, 'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_char_trunc replace columns (insert_num int, c1 CHAR(7), c2 CHAR(7), c3 CHAR(7), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_char_trunc partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_char_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_varchar(insert_num int, c1 float, c2 double, c3 decimal(38,18), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_varchar partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_varchar partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_varchar_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_varchar_trunc partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_varchar_trunc replace columns (insert_num int, c1 VARCHAR(7), c2 VARCHAR(7), c3 VARCHAR(7), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_varchar_trunc partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_varchar_trunc;
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: STRING, (CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_string_group_string_group_string(insert_num int, c1 string, c2 string, c3 string, c4 string, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_string_group_string partition(part=1)
+ values (1, 'escapist', 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_string_group_string_group_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_string_group_string replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 VARCHAR(50), c4 CHAR(9), b STRING) ;
+
+insert into table part_change_string_group_string_group_string partition(part)
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'junkyard', 'new', 2),
+ (6, ' baffling ', ' baffling ', ' baffling ', ' baffling ', 'new', 2),
+ (7, ' featherweight ', ' featherweight ',' featherweight ',' featherweight ', 'new', 2),
+ (8, ' against', ' against', ' against', ' against', 'new', 2),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new', 1),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'bottom ', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_string_group_string_group_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_string_group_string_group_string order by insert_num;
+
+drop table part_change_string_group_string_group_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: CHAR, (VARCHAR, VARCHAR trunc, STRING)
+--
+CREATE TABLE part_change_string_group_string_group_char(insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_string_group_char partition(part=1)
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_string_group_char replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(9), c3 STRING, b STRING) ;
+
+insert into table part_change_string_group_string_group_char partition(part)
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new', 2),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new', 2),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new', 2),
+ (8, ' against', ' against', ' against', 'new', 2),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new', 1),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_char order by insert_num;
+
+drop table part_change_string_group_string_group_char;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: VARCHAR, (CHAR, CHAR trunc, STRING)
+--
+CREATE TABLE part_change_string_group_string_group_varchar(insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_string_group_varchar partition(part=1)
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_string_group_varchar replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 STRING, b STRING) ;
+
+insert into table part_change_string_group_string_group_varchar partition(part)
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new', 2),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new', 2),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new', 2),
+ (8, ' against', ' against', ' against', 'new', 2),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new', 1),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_varchar order by insert_num;
+
+drop table part_change_string_group_string_group_varchar;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: TINYINT, (SMALLINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_tinyint(insert_num int, c1 tinyint, c2 tinyint, c3 tinyint, c4 tinyint, c5 tinyint, c6 tinyint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_tinyint partition(part=1)
+ values (1, 45, 45, 45, 45, 45, 45, 'original'),
+ (2, -2, -2, -2, -2, -2, -2, 'original'),
+ (3, -255, -255, -255, -255, -255, -255, 'original'),
+ (4, 100, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,b from part_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_tinyint replace columns (insert_num int, c1 SMALLINT, c2 INT, c3 BIGINT, c4 decimal(38,18), c5 FLOAT, c6 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_tinyint partition(part)
+ values (5, '774', '2031', '200', '12', '99', '0', 'new', 2),
+ (6, '561431', '52927714', '7203778961', '8', '7', '6', 'new', 2),
+ (7, '256', '32768', '31889', '300', '444', '506', 'new', 2),
+ (8, '5555', '40000', '-719017797', '45', '55', '65', 'new', 2),
+ (9, '100', '5000', '5443', '22', '2', '-2', 'new', 1),
+ (10, '17', '90000', '754072151', '95', '20', '18', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,b from part_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,b from part_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_tinyint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: SMALLINT, (INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_smallint(insert_num int, c1 smallint, c2 smallint, c3 smallint, c4 smallint, c5 smallint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_smallint partition(part=1)
+ values (1, 2031, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, -5000, 'original'),
+ (4, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_smallint replace columns (insert_num int, c1 INT, c2 BIGINT, c3 decimal(38,18), c4 FLOAT, c5 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_smallint partition(part)
+ values (5, '774', '2031', '200', '12', '99', 'new', 2),
+ (6, '561431', '52927714', '7203778961', '8', '7', 'new', 2),
+ (7, '256', '32768', '31889', '300', '444', 'new', 2),
+ (8, '5555', '40000', '-719017797', '45', '55', 'new', 2),
+ (9, '100', '5000', '5443', '22', '2', 'new', 1),
+ (10, '17', '90000', '754072151', '95', '20', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_smallint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: INT, (BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_int(insert_num int, c1 int, c2 int, c3 int, c4 int, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_int partition(part=1)
+ values (1, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_lower_to_higher_numeric_group_int order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_int replace columns (insert_num int, c1 BIGINT, c2 decimal(38,18), c3 FLOAT, c4 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_int partition(part)
+ values (5, '774', '2031', '200', '12', 'new', 2),
+ (6, '561431', '52927714', '7203778961', '8', 'new', 2),
+ (7, '256', '32768', '31889', '300', 'new', 2),
+ (8, '5555', '40000', '-719017797', '45', 'new', 2),
+ (9, '100', '5000', '5443', '22', 'new', 1),
+ (10, '17', '90000', '754072151', '95', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_lower_to_higher_numeric_group_int order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_lower_to_higher_numeric_group_int order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_int;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: BIGINT, (DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_bigint(insert_num int, c1 bigint, c2 bigint, c3 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_bigint partition(part=1)
+ values (1, 7203778961, 7203778961, 7203778961, 'original'),
+ (2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_bigint replace columns (insert_num int, c1 decimal(38,18), c2 FLOAT, c3 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_bigint partition(part)
+ values (5, '774', '2031', '200', 'new', 2),
+ (6, '561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_bigint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: DECIMAL, (FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_decimal(insert_num int, c1 decimal(38,18), c2 decimal(38,18), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_decimal partition(part=1)
+ values (1, -29.0764, -29.0764, 'original'),
+ (2, 753.7028, 753.7028, 'original'),
+ (3, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 'original');
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_decimal replace columns (insert_num int, c1 float, c2 double, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_decimal partition(part)
+ values (5, '7.74', '22.3', 'new', 2),
+ (6, '56.1431', '90.9', 'new', 2),
+ (7, '2.56', '25.6', 'new', 2),
+ (8, '555.5', '55.55', 'new', 2),
+ (9, '10.0', '0.100', 'new', 1),
+ (10, '1.7', '17.8888', 'new', 1);
+
+explain
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_decimal;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: FLOAT, (DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_float(insert_num int, c1 float, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_float partition(part=1)
+ values (1, -29.0764, 'original'),
+ (2, 753.7028, 'original'),
+ (3, -5000, 'original'),
+ (4, 52927714, 'original');
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_float order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_float replace columns (insert_num int, c1 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_float partition(part)
+ values (5, '774', 'new', 2),
+ (6, '561431', 'new', 2),
+ (7, '256', 'new', 2),
+ (8, '5555', 'new', 2),
+ (9, '100', 'new', 1),
+ (10, '17', 'new', 1);
+
+explain
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_float order by insert_num;
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_float order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_float;
+
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part_all_complex.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part_all_complex.q b/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part_all_complex.q
new file mode 100644
index 0000000..2553527
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_vecrow_mapwork_part_all_complex.q
@@ -0,0 +1,165 @@
+set hive.explain.user=true;
+set hive.mapred.mode=nonstrict;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=false;
+SET hive.vectorized.use.vector.serde.deserialize=false;
+SET hive.vectorized.use.row.serde.deserialize=true;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=false;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT);
+
+CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt;
+
+insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt;
+
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING);
+
+CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt;
+
+insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt;
+
+CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt;
+
+insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt;
+
+explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num;
+
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num;
+
+drop table part_change_various_various_struct1;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original');
+
+select insert_num,part,b from part_add_various_various_struct2 order by insert_num;
+
+-- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>);
+
+CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt;
+
+insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt;
+
+CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt;
+
+insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt;
+
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>);
+
+CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt;
+
+insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt;
+
+CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt;
+
+insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt;
+
+explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num;
+
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num;
+
+drop table part_add_various_various_struct2;
+
+
+
+
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT);
+
+CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt;
+
+insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt;
+
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>);
+
+CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt;
+
+insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt;
+
+CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt;
+
+insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt;
+
+explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num;
+
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num;
+
+drop table part_add_to_various_various_struct4;
[23/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_table.q.out b/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_table.q.out
new file mode 100644
index 0000000..50790f4
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_vecrow_mapwork_table.q.out
@@ -0,0 +1,4221 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.row.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the row SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: Lineage: table_add_int_permute_select.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_permute_select.insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_add_int_permute_select
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: drop table table_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_permute_select
+PREHOOK: Output: default@table_add_int_permute_select
+POSTHOOK: query: drop table table_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_permute_select
+POSTHOOK: Output: default@table_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED table_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 4
+ rawDataSize 48
+ totalSize 52
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: Lineage: table_add_int_string_permute_select.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_add_int_string_permute_select.insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_add_int_string_permute_select
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b
+1 1 original
+10 6 new
+2 2 original
+3 3 original
+4 4 original
+5 1 new
+6 2 new
+7 3 new
+8 4 new
+9 5 new
+PREHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c
+1 1 original NULL
+10 6 new 200
+2 2 original NULL
+3 3 original NULL
+4 4 original NULL
+5 1 new 10
+6 2 new 20
+7 3 new 30
+8 4 new 40
+9 5 new 100
+PREHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a b c d
+1 1 original NULL NULL
+10 6 new 200 two hundred
+2 2 original NULL NULL
+3 3 original NULL NULL
+4 4 original NULL NULL
+5 1 new 10 ten
+6 2 new 20 twenty
+7 3 new 30 thirty
+8 4 new 40 forty
+9 5 new 100 hundred
+PREHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a c d
+1 1 NULL NULL
+10 6 200 two hundred
+2 2 NULL NULL
+3 3 NULL NULL
+4 4 NULL NULL
+5 1 10 ten
+6 2 20 twenty
+7 3 30 thirty
+8 4 40 forty
+9 5 100 hundred
+PREHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,a,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num a d
+1 1 NULL
+10 6 two hundred
+2 2 NULL
+3 3 NULL
+4 4 NULL
+5 1 ten
+6 2 twenty
+7 3 thirty
+8 4 forty
+9 5 hundred
+PREHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num c
+1 NULL
+10 200
+2 NULL
+3 NULL
+4 NULL
+5 10
+6 20
+7 30
+8 40
+9 100
+PREHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,d from table_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_add_int_string_permute_select
+#### A masked pattern was here ####
+insert_num d
+1 NULL
+10 two hundred
+2 NULL
+3 NULL
+4 NULL
+5 ten
+6 twenty
+7 thirty
+8 forty
+9 hundred
+PREHOOK: query: drop table table_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_add_int_string_permute_select
+PREHOOK: Output: default@table_add_int_string_permute_select
+POSTHOOK: query: drop table table_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_add_int_string_permute_select
+POSTHOOK: Output: default@table_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@table_change_string_group_double
+POSTHOOK: Lineage: table_change_string_group_double.b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_string_group_double.insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_string_group_double
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: double), c2 (type: double), c3 (type: double), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: double), _col2 (type: double), _col3 (type: double), _col4 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: double), VALUE._col1 (type: double), VALUE._col2 (type: double), VALUE._col3 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_string_group_double
+#### A masked pattern was here ####
+insert_num c1 c2 c3 b
+1 753.7028 753.7028 753.7028 original
+10 9250340.75 9250340.75 9250340.75 new
+2 -3651.672121 -3651.672121 -3651.672121 original
+3 -29.0764 -29.0764 -29.0764 original
+4 -10.3 -10.3 -10.3 original
+5 30.774 30.774 30.774 new
+6 20.31 20.31 20.31 new
+7 46114.284799488 46114.284799488 46114.284799488 new
+8 -66475.561431 -66475.561431 -66475.561431 new
+9 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table table_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_string_group_double
+PREHOOK: Output: default@table_change_string_group_double
+POSTHOOK: query: drop table table_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_string_group_double
+POSTHOOK: Output: default@table_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_timestamp.insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_date_group_string_group_timestamp
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: char(50)), _col3 (type: char(15)), _col4 (type: varchar(50)), _col5 (type: varchar(15)), _col6 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: string), VALUE._col1 (type: char(50)), VALUE._col2 (type: char(15)), VALUE._col3 (type: varchar(50)), VALUE._col4 (type: varchar(15)), VALUE._col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 6229-06-28 02:5 6229-06-28 02:54:28.970117179 6229-06-28 02:5 new
+9 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 5966-07-09 03:3 5966-07-09 03:30:50.597 5966-07-09 03:3 new
+PREHOOK: query: drop table table_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_timestamp
+PREHOOK: Output: default@table_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table table_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@table_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: query: DESCRIBE FORMATTED table_change_date_group_string_group_date
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+c1 string
+c2 char(50)
+c3 char(15)
+c4 varchar(50)
+c5 varchar(15)
+b string
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+ numFiles 1
+ numRows 3
+ rawDataSize 195
+ totalSize 198
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: Lineage: table_change_date_group_string_group_date.b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_date_group_string_group_date.insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_date_group_string_group_date
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: char(50)), _col3 (type: char(15)), _col4 (type: varchar(50)), _col5 (type: varchar(15)), _col6 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: string), VALUE._col1 (type: char(50)), VALUE._col2 (type: char(15)), VALUE._col3 (type: varchar(50)), VALUE._col4 (type: varchar(15)), VALUE._col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 c5 b
+1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table table_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_date_group_string_group_date
+PREHOOK: Output: default@table_change_date_group_string_group_date
+POSTHOOK: query: drop table table_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_date_group_string_group_date
+POSTHOOK: Output: default@table_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_string.insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_numeric_group_string_group_multi_ints_string
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: string), c2 (type: string), c3 (type: string), c4 (type: string), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: string), VALUE._col1 (type: string), VALUE._col2 (type: string), VALUE._col3 (type: string), VALUE._col4 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+10 17 90000 754072151 3289094 new
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+5 2000 72909 3244222 -93222 new
+6 1 200 2323322 5430907 new
+7 256 32768 31889 470614135 new
+8 5555 40000 -719017797 810662019 new
+9 100 5000 5443 0 new
+PREHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__17
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__17
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45 1000 483777 -23866739993 original
+2 -2 -6737 56 28899333 original
+3 NULL 4957 832222222 9000000000 original
+4 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__18
+PREHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__18
+POSTHOOK: Output: default@table_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.b SIMPLE [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c1 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c2 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c3 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.c4 EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: table_change_numeric_group_string_group_multi_ints_char.insert_num EXPRESSION [(values__tmp__table__18)values__tmp__table__18.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: table_change_numeric_group_string_group_multi_ints_char
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), c1 (type: char(50)), c2 (type: char(50)), c3 (type: char(50)), c4 (type: char(50)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: char(50)), _col2 (type: char(50)), _col3 (type: char(50)), _col4 (type: char(50)), _col5 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(50)), VALUE._col1 (type: char(50)), VALUE._col2 (type: char(50)), VALUE._col3 (type: char(50)), VALUE._col4 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@table_change_numeric_group_string_group_multi_ints_char
+#### A masked pattern was here ####
+insert_num c1 c2 c3 c4 b
+1 45
<TRUNCATED>
[40/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part.q b/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part.q
new file mode 100644
index 0000000..5d30b91
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part.q
@@ -0,0 +1,827 @@
+set hive.explain.user=true;
+set hive.mapred.mode=nonstrict;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=false;
+SET hive.vectorized.use.vector.serde.deserialize=true;
+SET hive.vectorized.use.row.serde.deserialize=false;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=true;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT);
+DESCRIBE FORMATTED part_add_int_permute_select;
+
+insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int);
+DESCRIBE FORMATTED part_add_int_permute_select;
+
+insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40);
+
+insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200);
+
+explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num;
+select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num;
+select insert_num,part,c from part_add_int_permute_select order by insert_num;
+
+drop table part_add_int_permute_select;
+
+
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT);
+DESCRIBE FORMATTED part_add_int_string_permute_select;
+
+insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string);
+DESCRIBE FORMATTED part_add_int_string_permute_select;
+
+insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty');
+
+insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred');
+
+explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,c from part_add_int_string_permute_select order by insert_num;
+select insert_num,part,d from part_add_int_string_permute_select order by insert_num;
+
+drop table part_add_int_string_permute_select;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING);
+
+insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new');
+
+insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new');
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num;
+
+drop table part_change_string_group_double;
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);
+
+insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new');
+insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num;
+
+drop table part_change_date_group_string_group_timestamp;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);
+
+insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num;
+
+drop table part_change_date_group_string_group_date;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_char partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_char_trunc partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_char_trunc partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_char_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_varchar(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), c4 VARCHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_varchar_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar_trunc partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_varchar_trunc replace columns (insert_num int, c1 VARCHAR(5), c2 VARCHAR(5), c3 VARCHAR(5), c4 VARCHAR(5), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_multi_ints_varchar_trunc partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_multi_ints_varchar_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_string(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_string partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, - 832222222, 255, 4957,'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_string partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_string order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_string;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_char(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_char partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957,'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_char partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_char_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_char_trunc partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 832222222, -255, 4957, 'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_char_trunc replace columns (insert_num int, c1 CHAR(7), c2 CHAR(7), c3 CHAR(7), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_char_trunc partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_char_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_varchar(insert_num int, c1 float, c2 double, c3 decimal(38,18), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_varchar partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_varchar partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR truncation
+--
+CREATE TABLE part_change_numeric_group_string_group_floating_varchar_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_numeric_group_string_group_floating_varchar_trunc partition(part=1)
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_floating_varchar_trunc replace columns (insert_num int, c1 VARCHAR(7), c2 VARCHAR(7), c3 VARCHAR(7), b STRING) ;
+
+insert into table part_change_numeric_group_string_group_floating_varchar_trunc partition(part)
+ values (5, '30.774', '20.31', '46114.284799488', 'new', 2),
+ (6, '-66475.561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+drop table part_change_numeric_group_string_group_floating_varchar_trunc;
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: STRING, (CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_string_group_string_group_string(insert_num int, c1 string, c2 string, c3 string, c4 string, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_string_group_string partition(part=1)
+ values (1, 'escapist', 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_string_group_string_group_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_string_group_string replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 VARCHAR(50), c4 CHAR(9), b STRING) ;
+
+insert into table part_change_string_group_string_group_string partition(part)
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'junkyard', 'new', 2),
+ (6, ' baffling ', ' baffling ', ' baffling ', ' baffling ', 'new', 2),
+ (7, ' featherweight ', ' featherweight ',' featherweight ',' featherweight ', 'new', 2),
+ (8, ' against', ' against', ' against', ' against', 'new', 2),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new', 1),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'bottom ', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_string_group_string_group_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_string_group_string_group_string order by insert_num;
+
+drop table part_change_string_group_string_group_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: CHAR, (VARCHAR, VARCHAR trunc, STRING)
+--
+CREATE TABLE part_change_string_group_string_group_char(insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_string_group_char partition(part=1)
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_string_group_char replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(9), c3 STRING, b STRING) ;
+
+insert into table part_change_string_group_string_group_char partition(part)
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new', 2),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new', 2),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new', 2),
+ (8, ' against', ' against', ' against', 'new', 2),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new', 1),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_char order by insert_num;
+
+drop table part_change_string_group_string_group_char;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: VARCHAR, (CHAR, CHAR trunc, STRING)
+--
+CREATE TABLE part_change_string_group_string_group_varchar(insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_string_group_string_group_varchar partition(part=1)
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_string_group_varchar replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 STRING, b STRING) ;
+
+insert into table part_change_string_group_string_group_varchar partition(part)
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new', 2),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new', 2),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new', 2),
+ (8, ' against', ' against', ' against', 'new', 2),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new', 1),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_string_group_string_group_varchar order by insert_num;
+
+drop table part_change_string_group_string_group_varchar;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: TINYINT, (SMALLINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_tinyint(insert_num int, c1 tinyint, c2 tinyint, c3 tinyint, c4 tinyint, c5 tinyint, c6 tinyint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_tinyint partition(part=1)
+ values (1, 45, 45, 45, 45, 45, 45, 'original'),
+ (2, -2, -2, -2, -2, -2, -2, 'original'),
+ (3, -255, -255, -255, -255, -255, -255, 'original'),
+ (4, 100, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,b from part_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_tinyint replace columns (insert_num int, c1 SMALLINT, c2 INT, c3 BIGINT, c4 decimal(38,18), c5 FLOAT, c6 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_tinyint partition(part)
+ values (5, '774', '2031', '200', '12', '99', '0', 'new', 2),
+ (6, '561431', '52927714', '7203778961', '8', '7', '6', 'new', 2),
+ (7, '256', '32768', '31889', '300', '444', '506', 'new', 2),
+ (8, '5555', '40000', '-719017797', '45', '55', '65', 'new', 2),
+ (9, '100', '5000', '5443', '22', '2', '-2', 'new', 1),
+ (10, '17', '90000', '754072151', '95', '20', '18', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,b from part_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,b from part_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_tinyint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: SMALLINT, (INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_smallint(insert_num int, c1 smallint, c2 smallint, c3 smallint, c4 smallint, c5 smallint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_smallint partition(part=1)
+ values (1, 2031, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, -5000, 'original'),
+ (4, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_smallint replace columns (insert_num int, c1 INT, c2 BIGINT, c3 decimal(38,18), c4 FLOAT, c5 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_smallint partition(part)
+ values (5, '774', '2031', '200', '12', '99', 'new', 2),
+ (6, '561431', '52927714', '7203778961', '8', '7', 'new', 2),
+ (7, '256', '32768', '31889', '300', '444', 'new', 2),
+ (8, '5555', '40000', '-719017797', '45', '55', 'new', 2),
+ (9, '100', '5000', '5443', '22', '2', 'new', 1),
+ (10, '17', '90000', '754072151', '95', '20', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_smallint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: INT, (BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_int(insert_num int, c1 int, c2 int, c3 int, c4 int, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_int partition(part=1)
+ values (1, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_lower_to_higher_numeric_group_int order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_int replace columns (insert_num int, c1 BIGINT, c2 decimal(38,18), c3 FLOAT, c4 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_int partition(part)
+ values (5, '774', '2031', '200', '12', 'new', 2),
+ (6, '561431', '52927714', '7203778961', '8', 'new', 2),
+ (7, '256', '32768', '31889', '300', 'new', 2),
+ (8, '5555', '40000', '-719017797', '45', 'new', 2),
+ (9, '100', '5000', '5443', '22', 'new', 1),
+ (10, '17', '90000', '754072151', '95', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_lower_to_higher_numeric_group_int order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_lower_to_higher_numeric_group_int order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_int;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: BIGINT, (DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_bigint(insert_num int, c1 bigint, c2 bigint, c3 bigint, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_bigint partition(part=1)
+ values (1, 7203778961, 7203778961, 7203778961, 'original'),
+ (2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_bigint replace columns (insert_num int, c1 decimal(38,18), c2 FLOAT, c3 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_bigint partition(part)
+ values (5, '774', '2031', '200', 'new', 2),
+ (6, '561431', '52927714', '7203778961', 'new', 2),
+ (7, '256', '32768', '31889', 'new', 2),
+ (8, '5555', '40000', '-719017797', 'new', 2),
+ (9, '100', '5000', '5443', 'new', 1),
+ (10, '17', '90000', '754072151', 'new', 1);
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_bigint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: DECIMAL, (FLOAT, DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_decimal(insert_num int, c1 decimal(38,18), c2 decimal(38,18), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_decimal partition(part=1)
+ values (1, -29.0764, -29.0764, 'original'),
+ (2, 753.7028, 753.7028, 'original'),
+ (3, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 'original');
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_decimal replace columns (insert_num int, c1 float, c2 double, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_decimal partition(part)
+ values (5, '7.74', '22.3', 'new', 2),
+ (6, '56.1431', '90.9', 'new', 2),
+ (7, '2.56', '25.6', 'new', 2),
+ (8, '555.5', '55.55', 'new', 2),
+ (9, '10.0', '0.100', 'new', 1),
+ (10, '1.7', '17.8888', 'new', 1);
+
+explain
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_decimal;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: FLOAT, (DOUBLE)
+--
+CREATE TABLE part_change_lower_to_higher_numeric_group_float(insert_num int, c1 float, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_lower_to_higher_numeric_group_float partition(part=1)
+ values (1, -29.0764, 'original'),
+ (2, 753.7028, 'original'),
+ (3, -5000, 'original'),
+ (4, 52927714, 'original');
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_float order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_lower_to_higher_numeric_group_float replace columns (insert_num int, c1 DOUBLE, b STRING) ;
+
+insert into table part_change_lower_to_higher_numeric_group_float partition(part)
+ values (5, '774', 'new', 2),
+ (6, '561431', 'new', 2),
+ (7, '256', 'new', 2),
+ (8, '5555', 'new', 2),
+ (9, '100', 'new', 1),
+ (10, '17', 'new', 1);
+
+explain
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_float order by insert_num;
+
+select insert_num,part,c1,b from part_change_lower_to_higher_numeric_group_float order by insert_num;
+
+drop table part_change_lower_to_higher_numeric_group_float;
+
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part_all_complex.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part_all_complex.q b/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part_all_complex.q
new file mode 100644
index 0000000..d188bfd
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part_all_complex.q
@@ -0,0 +1,164 @@
+set hive.explain.user=true;
+set hive.mapred.mode=nonstrict;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=false;
+SET hive.vectorized.use.vector.serde.deserialize=true;
+SET hive.vectorized.use.row.serde.deserialize=false;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=false;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all complex conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: STRUCT<BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY> --> STRUCT<STRING...
+--
+CREATE TABLE part_change_various_various_struct1(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING) PARTITIONED BY(part INT);
+
+CREATE TABLE struct1_a_txt(insert_num int, s1 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct1_a.txt' overwrite into table struct1_a_txt;
+
+insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_a_txt;
+
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_struct1 replace columns (insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING);
+
+CREATE TABLE struct1_b_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct1_b.txt' overwrite into table struct1_b_txt;
+
+insert into table part_change_various_various_struct1 partition(part=2) select * from struct1_b_txt;
+
+CREATE TABLE struct1_c_txt(insert_num int, s1 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>, b STRING)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct1_c.txt' overwrite into table struct1_c_txt;
+
+insert into table part_change_various_various_struct1 partition(part=1) select * from struct1_c_txt;
+
+explain
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num;
+
+select insert_num,part,s1,b from part_change_various_various_struct1 order by insert_num;
+
+drop table part_change_various_various_struct1;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: STRUCT
+--
+CREATE TABLE part_add_various_various_struct2(insert_num int, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_add_various_various_struct2 partition(part=1)
+ values(1, 'original'),
+ (2, 'original');
+
+select insert_num,part,b from part_add_various_various_struct2 order by insert_num;
+
+-- Table-Non-Cascade ADD COLUMN ...
+alter table part_add_various_various_struct2 ADD columns (s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>);
+
+CREATE TABLE struct2_a_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_a.txt' overwrite into table struct2_a_txt;
+
+insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_a_txt;
+
+CREATE TABLE struct2_b_txt(insert_num int, b STRING, s2 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_b.txt' overwrite into table struct2_b_txt;
+
+insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_b_txt;
+
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_various_various_struct2 REPLACE columns (insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>);
+
+CREATE TABLE struct2_c_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_c.txt' overwrite into table struct2_c_txt;
+
+insert into table part_add_various_various_struct2 partition(part=2) select * from struct2_c_txt;
+
+CREATE TABLE struct2_d_txt(insert_num int, b STRING, s2 STRUCT<c1:STRING, c2:STRING, c3:STRING, c4:STRING, c5:STRING, c6:STRING, c7:STRING, c8:STRING, c9:STRING, c10:STRING, c11:STRING, c12:STRING, c13:STRING>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct2_d.txt' overwrite into table struct2_d_txt;
+
+insert into table part_add_various_various_struct2 partition(part=1) select * from struct2_d_txt;
+
+explain
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num;
+
+select insert_num,part,b,s2 from part_add_various_various_struct2 order by insert_num;
+
+drop table part_add_various_various_struct2;
+
+
+
+
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS for Various --> Various: ADD COLUMNS to STRUCT type as LAST column of 3 columns
+--
+CREATE TABLE part_add_to_various_various_struct4(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>) PARTITIONED BY(part INT);
+
+CREATE TABLE struct4_a_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct4_a.txt' overwrite into table struct4_a_txt;
+
+insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_a_txt;
+
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_add_to_various_various_struct4 replace columns (insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>);
+
+CREATE TABLE struct4_b_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct4_b.txt' overwrite into table struct4_b_txt;
+
+insert into table part_add_to_various_various_struct4 partition(part=2) select * from struct4_b_txt;
+
+CREATE TABLE struct4_c_txt(insert_num int, b STRING, s3 STRUCT<c1:BOOLEAN, c2:TINYINT, c3:SMALLINT, c4:INT, c5:BIGINT, c6:FLOAT, c7:DOUBLE, c8:DECIMAL(38,18), c9:CHAR(25), c10:VARCHAR(25), c11:TIMESTAMP, c12:DATE, c13:BINARY>)
+row format delimited fields terminated by '|'
+collection items terminated by ','
+map keys terminated by ':' stored as textfile;
+load data local inpath '../../data/files/struct4_c.txt' overwrite into table struct4_c_txt;
+
+insert into table part_add_to_various_various_struct4 partition(part=1) select * from struct4_c_txt;
+
+explain
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num;
+
+select insert_num,part,b,s3 from part_add_to_various_various_struct4 order by insert_num;
+
+drop table part_add_to_various_various_struct4;
[05/50] [abbrv] hive git commit: HIVE-13645 : Beeline needs
null-guard around hiveVars and hiveConfVars read (Sushanth Sowmyan,
reviewed by Thejas Nair)
Posted by jd...@apache.org.
HIVE-13645 : Beeline needs null-guard around hiveVars and hiveConfVars read (Sushanth Sowmyan, reviewed by Thejas Nair)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4b5f0d96
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4b5f0d96
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4b5f0d96
Branch: refs/heads/llap
Commit: 4b5f0d963e8e759856437eb641d35bd4ce3c38f7
Parents: 2abea8e
Author: Sushanth Sowmyan <kh...@gmail.com>
Authored: Mon May 2 12:09:09 2016 -0700
Committer: Sushanth Sowmyan <kh...@gmail.com>
Committed: Mon May 2 12:09:09 2016 -0700
----------------------------------------------------------------------
.../org/apache/hive/beeline/DatabaseConnection.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/4b5f0d96/beeline/src/java/org/apache/hive/beeline/DatabaseConnection.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/DatabaseConnection.java b/beeline/src/java/org/apache/hive/beeline/DatabaseConnection.java
index c4afa0a..a38d904 100644
--- a/beeline/src/java/org/apache/hive/beeline/DatabaseConnection.java
+++ b/beeline/src/java/org/apache/hive/beeline/DatabaseConnection.java
@@ -127,13 +127,17 @@ class DatabaseConnection {
}
Map<String, String> hiveVars = beeLine.getOpts().getHiveVariables();
- for (Map.Entry<String, String> var : hiveVars.entrySet()) {
- info.put(HIVE_VAR_PREFIX + var.getKey(), var.getValue());
+ if (hiveVars != null){
+ for (Map.Entry<String, String> var : hiveVars.entrySet()) {
+ info.put(HIVE_VAR_PREFIX + var.getKey(), var.getValue());
+ }
}
Map<String, String> hiveConfVars = beeLine.getOpts().getHiveConfVariables();
- for (Map.Entry<String, String> var : hiveConfVars.entrySet()) {
- info.put(HIVE_CONF_PREFIX + var.getKey(), var.getValue());
+ if (hiveConfVars != null){
+ for (Map.Entry<String, String> var : hiveConfVars.entrySet()) {
+ info.put(HIVE_CONF_PREFIX + var.getKey(), var.getValue());
+ }
}
if (isDriverRegistered) {
[35/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_nonvec_fetchwork_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_fetchwork_part.q.out b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_fetchwork_part.q.out
deleted file mode 100644
index 44ce24e..0000000
--- a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_fetchwork_part.q.out
+++ /dev/null
@@ -1,642 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, FetchWork, Partitioned
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned1
-POSTHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: TEXT, Non-Vectorized, FetchWork, Partitioned
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... STATIC INSERT
----
-CREATE TABLE partitioned1(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@partitioned1@part=1
-POSTHOOK: query: insert into table partitioned1 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@partitioned1@part=1
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@partitioned1
-PREHOOK: Output: default@partitioned1
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned1 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@partitioned1@part=2
-POSTHOOK: query: insert into table partitioned1 partition(part=2) values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@partitioned1@part=2
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=2).d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@partitioned1@part=1
-POSTHOOK: query: insert into table partitioned1 partition(part=1) values(5, 'new', 100, 'hundred'),(6, 'new', 200, 'two hundred')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@partitioned1@part=1
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned1 PARTITION(part=1).d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b
-1 1 original
-1 2 original
-1 3 original
-1 4 original
-1 5 new
-1 6 new
-2 1 new
-2 2 new
-2 3 new
-2 4 new
-PREHOOK: query: select part,a,b,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c
-1 1 original NULL
-1 2 original NULL
-1 3 original NULL
-1 4 original NULL
-1 5 new NULL
-1 6 new NULL
-2 1 new 10
-2 2 new 20
-2 3 new 30
-2 4 new 40
-PREHOOK: query: select part,a,b,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c d
-1 1 original NULL NULL
-1 2 original NULL NULL
-1 3 original NULL NULL
-1 4 original NULL NULL
-1 5 new NULL NULL
-1 6 new NULL NULL
-2 1 new 10 ten
-2 2 new 20 twenty
-2 3 new 30 thirty
-2 4 new 40 forty
-PREHOOK: query: select part,a,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a c d
-1 1 NULL NULL
-1 2 NULL NULL
-1 3 NULL NULL
-1 4 NULL NULL
-1 5 NULL NULL
-1 6 NULL NULL
-2 1 10 ten
-2 2 20 twenty
-2 3 30 thirty
-2 4 40 forty
-PREHOOK: query: select part,a,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a d
-1 1 NULL
-1 2 NULL
-1 3 NULL
-1 4 NULL
-1 5 NULL
-1 6 NULL
-2 1 ten
-2 2 twenty
-2 3 thirty
-2 4 forty
-PREHOOK: query: select part,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part c
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 10
-2 20
-2 30
-2 40
-PREHOOK: query: select part,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part d
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 forty
-2 ten
-2 thirty
-2 twenty
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... STATIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned2(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@partitioned2@part=1
-POSTHOOK: query: insert into table partitioned2 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@partitioned2@part=1
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@partitioned2
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned2 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@partitioned2@part=2
-POSTHOOK: query: insert into table partitioned2 partition(part=2) values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@partitioned2@part=2
-POSTHOOK: Lineage: partitioned2 PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@partitioned2@part=1
-POSTHOOK: query: insert into table partitioned2 partition(part=1) values(5000, 'new'),(90000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@partitioned2@part=1
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned2 PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select part,a,b from partitioned2
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned2
-PREHOOK: Input: default@partitioned2@part=1
-PREHOOK: Input: default@partitioned2@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b from partitioned2
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Input: default@partitioned2@part=1
-POSTHOOK: Input: default@partitioned2@part=2
-#### A masked pattern was here ####
-part a b
-1 1000 original
-1 3 original
-1 4 original
-1 5000 new
-1 6737 original
-1 NULL new
-2 200 new
-2 32768 new
-2 40000 new
-2 72909 new
-PREHOOK: query: --
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: --
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DYNAMIC INSERT
----
-CREATE TABLE partitioned3(a INT, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__7
-PREHOOK: Output: default@partitioned3@part=1
-POSTHOOK: query: insert into table partitioned3 partition(part=1) values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__7
-POSTHOOK: Output: default@partitioned3@part=1
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).a EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@partitioned3
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
-alter table partitioned3 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@partitioned3
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__8
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: insert into table partitioned3 partition(part) values(1, 'new', 10, 'ten', 2),(2, 'new', 20, 'twenty', 2), (3, 'new', 30, 'thirty', 2),(4, 'new', 40, 'forty', 2),
- (5, 'new', 100, 'hundred', 1),(6, 'new', 200, 'two hundred', 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__8
-POSTHOOK: Output: default@partitioned3@part=1
-POSTHOOK: Output: default@partitioned3@part=2
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).a EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).c EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=1).d SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).a EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).c EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned3 PARTITION(part=2).d SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3 _col4
-PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
-select part,a,b from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b
-1 1 original
-1 2 original
-1 3 original
-1 4 original
-1 5 new
-1 6 new
-2 1 new
-2 2 new
-2 3 new
-2 4 new
-PREHOOK: query: select part,a,b,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c
-1 1 original NULL
-1 2 original NULL
-1 3 original NULL
-1 4 original NULL
-1 5 new NULL
-1 6 new NULL
-2 1 new 10
-2 2 new 20
-2 3 new 30
-2 4 new 40
-PREHOOK: query: select part,a,b,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a b c d
-1 1 original NULL NULL
-1 2 original NULL NULL
-1 3 original NULL NULL
-1 4 original NULL NULL
-1 5 new NULL NULL
-1 6 new NULL NULL
-2 1 new 10 ten
-2 2 new 20 twenty
-2 3 new 30 thirty
-2 4 new 40 forty
-PREHOOK: query: select part,a,c,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,c,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a c d
-1 1 NULL NULL
-1 2 NULL NULL
-1 3 NULL NULL
-1 4 NULL NULL
-1 5 NULL NULL
-1 6 NULL NULL
-2 1 10 ten
-2 2 20 twenty
-2 3 30 thirty
-2 4 40 forty
-PREHOOK: query: select part,a,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part a d
-1 1 NULL
-1 2 NULL
-1 3 NULL
-1 4 NULL
-1 5 NULL
-1 6 NULL
-2 1 ten
-2 2 twenty
-2 3 thirty
-2 4 forty
-PREHOOK: query: select part,c from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,c from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part c
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 10
-2 20
-2 30
-2 40
-PREHOOK: query: select part,d from partitioned1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned1
-PREHOOK: Input: default@partitioned1@part=1
-PREHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,d from partitioned1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Input: default@partitioned1@part=1
-POSTHOOK: Input: default@partitioned1@part=2
-#### A masked pattern was here ####
-part d
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-1 NULL
-2 forty
-2 ten
-2 thirty
-2 twenty
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN ... DYNAMIC INSERT
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE partitioned4(a smallint, b STRING) PARTITIONED BY(part INT) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@partitioned4
-PREHOOK: query: insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__9
-PREHOOK: Output: default@partitioned4@part=1
-POSTHOOK: query: insert into table partitioned4 partition(part=1) values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__9
-POSTHOOK: Output: default@partitioned4@part=1
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).a EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@partitioned4
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
-alter table partitioned4 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Output: default@partitioned4
-PREHOOK: query: insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1)
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__10
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: insert into table partitioned4 partition(part) values(72909, 'new', 2),(200, 'new', 2), (32768, 'new', 2),(40000, 'new', 2),
- (5000, 'new', 1),(90000, 'new', 1)
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__10
-POSTHOOK: Output: default@partitioned4@part=1
-POSTHOOK: Output: default@partitioned4@part=2
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).a EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=2).a EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: partitioned4 PARTITION(part=2).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1 _col2
-PREHOOK: query: select part,a,b from partitioned4
-PREHOOK: type: QUERY
-PREHOOK: Input: default@partitioned4
-PREHOOK: Input: default@partitioned4@part=1
-PREHOOK: Input: default@partitioned4@part=2
-#### A masked pattern was here ####
-POSTHOOK: query: select part,a,b from partitioned4
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Input: default@partitioned4@part=1
-POSTHOOK: Input: default@partitioned4@part=2
-#### A masked pattern was here ####
-part a b
-1 1000 original
-1 3 original
-1 4 original
-1 5000 new
-1 6737 original
-1 NULL new
-2 200 new
-2 32768 new
-2 40000 new
-2 72909 new
-PREHOOK: query: DROP TABLE partitioned1
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@partitioned1
-PREHOOK: Output: default@partitioned1
-POSTHOOK: query: DROP TABLE partitioned1
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@partitioned1
-POSTHOOK: Output: default@partitioned1
-PREHOOK: query: DROP TABLE partitioned2
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@partitioned2
-PREHOOK: Output: default@partitioned2
-POSTHOOK: query: DROP TABLE partitioned2
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@partitioned2
-POSTHOOK: Output: default@partitioned2
-PREHOOK: query: DROP TABLE partitioned3
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@partitioned3
-PREHOOK: Output: default@partitioned3
-POSTHOOK: query: DROP TABLE partitioned3
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@partitioned3
-POSTHOOK: Output: default@partitioned3
-PREHOOK: query: DROP TABLE partitioned4
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@partitioned4
-PREHOOK: Output: default@partitioned4
-POSTHOOK: query: DROP TABLE partitioned4
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@partitioned4
-POSTHOOK: Output: default@partitioned4
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_nonvec_fetchwork_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_fetchwork_table.q.out b/ql/src/test/results/clientpositive/schema_evol_text_nonvec_fetchwork_table.q.out
deleted file mode 100644
index 4003c20..0000000
--- a/ql/src/test/results/clientpositive/schema_evol_text_nonvec_fetchwork_table.q.out
+++ /dev/null
@@ -1,297 +0,0 @@
-PREHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- SORT_QUERY_RESULTS
---
--- FILE VARIATION: ORC, Non-Vectorized, MapWork, Table
---
---
--- SECTION VARIATION: ALTER TABLE ADD COLUMNS
----
-CREATE TABLE table1(a INT, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__1
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'original'),(2, 'original'), (3, 'original'),(4, 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__1
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b
-1 original
-2 original
-3 original
-4 original
-PREHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(c int, d string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(c int, d string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__2
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(1, 'new', 10, 'ten'),(2, 'new', 20, 'twenty'), (3, 'new', 30, 'thirty'),(4, 'new', 40, 'forty')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__2
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-_col0 _col1 _col2 _col3
-PREHOOK: query: select a,b,c,d from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c d
-1 new 10 ten
-1 original NULL NULL
-2 new 20 twenty
-2 original NULL NULL
-3 new 30 thirty
-3 original NULL NULL
-4 new 40 forty
-4 original NULL NULL
-PREHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(e string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: -- ADD COLUMNS
-alter table table1 add columns(e string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__3
-PREHOOK: Output: default@table1
-POSTHOOK: query: insert into table table1 values(5, 'new', 100, 'hundred', 'another1'),(6, 'new', 200, 'two hundred', 'another2')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__3
-POSTHOOK: Output: default@table1
-POSTHOOK: Lineage: table1.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table1.b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table1.c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-POSTHOOK: Lineage: table1.d SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
-POSTHOOK: Lineage: table1.e SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
-_col0 _col1 _col2 _col3 _col4
-PREHOOK: query: select a,b,c,d,e from table1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table1
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b,c,d,e from table1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table1
-#### A masked pattern was here ####
-a b c d e
-1 new 10 ten NULL
-1 original NULL NULL NULL
-2 new 20 twenty NULL
-2 original NULL NULL NULL
-3 new 30 thirty NULL
-3 original NULL NULL NULL
-4 new 40 forty NULL
-4 original NULL NULL NULL
-5 new 100 hundred another1
-6 new 200 two hundred another2
-PREHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE
-PREHOOK: type: CREATETABLE
-PREHOOK: Output: database:default
-PREHOOK: Output: default@table3
-POSTHOOK: query: --
--- SECTION VARIATION: ALTER TABLE CHANGE COLUMN
--- smallint = (2-byte signed integer, from -32,768 to 32,767)
---
-CREATE TABLE table3(a smallint, b STRING) STORED AS TEXTFILE
-POSTHOOK: type: CREATETABLE
-POSTHOOK: Output: database:default
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__4
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(1000, 'original'),(6737, 'original'), ('3', 'original'),('4', 'original')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__4
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-3 original
-4 original
-6737 original
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__5
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(72909, 'new'),(200, 'new'), (32768, 'new'),(40000, 'new')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__5
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-_col0 _col1
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-6737 original
-72909 new
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string)
-PREHOOK: type: ALTERTABLE_ADDCOLS
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 add columns(e string)
-POSTHOOK: type: ALTERTABLE_ADDCOLS
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6')
-PREHOOK: type: QUERY
-PREHOOK: Input: default@values__tmp__table__6
-PREHOOK: Output: default@table3
-POSTHOOK: query: insert into table table3 values(5000, 'new', 'another5'),(90000, 'new', 'another6')
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@values__tmp__table__6
-POSTHOOK: Output: default@table3
-POSTHOOK: Lineage: table3.a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
-POSTHOOK: Lineage: table3.b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
-POSTHOOK: Lineage: table3.e SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
-_col0 _col1 _col2
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-PREHOOK: type: ALTERTABLE_RENAMECOL
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: -- ADD COLUMNS ... RESTRICT
-alter table table3 change column a a int
-POSTHOOK: type: ALTERTABLE_RENAMECOL
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
-PREHOOK: query: select a,b from table3
-PREHOOK: type: QUERY
-PREHOOK: Input: default@table3
-#### A masked pattern was here ####
-POSTHOOK: query: select a,b from table3
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@table3
-#### A masked pattern was here ####
-a b
-1000 original
-200 new
-3 original
-32768 new
-4 original
-40000 new
-5000 new
-6737 original
-72909 new
-90000 new
-PREHOOK: query: DROP TABLE table1
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table1
-PREHOOK: Output: default@table1
-POSTHOOK: query: DROP TABLE table1
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table1
-POSTHOOK: Output: default@table1
-PREHOOK: query: DROP TABLE table2
-PREHOOK: type: DROPTABLE
-POSTHOOK: query: DROP TABLE table2
-POSTHOOK: type: DROPTABLE
-PREHOOK: query: DROP TABLE table3
-PREHOOK: type: DROPTABLE
-PREHOOK: Input: default@table3
-PREHOOK: Output: default@table3
-POSTHOOK: query: DROP TABLE table3
-POSTHOOK: type: DROPTABLE
-POSTHOOK: Input: default@table3
-POSTHOOK: Output: default@table3
[19/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part_all_primitive.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part_all_primitive.q.out b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part_all_primitive.q.out
new file mode 100644
index 0000000..d37d6f5
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/schema_evol_text_nonvec_mapwork_part_all_primitive.q.out
@@ -0,0 +1,2734 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 true 0004-09-22 18:26:29.519542222 original
+2 1 45 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 NULL NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 6229-06-28 02:54:28.970117179 original
+4 1 1 NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 time will come 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=6 width=96)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=6 width=96)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11"]
+ TableScan [TS_0] (rows=6 width=96)
+ default@part_change_various_various_boolean,part_change_various_various_boolean,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+PREHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+POSTHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL true true true true true true true true original
+2 1 true true true true true true true false true original
+3 1 NULL NULL true true true true true true true original
+4 1 true NULL true true true true true true true original
+5 2 true true false true true false false true false new
+6 1 NULL NULL NULL NULL NULL NULL NULL true NULL new
+PREHOOK: query: drop table part_change_various_various_boolean
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: drop table part_change_various_various_boolean
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=6 width=112)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=6 width=112)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=112)
+ default@part_change_various_various_tinyint,part_change_various_various_tinyint,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+PREHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 -48 -51 -66 -29 119 119 73 73 73 -43 original
+2 1 1 -24 -63 -25 -67 34 34 NULL NULL NULL 105 original
+3 1 0 NULL -66 -38 30 85 85 1 1 1 84 original
+4 1 1 NULL 87 6 34 36 36 -77 -77 -77 60 original
+5 2 23 71 127 1 NULL -60 68 NULL NULL 40 93 new
+6 1 NULL 85 -126 NULL 91 113 -28 -63 0 8 NULL new
+PREHOOK: query: drop table part_change_various_various_tinyint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: drop table part_change_various_various_tinyint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=6 width=118)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=6 width=118)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=118)
+ default@part_change_various_various_smallint,part_change_various_various_smallint,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+PREHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+POSTHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL 7373 -32578 -29 119 119 -2999 -2999 -2999 -11819 original
+2 1 1 100 25025 29415 -3651 -19422 -19422 NULL NULL NULL 29801 original
+3 1 0 72 -32578 -27686 30 -939 -939 1 1 1 -8620 original
+4 1 1 -90 14935 12294 -19422 9764 9764 5299 5299 5299 -17092 original
+5 2 -30486 15230 3117 1 -117 -7131 20227 -24858 -28771 NULL NULL new
+6 1 NULL NULL -4844 15507 91 22385 -28 -12268 0 NULL NULL new
+PREHOOK: query: drop table part_change_various_various_smallint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: drop table part_change_various_various_smallint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 NULL -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=6 width=121)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=6 width=121)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=121)
+ default@part_change_various_various_int,part_change_various_various_int,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+PREHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+POSTHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL NULL 3244222 -29 470614135 470614135 -2999 -2999 -2999 -1888628267 original
+2 1 1 100 NULL 1903063783 -3651 46114 46114 NULL NULL NULL 1171027049 original
+3 1 0 72 NULL -93222 30 -66475 -66475 1 1 1 1272503892 original
+4 1 1 -90 NULL 3289094 46114 9250340 9250340 5299 5299 5299 1021033788 original
+5 2 560930 -1281818 127 1 84269672 -60 27094665 -36016110 -182 3244222 561431 new
+6 1 NULL NULL NULL -167 91 113 -164341325 -134237413 0 6229 NULL new
+PREHOOK: query: drop table part_change_various_various_int
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: drop table part_change_various_various_int
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 true NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 true 100 NULL NULL -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 true -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 1998287.3541 1998287.3541 1998287.3541 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+Plan optimized by CBO.
+
+Vertex dependency in root stage
+Reducer 2 <- Map 1 (SIMPLE_EDGE)
+
+Stage-0
+ Fetch Operator
+ limit:-1
+ Stage-1
+ Reducer 2
+ File Output Operator [FS_4]
+ Select Operator [SEL_3] (rows=6 width=127)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ <-Map 1 [SIMPLE_EDGE]
+ SHUFFLE [RS_2]
+ Select Operator [SEL_1] (rows=6 width=127)
+ Output:["_col0","_col1","_col2","_col3","_col4","_col5","_col6","_col7","_col8","_col9","_col10","_col11","_col12","_col13"]
+ TableScan [TS_0] (rows=6 width=127)
+ default@part_change_various_various_bigint,part_change_various_various_bigint,Tbl:COMPLETE,Col:NONE,Output:["insert_num","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","b"]
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Input: default@part_change_various_various_bigint@part=1
+PREHOOK: Input: default@part_change_various_various_bigint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Input: default@part_change_various_various_bigint@part=1
+POSTHOOK: Input: default@part_change_various_various_bigint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 1 NULL NULL 3244222 -29 470614135 470614135 -2999 -2999 -2999 -62018170411 original
+2 1 1 100 NULL NULL -3651 46114 46114 NULL NULL NULL 1171027049 original
+3 1 0 72 NULL -93222 30 -66475 -66475 1 1 1 134416490068 original
+4 1 1 -90 NULL 3289094 46114 9250340 9250340 1998287 NULL NULL 1021033788 original
+5 2 5573199346255528403 71 151775655 1 131 -60 6275638713485623898 -230 -695025 519542222 -29 new
+6 1 NULL NULL -126 NULL 91 113 -28 -63 0 3244222 NULL new
+PREHOOK: query: drop table part_change_various_various_bigint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: drop table part_change_various_various_bigint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> FLOAT
+--
+CREATE TABLE part_change_various_various_float(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_float
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> FLOAT
+--
+CREATE TABLE part_change_various_various_float(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_float
+PREHOOK: query: insert into table part_change_various_various_float partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '2402.3', '2402.3', '2402.3', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@part_change_various_various_float@part=1
+POSTHOOK: query: insert into table part_change_various_various_float partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '2402.3', '2402.3', '2402.3', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@part_change_various_various_float@part=1
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c8 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_float PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__16)values__tmp__
<TRUNCATED>
[09/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/vector_orc_string_reader_empty_dict.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/vector_orc_string_reader_empty_dict.q.out b/ql/src/test/results/clientpositive/tez/vector_orc_string_reader_empty_dict.q.out
new file mode 100644
index 0000000..4f00bed
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/vector_orc_string_reader_empty_dict.q.out
@@ -0,0 +1,62 @@
+PREHOOK: query: create table orcstr (vcol varchar(20)) stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@orcstr
+POSTHOOK: query: create table orcstr (vcol varchar(20)) stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@orcstr
+PREHOOK: query: insert overwrite table orcstr select null from src
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@orcstr
+POSTHOOK: query: insert overwrite table orcstr select null from src
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@orcstr
+POSTHOOK: Lineage: orcstr.vcol EXPRESSION []
+PREHOOK: query: select vcol from orcstr limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@orcstr
+#### A masked pattern was here ####
+POSTHOOK: query: select vcol from orcstr limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@orcstr
+#### A masked pattern was here ####
+NULL
+PREHOOK: query: select vcol from orcstr limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@orcstr
+#### A masked pattern was here ####
+POSTHOOK: query: select vcol from orcstr limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@orcstr
+#### A masked pattern was here ####
+NULL
+PREHOOK: query: insert overwrite table orcstr select "" from src
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@orcstr
+POSTHOOK: query: insert overwrite table orcstr select "" from src
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@orcstr
+POSTHOOK: Lineage: orcstr.vcol EXPRESSION []
+PREHOOK: query: select vcol from orcstr limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@orcstr
+#### A masked pattern was here ####
+POSTHOOK: query: select vcol from orcstr limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@orcstr
+#### A masked pattern was here ####
+
+PREHOOK: query: select vcol from orcstr limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@orcstr
+#### A masked pattern was here ####
+POSTHOOK: query: select vcol from orcstr limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@orcstr
+#### A masked pattern was here ####
+
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/vector_partition_diff_num_cols.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/vector_partition_diff_num_cols.q.out b/ql/src/test/results/clientpositive/tez/vector_partition_diff_num_cols.q.out
index a733991..f23a359 100644
--- a/ql/src/test/results/clientpositive/tez/vector_partition_diff_num_cols.q.out
+++ b/ql/src/test/results/clientpositive/tez/vector_partition_diff_num_cols.q.out
@@ -592,6 +592,7 @@ STAGE PLANS:
sort order:
Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
value expressions: _col0 (type: bigint)
+ Execution mode: vectorized
Reducer 2
Execution mode: vectorized
Reduce Operator Tree:
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/tez/vector_tablesample_rows.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/vector_tablesample_rows.q.out b/ql/src/test/results/clientpositive/tez/vector_tablesample_rows.q.out
new file mode 100644
index 0000000..b2bf415
--- /dev/null
+++ b/ql/src/test/results/clientpositive/tez/vector_tablesample_rows.q.out
@@ -0,0 +1,307 @@
+PREHOOK: query: explain
+select 'key1', 'value1' from alltypesorc tablesample (1 rows)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select 'key1', 'value1' from alltypesorc tablesample (1 rows)
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: alltypesorc
+ Row Limit Per Split: 1
+ Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: 'key1' (type: string), 'value1' (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 12288 Data size: 2187264 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 12288 Data size: 2187264 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ Execution mode: vectorized
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select 'key1', 'value1' from alltypesorc tablesample (1 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select 'key1', 'value1' from alltypesorc tablesample (1 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+_c0 _c1
+key1 value1
+PREHOOK: query: create table decimal_2 (t decimal(18,9)) stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_2
+POSTHOOK: query: create table decimal_2 (t decimal(18,9)) stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_2
+PREHOOK: query: explain
+insert overwrite table decimal_2
+ select cast('17.29' as decimal(4,2)) from alltypesorc tablesample (1 rows)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+insert overwrite table decimal_2
+ select cast('17.29' as decimal(4,2)) from alltypesorc tablesample (1 rows)
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-0 depends on stages: Stage-2
+ Stage-3 depends on stages: Stage-0
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: alltypesorc
+ Row Limit Per Split: 1
+ Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: 17.29 (type: decimal(18,9))
+ outputColumnNames: _col0
+ Statistics: Num rows: 12288 Data size: 1376256 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 12288 Data size: 1376256 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.decimal_2
+ Execution mode: vectorized
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-0
+ Move Operator
+ tables:
+ replace: true
+ table:
+ input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
+ output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
+ serde: org.apache.hadoop.hive.ql.io.orc.OrcSerde
+ name: default.decimal_2
+
+ Stage: Stage-3
+ Stats-Aggr Operator
+
+PREHOOK: query: insert overwrite table decimal_2
+ select cast('17.29' as decimal(4,2)) from alltypesorc tablesample (1 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+PREHOOK: Output: default@decimal_2
+POSTHOOK: query: insert overwrite table decimal_2
+ select cast('17.29' as decimal(4,2)) from alltypesorc tablesample (1 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+POSTHOOK: Output: default@decimal_2
+POSTHOOK: Lineage: decimal_2.t EXPRESSION []
+_col0
+PREHOOK: query: select count(*) from decimal_2
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_2
+#### A masked pattern was here ####
+POSTHOOK: query: select count(*) from decimal_2
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_2
+#### A masked pattern was here ####
+c0
+1
+PREHOOK: query: drop table decimal_2
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@decimal_2
+PREHOOK: Output: default@decimal_2
+POSTHOOK: query: drop table decimal_2
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@decimal_2
+POSTHOOK: Output: default@decimal_2
+PREHOOK: query: -- Dummy tables HIVE-13190
+explain
+select count(1) from (select * from (Select 1 a) x order by x.a) y
+PREHOOK: type: QUERY
+POSTHOOK: query: -- Dummy tables HIVE-13190
+explain
+select count(1) from (select * from (Select 1 a) x order by x.a) y
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Edges:
+ Reducer 2 <- Map 1 (SIMPLE_EDGE)
+ Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ key expressions: 1 (type: int)
+ sort order: +
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Reducer 2
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Group By Operator
+ aggregations: count(1)
+ mode: hash
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ Reduce Output Operator
+ sort order:
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ value expressions: _col0 (type: bigint)
+ Reducer 3
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations: count(VALUE._col0)
+ mode: mergepartial
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select count(1) from (select * from (Select 1 a) x order by x.a) y
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select count(1) from (select * from (Select 1 a) x order by x.a) y
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+_c0
+1
+PREHOOK: query: explain
+create temporary table dual as select 1
+PREHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: query: explain
+create temporary table dual as select 1
+POSTHOOK: type: CREATETABLE_AS_SELECT
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1
+ Stage-4 depends on stages: Stage-2, Stage-0
+ Stage-3 depends on stages: Stage-4
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Tez
+#### A masked pattern was here ####
+ Vertices:
+ Map 1
+ Map Operator Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE
+ table:
+ input format: org.apache.hadoop.mapred.TextInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ name: default.dual
+
+ Stage: Stage-2
+ Dependency Collection
+
+ Stage: Stage-4
+ Create Table Operator:
+ Create Table
+ columns: _c0 int
+ input format: org.apache.hadoop.mapred.TextInputFormat
+#### A masked pattern was here ####
+ output format: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat
+ serde name: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ name: default.dual
+ isTemporary: true
+
+ Stage: Stage-3
+ Stats-Aggr Operator
+
+ Stage: Stage-0
+ Move Operator
+ files:
+ hdfs directory: true
+#### A masked pattern was here ####
+
+PREHOOK: query: create temporary table dual as select 1
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: database:default
+PREHOOK: Output: default@dual
+POSTHOOK: query: create temporary table dual as select 1
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@dual
+_c0
+PREHOOK: query: select * from dual
+PREHOOK: type: QUERY
+PREHOOK: Input: default@dual
+#### A masked pattern was here ####
+POSTHOOK: query: select * from dual
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@dual
+#### A masked pattern was here ####
+dual._c0
+1
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/vector_partition_diff_num_cols.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_partition_diff_num_cols.q.out b/ql/src/test/results/clientpositive/vector_partition_diff_num_cols.q.out
index a783a36..ef92b89 100644
--- a/ql/src/test/results/clientpositive/vector_partition_diff_num_cols.q.out
+++ b/ql/src/test/results/clientpositive/vector_partition_diff_num_cols.q.out
@@ -554,6 +554,7 @@ STAGE PLANS:
sort order:
Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
value expressions: _col0 (type: bigint)
+ Execution mode: vectorized
Reduce Operator Tree:
Group By Operator
aggregations: sum(VALUE._col0)
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/vector_tablesample_rows.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vector_tablesample_rows.q.out b/ql/src/test/results/clientpositive/vector_tablesample_rows.q.out
index 25f2996..7e5f24d 100644
--- a/ql/src/test/results/clientpositive/vector_tablesample_rows.q.out
+++ b/ql/src/test/results/clientpositive/vector_tablesample_rows.q.out
@@ -195,7 +195,6 @@ STAGE PLANS:
key expressions: 1 (type: int)
sort order: +
Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
- Execution mode: vectorized
Reduce Operator Tree:
Select Operator
Statistics: Num rows: 1 Data size: 1 Basic stats: COMPLETE Column stats: COMPLETE
@@ -287,7 +286,6 @@ STAGE PLANS:
output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
name: default.dual
- Execution mode: vectorized
Stage: Stage-7
Conditional Operator
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/fast/BinarySortableDeserializeRead.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/fast/BinarySortableDeserializeRead.java b/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/fast/BinarySortableDeserializeRead.java
index c6ff748..be36ba4 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/fast/BinarySortableDeserializeRead.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/fast/BinarySortableDeserializeRead.java
@@ -18,7 +18,6 @@
package org.apache.hadoop.hive.serde2.binarysortable.fast;
-import java.io.EOFException;
import java.io.IOException;
import java.math.BigInteger;
import java.util.Arrays;
@@ -29,21 +28,10 @@ import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe;
import org.apache.hadoop.hive.serde2.binarysortable.InputByteBuffer;
import org.apache.hadoop.hive.serde2.fast.DeserializeRead;
-import org.apache.hadoop.hive.serde2.io.DateWritable;
-import org.apache.hadoop.hive.serde2.io.HiveCharWritable;
-import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
-import org.apache.hadoop.hive.serde2.io.HiveIntervalDayTimeWritable;
-import org.apache.hadoop.hive.serde2.io.HiveIntervalYearMonthWritable;
-import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritable;
-import org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryUtils;
-import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableHiveDecimalObjectInspector;
-import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
import org.apache.hadoop.io.Text;
/*
@@ -60,11 +48,9 @@ import org.apache.hadoop.io.Text;
* other type specific buffers. So, those references are only valid until the next time set is
* called.
*/
-public final class BinarySortableDeserializeRead implements DeserializeRead {
+public final class BinarySortableDeserializeRead extends DeserializeRead {
public static final Logger LOG = LoggerFactory.getLogger(BinarySortableDeserializeRead.class.getName());
- private TypeInfo[] typeInfos;
-
// The sort order (ascending/descending) for each field. Set to true when descending (invert).
private boolean[] columnSortOrderIsDesc;
@@ -76,11 +62,10 @@ public final class BinarySortableDeserializeRead implements DeserializeRead {
private int start;
- private DecimalTypeInfo saveDecimalTypeInfo;
- private HiveDecimal saveDecimal;
+ private byte[] tempTimestampBytes;
+ private Text tempText;
private byte[] tempDecimalBuffer;
- private HiveDecimalWritable tempHiveDecimalWritable;
private boolean readBeyondConfiguredFieldsWarned;
private boolean readBeyondBufferRangeWarned;
@@ -97,7 +82,7 @@ public final class BinarySortableDeserializeRead implements DeserializeRead {
public BinarySortableDeserializeRead(TypeInfo[] typeInfos,
boolean[] columnSortOrderIsDesc) {
- this.typeInfos = typeInfos;
+ super(typeInfos);
fieldCount = typeInfos.length;
if (columnSortOrderIsDesc != null) {
this.columnSortOrderIsDesc = columnSortOrderIsDesc;
@@ -113,13 +98,7 @@ public final class BinarySortableDeserializeRead implements DeserializeRead {
// Not public since we must have column information.
private BinarySortableDeserializeRead() {
- }
-
- /*
- * The primitive type information for all fields.
- */
- public TypeInfo[] typeInfos() {
- return typeInfos;
+ super();
}
/*
@@ -148,42 +127,242 @@ public final class BinarySortableDeserializeRead implements DeserializeRead {
if (fieldIndex >= fieldCount) {
// Reading beyond the specified field count produces NULL.
if (!readBeyondConfiguredFieldsWarned) {
- // Warn only once.
- LOG.info("Reading beyond configured fields! Configured " + fieldCount + " fields but "
- + " reading more (NULLs returned). Ignoring similar problems.");
- readBeyondConfiguredFieldsWarned = true;
+ doReadBeyondConfiguredFieldsWarned();
}
return true;
}
if (inputByteBuffer.isEof()) {
// Also, reading beyond our byte range produces NULL.
if (!readBeyondBufferRangeWarned) {
- // Warn only once.
- int length = inputByteBuffer.tell() - start;
- LOG.info("Reading beyond buffer range! Buffer range " + start
- + " for length " + length + " but reading more... "
- + "(total buffer length " + inputByteBuffer.getData().length + ")"
- + " Ignoring similar problems.");
- readBeyondBufferRangeWarned = true;
+ doReadBeyondBufferRangeWarned();
}
// We cannot read beyond so we must return NULL here.
return true;
}
- byte isNull = inputByteBuffer.read(columnSortOrderIsDesc[fieldIndex]);
+ byte isNullByte = inputByteBuffer.read(columnSortOrderIsDesc[fieldIndex]);
- if (isNull == 0) {
+ if (isNullByte == 0) {
return true;
}
- // We have a field and are positioned to it.
+ /*
+ * We have a field and are positioned to it. Read it.
+ */
+ boolean isNull = false; // Assume.
+ switch (primitiveCategories[fieldIndex]) {
+ case BOOLEAN:
+ currentBoolean = (inputByteBuffer.read(columnSortOrderIsDesc[fieldIndex]) == 2);
+ break;
+ case BYTE:
+ currentByte = (byte) (inputByteBuffer.read(columnSortOrderIsDesc[fieldIndex]) ^ 0x80);
+ break;
+ case SHORT:
+ {
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ int v = inputByteBuffer.read(invert) ^ 0x80;
+ v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
+ currentShort = (short) v;
+ }
+ break;
+ case INT:
+ {
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ int v = inputByteBuffer.read(invert) ^ 0x80;
+ for (int i = 0; i < 3; i++) {
+ v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
+ }
+ currentInt = v;
+ }
+ break;
+ case LONG:
+ {
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ long v = inputByteBuffer.read(invert) ^ 0x80;
+ for (int i = 0; i < 7; i++) {
+ v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
+ }
+ currentLong = v;
+ }
+ break;
+ case DATE:
+ {
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ int v = inputByteBuffer.read(invert) ^ 0x80;
+ for (int i = 0; i < 3; i++) {
+ v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
+ }
+ currentDateWritable.set(v);
+ }
+ break;
+ case TIMESTAMP:
+ {
+ if (tempTimestampBytes == null) {
+ tempTimestampBytes = new byte[TimestampWritable.BINARY_SORTABLE_LENGTH];
+ }
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ for (int i = 0; i < tempTimestampBytes.length; i++) {
+ tempTimestampBytes[i] = inputByteBuffer.read(invert);
+ }
+ currentTimestampWritable.setBinarySortable(tempTimestampBytes, 0);
+ }
+ break;
+ case FLOAT:
+ {
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ int v = 0;
+ for (int i = 0; i < 4; i++) {
+ v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
+ }
+ if ((v & (1 << 31)) == 0) {
+ // negative number, flip all bits
+ v = ~v;
+ } else {
+ // positive number, flip the first bit
+ v = v ^ (1 << 31);
+ }
+ currentFloat = Float.intBitsToFloat(v);
+ }
+ break;
+ case DOUBLE:
+ {
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ long v = 0;
+ for (int i = 0; i < 8; i++) {
+ v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
+ }
+ if ((v & (1L << 63)) == 0) {
+ // negative number, flip all bits
+ v = ~v;
+ } else {
+ // positive number, flip the first bit
+ v = v ^ (1L << 63);
+ }
+ currentDouble = Double.longBitsToDouble(v);
+ }
+ break;
+ case BINARY:
+ case STRING:
+ case CHAR:
+ case VARCHAR:
+ {
+ if (tempText == null) {
+ tempText = new Text();
+ }
+ BinarySortableSerDe.deserializeText(
+ inputByteBuffer, columnSortOrderIsDesc[fieldIndex], tempText);
+ currentBytes = tempText.getBytes();
+ currentBytesStart = 0;
+ currentBytesLength = tempText.getLength();
+ }
+ break;
+ case INTERVAL_YEAR_MONTH:
+ {
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ int v = inputByteBuffer.read(invert) ^ 0x80;
+ for (int i = 0; i < 3; i++) {
+ v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
+ }
+ currentHiveIntervalYearMonthWritable.set(v);
+ }
+ break;
+ case INTERVAL_DAY_TIME:
+ {
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ long totalSecs = inputByteBuffer.read(invert) ^ 0x80;
+ for (int i = 0; i < 7; i++) {
+ totalSecs = (totalSecs << 8) + (inputByteBuffer.read(invert) & 0xff);
+ }
+ int nanos = inputByteBuffer.read(invert) ^ 0x80;
+ for (int i = 0; i < 3; i++) {
+ nanos = (nanos << 8) + (inputByteBuffer.read(invert) & 0xff);
+ }
+ currentHiveIntervalDayTimeWritable.set(totalSecs, nanos);
+ }
+ break;
+ case DECIMAL:
+ {
+ // Since enforcing precision and scale can cause a HiveDecimal to become NULL,
+ // we must read it, enforce it here, and either return NULL or buffer the result.
+
+ final boolean invert = columnSortOrderIsDesc[fieldIndex];
+ int b = inputByteBuffer.read(invert) - 1;
+ assert (b == 1 || b == -1 || b == 0);
+ boolean positive = b != -1;
+
+ int factor = inputByteBuffer.read(invert) ^ 0x80;
+ for (int i = 0; i < 3; i++) {
+ factor = (factor << 8) + (inputByteBuffer.read(invert) & 0xff);
+ }
+
+ if (!positive) {
+ factor = -factor;
+ }
+
+ int start = inputByteBuffer.tell();
+ int length = 0;
+
+ do {
+ b = inputByteBuffer.read(positive ? invert : !invert);
+ assert(b != 1);
+
+ if (b == 0) {
+ // end of digits
+ break;
+ }
+
+ length++;
+ } while (true);
+
+ if(tempDecimalBuffer == null || tempDecimalBuffer.length < length) {
+ tempDecimalBuffer = new byte[length];
+ }
+
+ inputByteBuffer.seek(start);
+ for (int i = 0; i < length; ++i) {
+ tempDecimalBuffer[i] = inputByteBuffer.read(positive ? invert : !invert);
+ }
+
+ // read the null byte again
+ inputByteBuffer.read(positive ? invert : !invert);
+
+ String digits = new String(tempDecimalBuffer, 0, length, BinarySortableSerDe.decimalCharSet);
+ BigInteger bi = new BigInteger(digits);
+ HiveDecimal bd = HiveDecimal.create(bi).scaleByPowerOfTen(factor-length);
+
+ if (!positive) {
+ bd = bd.negate();
+ }
+
+ // We have a decimal. After we enforce precision and scale, will it become a NULL?
+
+ currentHiveDecimalWritable.set(bd);
- if (((PrimitiveTypeInfo) typeInfos[fieldIndex]).getPrimitiveCategory() != PrimitiveCategory.DECIMAL) {
- return false;
+ DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) typeInfos[fieldIndex];
+
+ int precision = decimalTypeInfo.getPrecision();
+ int scale = decimalTypeInfo.getScale();
+
+ HiveDecimal decimal = currentHiveDecimalWritable.getHiveDecimal(precision, scale);
+ if (decimal == null) {
+ isNull = true;
+ } else {
+ // Put value back into writable.
+ currentHiveDecimalWritable.set(decimal);
+ }
+ }
+ break;
+ default:
+ throw new RuntimeException("Unexpected primitive type category " + primitiveCategories[fieldIndex]);
+ }
+
+ /*
+ * Now that we have read through the field -- did we really want it?
+ */
+ if (columnsToInclude != null && !columnsToInclude[fieldIndex]) {
+ isNull = true;
}
- // Since enforcing precision and scale may turn a HiveDecimal into a NULL, we must read
- // it here.
- return earlyReadHiveDecimal();
+ return isNull;
}
/*
@@ -196,7 +375,7 @@ public final class BinarySortableDeserializeRead implements DeserializeRead {
// Warn only once.
int length = inputByteBuffer.getEnd() - start;
int remaining = inputByteBuffer.getEnd() - inputByteBuffer.tell();
- LOG.info("Not all fields were read in the buffer range! Buffer range " + start
+ LOG.info("Not all fields were read in the buffer range! Buffer range " + start
+ " for length " + length + " but " + remaining + " bytes remain. "
+ "(total buffer length " + inputByteBuffer.getData().length + ")"
+ " Ignoring similar problems.");
@@ -222,526 +401,23 @@ public final class BinarySortableDeserializeRead implements DeserializeRead {
}
/*
- * BOOLEAN.
- */
- @Override
- public boolean readBoolean() throws IOException {
- byte b = inputByteBuffer.read(columnSortOrderIsDesc[fieldIndex]);
- return (b == 2);
- }
-
- /*
- * BYTE.
- */
- @Override
- public byte readByte() throws IOException {
- return (byte) (inputByteBuffer.read(columnSortOrderIsDesc[fieldIndex]) ^ 0x80);
- }
-
- /*
- * SHORT.
- */
- @Override
- public short readShort() throws IOException {
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- int v = inputByteBuffer.read(invert) ^ 0x80;
- v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
- return (short) v;
- }
-
- /*
- * INT.
- */
- @Override
- public int readInt() throws IOException {
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- int v = inputByteBuffer.read(invert) ^ 0x80;
- for (int i = 0; i < 3; i++) {
- v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
- }
- return v;
- }
-
- /*
- * LONG.
- */
- @Override
- public long readLong() throws IOException {
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- long v = inputByteBuffer.read(invert) ^ 0x80;
- for (int i = 0; i < 7; i++) {
- v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
- }
- return v;
- }
-
- /*
- * FLOAT.
+ * Pull these out of the regular execution path.
*/
- @Override
- public float readFloat() throws IOException {
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- int v = 0;
- for (int i = 0; i < 4; i++) {
- v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
- }
- if ((v & (1 << 31)) == 0) {
- // negative number, flip all bits
- v = ~v;
- } else {
- // positive number, flip the first bit
- v = v ^ (1 << 31);
- }
- return Float.intBitsToFloat(v);
- }
-
- /*
- * DOUBLE.
- */
- @Override
- public double readDouble() throws IOException {
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- long v = 0;
- for (int i = 0; i < 8; i++) {
- v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
- }
- if ((v & (1L << 63)) == 0) {
- // negative number, flip all bits
- v = ~v;
- } else {
- // positive number, flip the first bit
- v = v ^ (1L << 63);
- }
- return Double.longBitsToDouble(v);
- }
-
- // This class is for internal use.
- private static class BinarySortableReadStringResults extends ReadStringResults {
-
- // Use an org.apache.hadoop.io.Text object as a buffer to decode the BinarySortable
- // format string into.
- private Text text;
-
- public BinarySortableReadStringResults() {
- super();
- text = new Text();
- }
- }
-
- // Reading a STRING field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different bytes field.
- @Override
- public ReadStringResults createReadStringResults() {
- return new BinarySortableReadStringResults();
- }
-
-
- @Override
- public void readString(ReadStringResults readStringResults) throws IOException {
- BinarySortableReadStringResults binarySortableReadStringResults =
- (BinarySortableReadStringResults) readStringResults;
-
- BinarySortableSerDe.deserializeText(inputByteBuffer, columnSortOrderIsDesc[fieldIndex], binarySortableReadStringResults.text);
- readStringResults.bytes = binarySortableReadStringResults.text.getBytes();
- readStringResults.start = 0;
- readStringResults.length = binarySortableReadStringResults.text.getLength();
- }
-
-
- /*
- * CHAR.
- */
-
- // This class is for internal use.
- private static class BinarySortableReadHiveCharResults extends ReadHiveCharResults {
-
- public BinarySortableReadHiveCharResults() {
- super();
- }
-
- public HiveCharWritable getHiveCharWritable() {
- return hiveCharWritable;
- }
- }
-
- // Reading a CHAR field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different CHAR field.
- @Override
- public ReadHiveCharResults createReadHiveCharResults() {
- return new BinarySortableReadHiveCharResults();
- }
-
- public void readHiveChar(ReadHiveCharResults readHiveCharResults) throws IOException {
- BinarySortableReadHiveCharResults binarySortableReadHiveCharResults =
- (BinarySortableReadHiveCharResults) readHiveCharResults;
-
- if (!binarySortableReadHiveCharResults.isInit()) {
- binarySortableReadHiveCharResults.init((CharTypeInfo) typeInfos[fieldIndex]);
- }
-
- HiveCharWritable hiveCharWritable = binarySortableReadHiveCharResults.getHiveCharWritable();
-
- // Decode the bytes into our Text buffer, then truncate.
- BinarySortableSerDe.deserializeText(inputByteBuffer, columnSortOrderIsDesc[fieldIndex], hiveCharWritable.getTextValue());
- hiveCharWritable.enforceMaxLength(binarySortableReadHiveCharResults.getMaxLength());
-
- readHiveCharResults.bytes = hiveCharWritable.getTextValue().getBytes();
- readHiveCharResults.start = 0;
- readHiveCharResults.length = hiveCharWritable.getTextValue().getLength();
- }
-
- /*
- * VARCHAR.
- */
-
- // This class is for internal use.
- private static class BinarySortableReadHiveVarcharResults extends ReadHiveVarcharResults {
-
- public BinarySortableReadHiveVarcharResults() {
- super();
- }
-
- public HiveVarcharWritable getHiveVarcharWritable() {
- return hiveVarcharWritable;
- }
- }
-
- // Reading a VARCHAR field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different VARCHAR field.
- @Override
- public ReadHiveVarcharResults createReadHiveVarcharResults() {
- return new BinarySortableReadHiveVarcharResults();
- }
-
- public void readHiveVarchar(ReadHiveVarcharResults readHiveVarcharResults) throws IOException {
- BinarySortableReadHiveVarcharResults binarySortableReadHiveVarcharResults = (BinarySortableReadHiveVarcharResults) readHiveVarcharResults;
-
- if (!binarySortableReadHiveVarcharResults.isInit()) {
- binarySortableReadHiveVarcharResults.init((VarcharTypeInfo) typeInfos[fieldIndex]);
- }
-
- HiveVarcharWritable hiveVarcharWritable = binarySortableReadHiveVarcharResults.getHiveVarcharWritable();
-
- // Decode the bytes into our Text buffer, then truncate.
- BinarySortableSerDe.deserializeText(inputByteBuffer, columnSortOrderIsDesc[fieldIndex], hiveVarcharWritable.getTextValue());
- hiveVarcharWritable.enforceMaxLength(binarySortableReadHiveVarcharResults.getMaxLength());
-
- readHiveVarcharResults.bytes = hiveVarcharWritable.getTextValue().getBytes();
- readHiveVarcharResults.start = 0;
- readHiveVarcharResults.length = hiveVarcharWritable.getTextValue().getLength();
- }
-
- /*
- * BINARY.
- */
-
- // This class is for internal use.
- private static class BinarySortableReadBinaryResults extends ReadBinaryResults {
-
- // Use an org.apache.hadoop.io.Text object as a buffer to decode the BinarySortable
- // format string into.
- private Text text;
-
- public BinarySortableReadBinaryResults() {
- super();
- text = new Text();
- }
- }
-
- // Reading a BINARY field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different bytes field.
- @Override
- public ReadBinaryResults createReadBinaryResults() {
- return new BinarySortableReadBinaryResults();
- }
-
- @Override
- public void readBinary(ReadBinaryResults readBinaryResults) throws IOException {
- BinarySortableReadBinaryResults binarySortableReadBinaryResults =
- (BinarySortableReadBinaryResults) readBinaryResults;
-
- BinarySortableSerDe.deserializeText(inputByteBuffer, columnSortOrderIsDesc[fieldIndex], binarySortableReadBinaryResults.text);
- readBinaryResults.bytes = binarySortableReadBinaryResults.text.getBytes();
- readBinaryResults.start = 0;
- readBinaryResults.length = binarySortableReadBinaryResults.text.getLength();
- }
-
- /*
- * DATE.
- */
-
- // This class is for internal use.
- private static class BinarySortableReadDateResults extends ReadDateResults {
-
- public BinarySortableReadDateResults() {
- super();
- }
-
- public DateWritable getDateWritable() {
- return dateWritable;
- }
- }
-
- // Reading a DATE field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different DATE field.
- @Override
- public ReadDateResults createReadDateResults() {
- return new BinarySortableReadDateResults();
- }
-
- @Override
- public void readDate(ReadDateResults readDateResults) throws IOException {
- BinarySortableReadDateResults binarySortableReadDateResults = (BinarySortableReadDateResults) readDateResults;
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- int v = inputByteBuffer.read(invert) ^ 0x80;
- for (int i = 0; i < 3; i++) {
- v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
- }
- DateWritable dateWritable = binarySortableReadDateResults.getDateWritable();
- dateWritable.set(v);
- }
-
- /*
- * TIMESTAMP.
- */
-
- // This class is for internal use.
- private static class BinarySortableReadTimestampResults extends ReadTimestampResults {
-
- private byte[] timestampBytes;
-
- public BinarySortableReadTimestampResults() {
- super();
- timestampBytes = new byte[TimestampWritable.BINARY_SORTABLE_LENGTH];
- }
-
- public TimestampWritable getTimestampWritable() {
- return timestampWritable;
- }
- }
-
- // Reading a TIMESTAMP field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different TIMESTAMP field.
- @Override
- public ReadTimestampResults createReadTimestampResults() {
- return new BinarySortableReadTimestampResults();
- }
-
- @Override
- public void readTimestamp(ReadTimestampResults readTimestampResults) throws IOException {
- BinarySortableReadTimestampResults binarySortableReadTimestampResults = (BinarySortableReadTimestampResults) readTimestampResults;
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- byte[] timestampBytes = binarySortableReadTimestampResults.timestampBytes;
- for (int i = 0; i < timestampBytes.length; i++) {
- timestampBytes[i] = inputByteBuffer.read(invert);
- }
- TimestampWritable timestampWritable = binarySortableReadTimestampResults.getTimestampWritable();
- timestampWritable.setBinarySortable(timestampBytes, 0);
- }
-
- /*
- * INTERVAL_YEAR_MONTH.
- */
-
- // This class is for internal use.
- private static class BinarySortableReadIntervalYearMonthResults extends ReadIntervalYearMonthResults {
-
- public BinarySortableReadIntervalYearMonthResults() {
- super();
- }
-
- public HiveIntervalYearMonthWritable getHiveIntervalYearMonthWritable() {
- return hiveIntervalYearMonthWritable;
- }
- }
-
- // Reading a INTERVAL_YEAR_MONTH field require a results object to receive value information.
- // A separate results object is created by the caller at initialization per different
- // INTERVAL_YEAR_MONTH field.
- @Override
- public ReadIntervalYearMonthResults createReadIntervalYearMonthResults() {
- return new BinarySortableReadIntervalYearMonthResults();
- }
-
- @Override
- public void readIntervalYearMonth(ReadIntervalYearMonthResults readIntervalYearMonthResults)
- throws IOException {
- BinarySortableReadIntervalYearMonthResults binarySortableReadIntervalYearMonthResults =
- (BinarySortableReadIntervalYearMonthResults) readIntervalYearMonthResults;
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- int v = inputByteBuffer.read(invert) ^ 0x80;
- for (int i = 0; i < 3; i++) {
- v = (v << 8) + (inputByteBuffer.read(invert) & 0xff);
- }
- HiveIntervalYearMonthWritable hiveIntervalYearMonthWritable =
- binarySortableReadIntervalYearMonthResults.getHiveIntervalYearMonthWritable();
- hiveIntervalYearMonthWritable.set(v);
- }
-
- /*
- * INTERVAL_DAY_TIME.
- */
-
- // This class is for internal use.
- private static class BinarySortableReadIntervalDayTimeResults extends ReadIntervalDayTimeResults {
-
- public BinarySortableReadIntervalDayTimeResults() {
- super();
- }
-
- public HiveIntervalDayTimeWritable getHiveIntervalDayTimeWritable() {
- return hiveIntervalDayTimeWritable;
- }
- }
-
- // Reading a INTERVAL_DAY_TIME field require a results object to receive value information.
- // A separate results object is created by the caller at initialization per different
- // INTERVAL_DAY_TIME field.
- @Override
- public ReadIntervalDayTimeResults createReadIntervalDayTimeResults() {
- return new BinarySortableReadIntervalDayTimeResults();
- }
-
- @Override
- public void readIntervalDayTime(ReadIntervalDayTimeResults readIntervalDayTimeResults)
- throws IOException {
- BinarySortableReadIntervalDayTimeResults binarySortableReadIntervalDayTimeResults =
- (BinarySortableReadIntervalDayTimeResults) readIntervalDayTimeResults;
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- long totalSecs = inputByteBuffer.read(invert) ^ 0x80;
- for (int i = 0; i < 7; i++) {
- totalSecs = (totalSecs << 8) + (inputByteBuffer.read(invert) & 0xff);
- }
- int nanos = inputByteBuffer.read(invert) ^ 0x80;
- for (int i = 0; i < 3; i++) {
- nanos = (nanos << 8) + (inputByteBuffer.read(invert) & 0xff);
- }
- HiveIntervalDayTimeWritable hiveIntervalDayTimeWritable =
- binarySortableReadIntervalDayTimeResults.getHiveIntervalDayTimeWritable();
- hiveIntervalDayTimeWritable.set(totalSecs, nanos);
- }
-
- /*
- * DECIMAL.
- */
-
- // This class is for internal use.
- private static class BinarySortableReadDecimalResults extends ReadDecimalResults {
-
- public HiveDecimal hiveDecimal;
-
- public BinarySortableReadDecimalResults() {
- super();
- }
-
- @Override
- public void init(DecimalTypeInfo decimalTypeInfo) {
- super.init(decimalTypeInfo);
- }
-
- @Override
- public HiveDecimal getHiveDecimal() {
- return hiveDecimal;
- }
- }
-
- // Reading a DECIMAL field require a results object to receive value information. A separate
- // results object is created by the caller at initialization per different DECIMAL field.
- @Override
- public ReadDecimalResults createReadDecimalResults() {
- return new BinarySortableReadDecimalResults();
- }
-
- @Override
- public void readHiveDecimal(ReadDecimalResults readDecimalResults) throws IOException {
- BinarySortableReadDecimalResults binarySortableReadDecimalResults =
- (BinarySortableReadDecimalResults) readDecimalResults;
-
- if (!binarySortableReadDecimalResults.isInit()) {
- binarySortableReadDecimalResults.init(saveDecimalTypeInfo);
- }
-
- binarySortableReadDecimalResults.hiveDecimal = saveDecimal;
-
- saveDecimal = null;
- saveDecimalTypeInfo = null;
- }
-
- /**
- * We read the whole HiveDecimal value and then enforce precision and scale, which may
- * make it a NULL.
- * @return Returns true if this HiveDecimal enforced to a NULL.
- * @throws IOException
- */
- private boolean earlyReadHiveDecimal() throws IOException {
-
- // Since enforcing precision and scale can cause a HiveDecimal to become NULL,
- // we must read it, enforce it here, and either return NULL or buffer the result.
-
- final boolean invert = columnSortOrderIsDesc[fieldIndex];
- int b = inputByteBuffer.read(invert) - 1;
- assert (b == 1 || b == -1 || b == 0);
- boolean positive = b != -1;
-
- int factor = inputByteBuffer.read(invert) ^ 0x80;
- for (int i = 0; i < 3; i++) {
- factor = (factor << 8) + (inputByteBuffer.read(invert) & 0xff);
- }
-
- if (!positive) {
- factor = -factor;
- }
-
- int start = inputByteBuffer.tell();
- int length = 0;
-
- do {
- b = inputByteBuffer.read(positive ? invert : !invert);
- assert(b != 1);
-
- if (b == 0) {
- // end of digits
- break;
- }
-
- length++;
- } while (true);
-
- if(tempDecimalBuffer == null || tempDecimalBuffer.length < length) {
- tempDecimalBuffer = new byte[length];
- }
-
- inputByteBuffer.seek(start);
- for (int i = 0; i < length; ++i) {
- tempDecimalBuffer[i] = inputByteBuffer.read(positive ? invert : !invert);
- }
-
- // read the null byte again
- inputByteBuffer.read(positive ? invert : !invert);
-
- String digits = new String(tempDecimalBuffer, 0, length, BinarySortableSerDe.decimalCharSet);
- BigInteger bi = new BigInteger(digits);
- HiveDecimal bd = HiveDecimal.create(bi).scaleByPowerOfTen(factor-length);
-
- if (!positive) {
- bd = bd.negate();
- }
-
- // We have a decimal. After we enforce precision and scale, will it become a NULL?
-
- if (tempHiveDecimalWritable == null) {
- tempHiveDecimalWritable = new HiveDecimalWritable();
- }
- tempHiveDecimalWritable.set(bd);
-
- saveDecimalTypeInfo = (DecimalTypeInfo) typeInfos[fieldIndex];
-
- int precision = saveDecimalTypeInfo.getPrecision();
- int scale = saveDecimalTypeInfo.getScale();
-
- saveDecimal = tempHiveDecimalWritable.getHiveDecimal(precision, scale);
- // Now return whether it is NULL or NOT NULL.
- return (saveDecimal == null);
+ private void doReadBeyondConfiguredFieldsWarned() {
+ // Warn only once.
+ LOG.info("Reading beyond configured fields! Configured " + fieldCount + " fields but "
+ + " reading more (NULLs returned). Ignoring similar problems.");
+ readBeyondConfiguredFieldsWarned = true;
+ }
+
+ private void doReadBeyondBufferRangeWarned() {
+ // Warn only once.
+ int length = inputByteBuffer.tell() - start;
+ LOG.info("Reading beyond buffer range! Buffer range " + start
+ + " for length " + length + " but reading more... "
+ + "(total buffer length " + inputByteBuffer.getData().length + ")"
+ + " Ignoring similar problems.");
+ readBeyondBufferRangeWarned = true;
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/serde/src/java/org/apache/hadoop/hive/serde2/fast/DeserializeRead.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/fast/DeserializeRead.java b/serde/src/java/org/apache/hadoop/hive/serde2/fast/DeserializeRead.java
index c2b0cfc..2fad2af 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/fast/DeserializeRead.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/fast/DeserializeRead.java
@@ -19,31 +19,22 @@
package org.apache.hadoop.hive.serde2.fast;
import java.io.IOException;
-import java.sql.Date;
-import java.sql.Timestamp;
-
-import org.apache.hadoop.hive.common.type.HiveChar;
-import org.apache.hadoop.hive.common.type.HiveDecimal;
-import org.apache.hadoop.hive.common.type.HiveIntervalDayTime;
-import org.apache.hadoop.hive.common.type.HiveIntervalYearMonth;
-import org.apache.hadoop.hive.common.type.HiveVarchar;
import org.apache.hadoop.hive.serde2.io.DateWritable;
-import org.apache.hadoop.hive.serde2.io.HiveCharWritable;
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
import org.apache.hadoop.hive.serde2.io.HiveIntervalDayTimeWritable;
import org.apache.hadoop.hive.serde2.io.HiveIntervalYearMonthWritable;
-import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritable;
-import org.apache.hadoop.hive.serde2.typeinfo.CharTypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
-import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
/*
* Directly deserialize with the caller reading field-by-field a serialization format.
- *
+ *
* The caller is responsible for calling the read method for the right type of each field
* (after calling readCheckNull).
- *
+ *
* Reading some fields require a results object to receive value information. A separate
* results object is created by the caller at initialization per different field even for the same
* type.
@@ -52,17 +43,88 @@ import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo;
* other type specific buffers. So, those references are only valid until the next time set is
* called.
*/
-public interface DeserializeRead {
+public abstract class DeserializeRead {
+
+ protected TypeInfo[] typeInfos;
+
+ protected boolean[] columnsToInclude;
+
+ protected Category[] categories;
+ protected PrimitiveCategory[] primitiveCategories;
+
+ public DeserializeRead(TypeInfo[] typeInfos) {
+ this.typeInfos = typeInfos;
+ final int count = typeInfos.length;
+ categories = new Category[count];
+ primitiveCategories = new PrimitiveCategory[count];
+ for (int i = 0; i < count; i++) {
+ TypeInfo typeInfo = typeInfos[i];
+ Category category = typeInfo.getCategory();
+ categories[i] = category;
+ if (category == Category.PRIMITIVE) {
+ PrimitiveTypeInfo primitiveTypeInfo = (PrimitiveTypeInfo) typeInfo;
+ PrimitiveCategory primitiveCategory = primitiveTypeInfo.getPrimitiveCategory();
+ primitiveCategories[i] = primitiveCategory;
+
+ switch (primitiveCategory) {
+ case DATE:
+ if (currentDateWritable == null) {
+ currentDateWritable = new DateWritable();
+ }
+ break;
+ case TIMESTAMP:
+ if (currentTimestampWritable == null) {
+ currentTimestampWritable = new TimestampWritable();
+ }
+ break;
+ case INTERVAL_YEAR_MONTH:
+ if (currentHiveIntervalYearMonthWritable == null) {
+ currentHiveIntervalYearMonthWritable = new HiveIntervalYearMonthWritable();
+ }
+ break;
+ case INTERVAL_DAY_TIME:
+ if (currentHiveIntervalDayTimeWritable == null) {
+ currentHiveIntervalDayTimeWritable = new HiveIntervalDayTimeWritable();
+ }
+ break;
+ case DECIMAL:
+ if (currentHiveDecimalWritable == null) {
+ currentHiveDecimalWritable = new HiveDecimalWritable();
+ }
+ break;
+ default:
+ // No writable needed for this data type.
+ }
+ }
+ }
+
+ columnsToInclude = null;
+ }
+
+ // Don't allow for public.
+ protected DeserializeRead() {
+ }
/*
* The type information for all fields.
*/
- TypeInfo[] typeInfos();
+ public TypeInfo[] typeInfos() {
+ return typeInfos;
+ }
+
+ /*
+ * If some fields are are not going to be used by the query, use this routine to specify
+ * the columns to return. The readCheckNull method will automatically return NULL for the
+ * other columns.
+ */
+ public void setColumnsToInclude(boolean[] columnsToInclude) {
+ this.columnsToInclude = columnsToInclude;
+ }
/*
* Set the range of bytes to be deserialized.
*/
- void set(byte[] bytes, int offset, int length);
+ public abstract void set(byte[] bytes, int offset, int length);
/*
* Reads the NULL information for a field.
@@ -70,318 +132,91 @@ public interface DeserializeRead {
* @return Return true when the field is NULL; reading is positioned to the next field.
* Otherwise, false when the field is NOT NULL; reading is positioned to the field data.
*/
- boolean readCheckNull() throws IOException;
+ public abstract boolean readCheckNull() throws IOException;
/*
* Call this method after all fields have been read to check for extra fields.
*/
- void extraFieldsCheck();
-
+ public abstract void extraFieldsCheck();
+
/*
* Read integrity warning flags.
*/
- boolean readBeyondConfiguredFieldsWarned();
- boolean readBeyondBufferRangeWarned();
- boolean bufferRangeHasExtraDataWarned();
+ public abstract boolean readBeyondConfiguredFieldsWarned();
+ public abstract boolean readBeyondBufferRangeWarned();
+ public abstract boolean bufferRangeHasExtraDataWarned();
+
+ /*
+ * These members hold the current value that was read when readCheckNull return false.
+ */
/*
* BOOLEAN.
*/
- boolean readBoolean() throws IOException;
+ public boolean currentBoolean;
/*
* BYTE.
*/
- byte readByte() throws IOException;
+ public byte currentByte;
/*
* SHORT.
*/
- short readShort() throws IOException;
+ public short currentShort;
/*
* INT.
*/
- int readInt() throws IOException;
+ public int currentInt;
/*
* LONG.
*/
- long readLong() throws IOException;
+ public long currentLong;
/*
* FLOAT.
*/
- float readFloat() throws IOException;
+ public float currentFloat;
/*
* DOUBLE.
*/
- double readDouble() throws IOException;
-
- /*
- * This class is the base abstract read bytes results for STRING, CHAR, VARCHAR, and BINARY.
- */
- public abstract class ReadBytesResults {
-
- public byte[] bytes;
- public int start;
- public int length;
-
- public ReadBytesResults() {
- bytes = null;
- start = 0;
- length = 0;
- }
- }
+ public double currentDouble;
/*
- * STRING.
+ * STRING, CHAR, VARCHAR, and BINARY.
*
- * Can be used to read CHAR and VARCHAR when the caller takes responsibility for
+ * For CHAR and VARCHAR when the caller takes responsibility for
* truncation/padding issues.
*/
-
- // This class is for abstract since each format may need its own specialization.
- public abstract class ReadStringResults extends ReadBytesResults {
-
- public ReadStringResults() {
- super();
- }
- }
-
- // Reading a STRING field require a results object to receive value information. A separate
- // results object is created at initialization per different bytes field.
- ReadStringResults createReadStringResults();
-
- void readString(ReadStringResults readStringResults) throws IOException;
-
- /*
- * CHAR.
- */
-
- // This class is for abstract since each format may need its own specialization.
- public abstract class ReadHiveCharResults extends ReadBytesResults {
-
- private CharTypeInfo charTypeInfo;
- private int maxLength;
-
- protected HiveCharWritable hiveCharWritable;
-
- public ReadHiveCharResults() {
- super();
- }
-
- public void init(CharTypeInfo charTypeInfo) {
- this.charTypeInfo = charTypeInfo;
- this.maxLength = charTypeInfo.getLength();
- hiveCharWritable = new HiveCharWritable();
- }
-
- public boolean isInit() {
- return (charTypeInfo != null);
- }
-
- public int getMaxLength() {
- return maxLength;
- }
-
- public HiveChar getHiveChar() {
- return hiveCharWritable.getHiveChar();
- }
- }
-
- // Reading a CHAR field require a results object to receive value information. A separate
- // results object is created at initialization per different CHAR field.
- ReadHiveCharResults createReadHiveCharResults();
-
- void readHiveChar(ReadHiveCharResults readHiveCharResults) throws IOException;
-
- /*
- * VARCHAR.
- */
-
- // This class is for abstract since each format may need its own specialization.
- public abstract class ReadHiveVarcharResults extends ReadBytesResults {
-
- private VarcharTypeInfo varcharTypeInfo;
- private int maxLength;
-
- protected HiveVarcharWritable hiveVarcharWritable;
-
- public ReadHiveVarcharResults() {
- super();
- }
-
- public void init(VarcharTypeInfo varcharTypeInfo) {
- this.varcharTypeInfo = varcharTypeInfo;
- this.maxLength = varcharTypeInfo.getLength();
- hiveVarcharWritable = new HiveVarcharWritable();
- }
-
- public boolean isInit() {
- return (varcharTypeInfo != null);
- }
-
- public int getMaxLength() {
- return maxLength;
- }
-
- public HiveVarchar getHiveVarchar() {
- return hiveVarcharWritable.getHiveVarchar();
- }
- }
-
- // Reading a VARCHAR field require a results object to receive value information. A separate
- // results object is created at initialization per different VARCHAR field.
- ReadHiveVarcharResults createReadHiveVarcharResults();
-
- void readHiveVarchar(ReadHiveVarcharResults readHiveVarcharResults) throws IOException;
-
- /*
- * BINARY.
- */
-
- // This class is for abstract since each format may need its own specialization.
- public abstract class ReadBinaryResults extends ReadBytesResults {
-
- public ReadBinaryResults() {
- super();
- }
- }
-
- // Reading a BINARY field require a results object to receive value information. A separate
- // results object is created at initialization per different bytes field.
- ReadBinaryResults createReadBinaryResults();
-
- void readBinary(ReadBinaryResults readBinaryResults) throws IOException;
+ public byte[] currentBytes;
+ public int currentBytesStart;
+ public int currentBytesLength;
/*
* DATE.
*/
-
- // This class is for abstract since each format may need its own specialization.
- public abstract class ReadDateResults {
-
- protected DateWritable dateWritable;
-
- public ReadDateResults() {
- dateWritable = new DateWritable();
- }
-
- public Date getDate() {
- return dateWritable.get();
- }
-
- public int getDays() {
- return dateWritable.getDays();
- }
- }
-
- // Reading a DATE field require a results object to receive value information. A separate
- // results object is created at initialization per different DATE field.
- ReadDateResults createReadDateResults();
-
- void readDate(ReadDateResults readDateResults) throws IOException;
+ public DateWritable currentDateWritable;
/*
* TIMESTAMP.
*/
-
- // This class is for abstract since each format may need its own specialization.
- public abstract class ReadTimestampResults {
-
- protected TimestampWritable timestampWritable;
-
- public ReadTimestampResults() {
- timestampWritable = new TimestampWritable();
- }
-
- public Timestamp getTimestamp() {
- return timestampWritable.getTimestamp();
- }
- }
-
- // Reading a TIMESTAMP field require a results object to receive value information. A separate
- // results object is created at initialization per different TIMESTAMP field.
- ReadTimestampResults createReadTimestampResults();
-
- void readTimestamp(ReadTimestampResults readTimestampResult) throws IOException;
+ public TimestampWritable currentTimestampWritable;
/*
* INTERVAL_YEAR_MONTH.
*/
-
- // This class is for abstract since each format may need its own specialization.
- public abstract class ReadIntervalYearMonthResults {
-
- protected HiveIntervalYearMonthWritable hiveIntervalYearMonthWritable;
-
- public ReadIntervalYearMonthResults() {
- hiveIntervalYearMonthWritable = new HiveIntervalYearMonthWritable();
- }
-
- public HiveIntervalYearMonth getHiveIntervalYearMonth() {
- return hiveIntervalYearMonthWritable.getHiveIntervalYearMonth();
- }
- }
-
- // Reading a INTERVAL_YEAR_MONTH field require a results object to receive value information.
- // A separate results object is created at initialization per different INTERVAL_YEAR_MONTH field.
- ReadIntervalYearMonthResults createReadIntervalYearMonthResults();
-
- void readIntervalYearMonth(ReadIntervalYearMonthResults readIntervalYearMonthResult) throws IOException;
+ public HiveIntervalYearMonthWritable currentHiveIntervalYearMonthWritable;
/*
* INTERVAL_DAY_TIME.
*/
-
- // This class is for abstract since each format may need its own specialization.
- public abstract class ReadIntervalDayTimeResults {
-
- protected HiveIntervalDayTimeWritable hiveIntervalDayTimeWritable;
-
- public ReadIntervalDayTimeResults() {
- hiveIntervalDayTimeWritable = new HiveIntervalDayTimeWritable();
- }
-
- public HiveIntervalDayTime getHiveIntervalDayTime() {
- return hiveIntervalDayTimeWritable.getHiveIntervalDayTime();
- }
- }
-
- // Reading a INTERVAL_DAY_TIME field require a results object to receive value information.
- // A separate results object is created at initialization per different INTERVAL_DAY_TIME field.
- ReadIntervalDayTimeResults createReadIntervalDayTimeResults();
-
- void readIntervalDayTime(ReadIntervalDayTimeResults readIntervalDayTimeResult) throws IOException;
+ public HiveIntervalDayTimeWritable currentHiveIntervalDayTimeWritable;
/*
* DECIMAL.
*/
-
- // This class is for abstract since each format may need its own specialization.
- public abstract class ReadDecimalResults {
-
- protected DecimalTypeInfo decimalTypeInfo;
-
- public ReadDecimalResults() {
- }
-
- public void init(DecimalTypeInfo decimalTypeInfo) {
- this.decimalTypeInfo = decimalTypeInfo;
- }
-
- public boolean isInit() {
- return (decimalTypeInfo != null);
- }
-
- public abstract HiveDecimal getHiveDecimal();
- }
-
- // Reading a DECIMAL field require a results object to receive value information. A separate
- // results object is created at initialization per different DECIMAL field.
- ReadDecimalResults createReadDecimalResults();
-
- void readHiveDecimal(ReadDecimalResults readDecimalResults) throws IOException;
+ public HiveDecimalWritable currentHiveDecimalWritable;
}
\ No newline at end of file
[30/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part.q.out b/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part.q.out
new file mode 100644
index 0000000..f105795
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part.q.out
@@ -0,0 +1,4479 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_permute_select add columns(c int)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=2)
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_add_int_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_permute_select partition(part=1)
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_add_int_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_int_permute_select
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 111 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Input: default@part_add_int_permute_select@part=1
+PREHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Input: default@part_add_int_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: drop table part_add_int_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_permute_select
+PREHOOK: Output: default@part_add_int_permute_select
+POSTHOOK: query: drop table part_add_int_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_permute_select
+POSTHOOK: Output: default@part_add_int_permute_select
+PREHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE part_add_int_string_permute_select(insert_num int, a INT, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2
+PREHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+PREHOOK: type: ALTERTABLE_ADDCOLS
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: -- Table-Non-Cascade ADD COLUMNS ...
+alter table part_add_int_string_permute_select add columns(c int, d string)
+POSTHOOK: type: ALTERTABLE_ADDCOLS
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: query: DESCRIBE FORMATTED part_add_int_string_permute_select
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+col_name data_type comment
+# col_name data_type comment
+
+insert_num int
+a int
+b string
+c int
+d string
+
+# Partition Information
+# col_name data_type comment
+
+part int
+
+# Detailed Table Information
+Database: default
+#### A masked pattern was here ####
+Retention: 0
+#### A masked pattern was here ####
+Table Type: MANAGED_TABLE
+Table Parameters:
+#### A masked pattern was here ####
+
+# Storage Information
+SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+InputFormat: org.apache.hadoop.mapred.TextInputFormat
+OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+Compressed: No
+Num Buckets: -1
+Bucket Columns: []
+Sort Columns: []
+Storage Desc Params:
+ serialization.format 1
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=2)
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=2
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).a EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).c EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).d SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: query: insert into table part_add_int_string_permute_select partition(part=1)
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).a EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).c EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).d SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_add_int_string_permute_select PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_add_int_string_permute_select
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), a (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int), VALUE._col2 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 155 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,part,a,b from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b
+1 1 1 original
+10 1 6 new
+2 1 2 original
+3 1 3 original
+4 1 4 original
+5 2 1 new
+6 2 2 new
+7 2 3 new
+8 2 4 new
+9 1 5 new
+PREHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c
+1 1 1 original NULL
+10 1 6 new NULL
+2 1 2 original NULL
+3 1 3 original NULL
+4 1 4 original NULL
+5 2 1 new 10
+6 2 2 new 20
+7 2 3 new 30
+8 2 4 new 40
+9 1 5 new NULL
+PREHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,b,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a b c d
+1 1 1 original NULL NULL
+10 1 6 new NULL NULL
+2 1 2 original NULL NULL
+3 1 3 original NULL NULL
+4 1 4 original NULL NULL
+5 2 1 new 10 ten
+6 2 2 new 20 twenty
+7 2 3 new 30 thirty
+8 2 4 new 40 forty
+9 1 5 new NULL NULL
+PREHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,c,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a c d
+1 1 1 NULL NULL
+10 1 6 NULL NULL
+2 1 2 NULL NULL
+3 1 3 NULL NULL
+4 1 4 NULL NULL
+5 2 1 10 ten
+6 2 2 20 twenty
+7 2 3 30 thirty
+8 2 4 40 forty
+9 1 5 NULL NULL
+PREHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,a,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part a d
+1 1 1 NULL
+10 1 6 NULL
+2 1 2 NULL
+3 1 3 NULL
+4 1 4 NULL
+5 2 1 ten
+6 2 2 twenty
+7 2 3 thirty
+8 2 4 forty
+9 1 5 NULL
+PREHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part c
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 10
+6 2 20
+7 2 30
+8 2 40
+9 1 NULL
+PREHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Input: default@part_add_int_string_permute_select@part=1
+PREHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,d from part_add_int_string_permute_select order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=1
+POSTHOOK: Input: default@part_add_int_string_permute_select@part=2
+#### A masked pattern was here ####
+insert_num part d
+1 1 NULL
+10 1 NULL
+2 1 NULL
+3 1 NULL
+4 1 NULL
+5 2 ten
+6 2 twenty
+7 2 thirty
+8 2 forty
+9 1 NULL
+PREHOOK: query: drop table part_add_int_string_permute_select
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_add_int_string_permute_select
+PREHOOK: Output: default@part_add_int_string_permute_select
+POSTHOOK: query: drop table part_add_int_string_permute_select
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_add_int_string_permute_select
+POSTHOOK: Output: default@part_add_int_string_permute_select
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE part_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=2)
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_string_group_double@part=2
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: query: insert into table part_change_string_group_double partition(part=1)
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_string_group_double@part=1
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_string_group_double PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_string_group_double
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: double), c2 (type: double), c3 (type: double), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: double), _col3 (type: double), _col4 (type: double), _col5 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: double), VALUE._col2 (type: double), VALUE._col3 (type: double), VALUE._col4 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 383 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Input: default@part_change_string_group_double@part=1
+PREHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,b from part_change_string_group_double order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Input: default@part_change_string_group_double@part=1
+POSTHOOK: Input: default@part_change_string_group_double@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 b
+1 1 753.7028 753.7028 753.7028 original
+10 1 9250340.75 9250340.75 9250340.75 new
+2 1 -3651.672121 -3651.672121 -3651.672121 original
+3 1 -29.0764 -29.0764 -29.0764 original
+4 1 -10.3 -10.3 -10.3 original
+5 2 30.774 30.774 30.774 new
+6 2 20.31 20.31 20.31 new
+7 2 46114.284799488 46114.284799488 46114.284799488 new
+8 2 -66475.561431 -66475.561431 -66475.561431 new
+9 1 17808.963785 17808.963785 17808.963785 new
+PREHOOK: query: drop table part_change_string_group_double
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_string_group_double
+PREHOOK: Output: default@part_change_string_group_double
+POSTHOOK: query: drop table part_change_string_group_double
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_string_group_double
+POSTHOOK: Output: default@part_change_string_group_double
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=2)
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c1 SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_timestamp partition(part=1)
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c1 SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_timestamp PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_date_group_string_group_timestamp
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: char(50)), _col4 (type: char(15)), _col5 (type: varchar(50)), _col6 (type: varchar(15)), _col7 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: char(50)), VALUE._col3 (type: char(15)), VALUE._col4 (type: varchar(50)), VALUE._col5 (type: varchar(15)), VALUE._col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 1194 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_timestamp order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 08:42:30.000595596 2000-12-18 08:42:30.000595596 2000-12-18 08:4 2000-12-18 08:42:30.000595596 2000-12-18 08:4 original
+2 1 2024-11-11 16:42:41.101 2024-11-11 16:42:41.101 2024-11-11 16:4 2024-11-11 16:42:41.101 2024-11-11 16:4 original
+3 1 2021-09-24 03:18:32.413655165 2021-09-24 03:18:32.413655165 2021-09-24 03:1 2021-09-24 03:18:32.413655165 2021-09-24 03:1 original
+4 2 0004-09-22 18:26:29.519542222 0004-09-22 18:26:29.519542222 0004-09-22 18:2 0004-09-22 18:26:29.519542222 0004-09-22 18:2 new
+5 2 1815-05-06 00:12:37.543584705 1815-05-06 00:12:37.543584705 1815-05-06 00:1 1815-05-06 00:12:37.543584705 1815-05-06 00:1 new
+6 2 2007-02-09 05:17:29.368756876 2007-02-09 05:17:29.368756876 2007-02-09 05:1 2007-02-09 05:17:29.368756876 2007-02-09 05:1 new
+7 2 2002-05-10 05:29:48.990818073 2002-05-10 05:29:48.990818073 2002-05-10 05:2 2002-05-10 05:29:48.990818073 2002-05-10 05:2 new
+8 1 6229-06-28 02:54:28.970117179 6229-06-28 02:54:28.970117179 NULL 6229-06-28 02:54:28.970117179 NULL new
+9 1 5966-07-09 03:30:50.597 5966-07-09 03:30:50.597 NULL 5966-07-09 03:30:50.597 NULL new
+PREHOOK: query: drop table part_change_date_group_string_group_timestamp
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_timestamp
+PREHOOK: Output: default@part_change_date_group_string_group_timestamp
+POSTHOOK: query: drop table part_change_date_group_string_group_timestamp
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_timestamp
+POSTHOOK: Output: default@part_change_date_group_string_group_timestamp
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE part_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=1)
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: query: insert into table part_change_date_group_string_group_date partition(part=2)
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_date_group_string_group_date@part=2
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c1 SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_date_group_string_group_date PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_date_group_string_group_date
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: string), c2 (type: char(50)), c3 (type: char(15)), c4 (type: varchar(50)), c5 (type: varchar(15)), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: char(50)), _col4 (type: char(15)), _col5 (type: varchar(50)), _col6 (type: varchar(15)), _col7 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: char(50)), VALUE._col3 (type: char(15)), VALUE._col4 (type: varchar(50)), VALUE._col5 (type: varchar(15)), VALUE._col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 9 Data size: 555 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=1
+PREHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,b from part_change_date_group_string_group_date order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=1
+POSTHOOK: Input: default@part_change_date_group_string_group_date@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 b
+1 1 2000-12-18 2000-12-18 2000-12-18 2000-12-18 2000-12-18 original
+2 1 2024-11-11 2024-11-11 2024-11-11 2024-11-11 2024-11-11 original
+3 1 2021-09-24 2021-09-24 2021-09-24 2021-09-24 2021-09-24 original
+4 2 0004-09-22 0004-09-22 0004-09-22 0004-09-22 0004-09-22 new
+5 2 1815-05-06 1815-05-06 1815-05-06 1815-05-06 1815-05-06 new
+6 2 2007-02-09 2007-02-09 2007-02-09 2007-02-09 2007-02-09 new
+7 2 2002-05-10 2002-05-10 2002-05-10 2002-05-10 2002-05-10 new
+8 2 6229-06-28 6229-06-28 6229-06-28 6229-06-28 6229-06-28 new
+9 2 5966-07-09 5966-07-09 5966-07-09 5966-07-09 5966-07-09 new
+PREHOOK: query: drop table part_change_date_group_string_group_date
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_date_group_string_group_date
+PREHOOK: Output: default@part_change_date_group_string_group_date
+POSTHOOK: query: drop table part_change_date_group_string_group_date
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_date_group_string_group_date
+POSTHOOK: Output: default@part_change_date_group_string_group_date
+PREHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: ------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__16
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_string partition(part)
+ values (5, '2000', '72909', '3244222', '-93222', 'new', 2),
+ (6, '1', '200', '2323322', '5430907', 'new', 2),
+ (7, '256', '32768', '31889', '470614135', 'new', 2),
+ (8, '5555', '40000', '-719017797', '810662019', 'new', 2),
+ (9, '100', '5000', '5443', '0', 'new', 1),
+ (10, '17', '90000', '754072151', '3289094', 'new', 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__16
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).b SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c1 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c2 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c3 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).c4 SIMPLE [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_string PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__16)values__tmp__table__16.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_numeric_group_string_group_multi_ints_string
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: string), c2 (type: string), c3 (type: string), c4 (type: string), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: string), VALUE._col2 (type: string), VALUE._col3 (type: string), VALUE._col4 (type: string), VALUE._col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 10 Data size: 330 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,b from part_change_numeric_group_string_group_multi_ints_string order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=1
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 b
+1 1 45 1000 483777 -23866739993 original
+10 1 17 NULL 754072151 3289094 new
+2 1 -2 -6737 56 28899333 original
+3 1 NULL 4957 832222222 9000000000 original
+4 1 0 20435 847492223 -999999999999 original
+5 2 2000 72909 3244222 -93222 new
+6 2 1 200 2323322 5430907 new
+7 2 256 32768 31889 470614135 new
+8 2 5555 40000 -719017797 810662019 new
+9 1 100 5000 5443 0 new
+PREHOOK: query: drop table part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: query: drop table part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_numeric_group_string_group_multi_ints_string
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_string
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE part_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char
+PREHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__17
+PREHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: query: insert into table part_change_numeric_group_string_group_multi_ints_char partition(part=1)
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__17
+POSTHOOK: Output: default@part_change_numeric_group_string_group_multi_ints_char@part=1
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).b SIMPLE [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_group_multi_ints_char PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__17)values__tmp__table__17.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_numeric_group_string_gr
<TRUNCATED>
[28/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part_all_primitive.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part_all_primitive.q.out b/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part_all_primitive.q.out
new file mode 100644
index 0000000..7f125fa
--- /dev/null
+++ b/ql/src/test/results/clientpositive/schema_evol_text_vec_mapwork_part_all_primitive.q.out
@@ -0,0 +1,3058 @@
+PREHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 true 0004-09-22 18:26:29.519542222 original
+2 1 45 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 NULL NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 6229-06-28 02:54:28.970117179 original
+4 1 1 NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 time will come 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@part_change_various_various_boolean@part=2
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).b SIMPLE [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: query: insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@part_change_various_various_boolean@part=1
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).b SIMPLE [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_boolean PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_boolean
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: boolean), c2 (type: boolean), c3 (type: boolean), c4 (type: boolean), c5 (type: boolean), c6 (type: boolean), c7 (type: boolean), c8 (type: boolean), c9 (type: boolean), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: boolean), _col3 (type: boolean), _col4 (type: boolean), _col5 (type: boolean), _col6 (type: boolean), _col7 (type: boolean), _col8 (type: boolean), _col9 (type: boolean), _col10 (type: boolean), _col11 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: boolean), VALUE._col2 (type: boolean), VALUE._col3 (type: boolean), VALUE._col4 (type: boolean), VALUE._col5 (type: boolean), VALUE._col6 (type: boolean), VALUE._col7 (type: boolean), VALUE._col8 (type: boolean), VALUE._col9 (type: boolean), VALUE._col10 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 580 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Input: default@part_change_various_various_boolean@part=1
+PREHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Input: default@part_change_various_various_boolean@part=1
+POSTHOOK: Input: default@part_change_various_various_boolean@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 b
+1 1 NULL true true true true true true true true original
+2 1 true true true true true true true false true original
+3 1 NULL NULL true true true true true true true original
+4 1 true NULL true true true true true true true original
+5 2 NULL NULL false NULL NULL false false NULL false new
+6 1 NULL NULL NULL NULL NULL NULL NULL true NULL new
+PREHOOK: query: drop table part_change_various_various_boolean
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_boolean
+PREHOOK: Output: default@part_change_various_various_boolean
+POSTHOOK: query: drop table part_change_various_various_boolean
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_boolean
+POSTHOOK: Output: default@part_change_various_various_boolean
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL 2000 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 NULL 1000 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false NULL 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 NULL NULL 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__5
+PREHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__5
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=2
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).b SIMPLE [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__5)values__tmp__table__5.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__6
+PREHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: query: insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__6
+POSTHOOK: Output: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).b SIMPLE [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_tinyint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__6)values__tmp__table__6.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_tinyint
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: tinyint), c2 (type: tinyint), c3 (type: tinyint), c4 (type: tinyint), c5 (type: tinyint), c6 (type: tinyint), c7 (type: tinyint), c8 (type: tinyint), c9 (type: tinyint), c10 (type: tinyint), c11 (type: tinyint), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: tinyint), _col3 (type: tinyint), _col4 (type: tinyint), _col5 (type: tinyint), _col6 (type: tinyint), _col7 (type: tinyint), _col8 (type: tinyint), _col9 (type: tinyint), _col10 (type: tinyint), _col11 (type: tinyint), _col12 (type: tinyint), _col13 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: tinyint), VALUE._col2 (type: tinyint), VALUE._col3 (type: tinyint), VALUE._col4 (type: tinyint), VALUE._col5 (type: tinyint), VALUE._col6 (type: tinyint), VALUE._col7 (type: tinyint), VALUE._col8 (type: tinyint), VALUE._col9 (type: tinyint), VALUE._col10 (type: tinyint), VALUE._col11 (type: tinyint), VALUE._col12 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 583 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Input: default@part_change_various_various_tinyint@part=1
+PREHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=1
+POSTHOOK: Input: default@part_change_various_various_tinyint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL -48 -51 -66 -29 119 119 73 73 73 -43 original
+2 1 NULL -24 -63 -25 -67 34 34 NULL NULL NULL 105 original
+3 1 0 NULL -66 -38 30 85 85 1 1 1 84 original
+4 1 NULL NULL 87 6 34 36 36 -77 -77 -77 60 original
+5 2 23 71 127 1 NULL -60 68 NULL NULL 40 93 new
+6 1 NULL 85 -126 NULL 91 113 -28 -63 0 8 NULL new
+PREHOOK: query: drop table part_change_various_various_tinyint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_tinyint
+PREHOOK: Output: default@part_change_various_various_tinyint
+POSTHOOK: query: drop table part_change_various_various_tinyint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_tinyint
+POSTHOOK: Output: default@part_change_various_various_tinyint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__7
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__7
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__7)values__tmp__table__7.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL 72909 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 NULL 100 483777 -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 3244222 -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 NULL -90 754072151 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__8
+PREHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__8
+POSTHOOK: Output: default@part_change_various_various_smallint@part=2
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).b SIMPLE [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__8)values__tmp__table__8.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__9
+PREHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: query: insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__9
+POSTHOOK: Output: default@part_change_various_various_smallint@part=1
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).b SIMPLE [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_smallint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__9)values__tmp__table__9.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_smallint
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: smallint), c2 (type: smallint), c3 (type: smallint), c4 (type: smallint), c5 (type: smallint), c6 (type: smallint), c7 (type: smallint), c8 (type: smallint), c9 (type: smallint), c10 (type: smallint), c11 (type: smallint), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: smallint), _col3 (type: smallint), _col4 (type: smallint), _col5 (type: smallint), _col6 (type: smallint), _col7 (type: smallint), _col8 (type: smallint), _col9 (type: smallint), _col10 (type: smallint), _col11 (type: smallint), _col12 (type: smallint), _col13 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: smallint), VALUE._col2 (type: smallint), VALUE._col3 (type: smallint), VALUE._col4 (type: smallint), VALUE._col5 (type: smallint), VALUE._col6 (type: smallint), VALUE._col7 (type: smallint), VALUE._col8 (type: smallint), VALUE._col9 (type: smallint), VALUE._col10 (type: smallint), VALUE._col11 (type: smallint), VALUE._col12 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 622 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Input: default@part_change_various_various_smallint@part=1
+PREHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Input: default@part_change_various_various_smallint@part=1
+POSTHOOK: Input: default@part_change_various_various_smallint@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL 7373 -32578 -29 119 119 -2999 -2999 -2999 -11819 original
+2 1 NULL 100 25025 29415 -3651 -19422 -19422 NULL NULL NULL 29801 original
+3 1 0 72 -32578 -27686 30 -939 -939 1 1 1 -8620 original
+4 1 NULL -90 14935 12294 -19422 9764 9764 5299 5299 5299 -17092 original
+5 2 -30486 15230 3117 1 -117 -7131 20227 -24858 -28771 NULL NULL new
+6 1 NULL NULL -4844 15507 91 22385 -28 -12268 0 NULL NULL new
+PREHOOK: query: drop table part_change_various_various_smallint
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_smallint
+PREHOOK: Output: default@part_change_various_various_smallint
+POSTHOOK: query: drop table part_change_various_various_smallint
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_smallint
+POSTHOOK: Output: default@part_change_various_various_smallint
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__10
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__10
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 SIMPLE [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__10)values__tmp__table__10.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 NULL 100 NULL -23866739993 -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 NULL -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 5299 5299 5299 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__11
+PREHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__11
+POSTHOOK: Output: default@part_change_various_various_int@part=2
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).b SIMPLE [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__11)values__tmp__table__11.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__12
+PREHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: query: insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__12
+POSTHOOK: Output: default@part_change_various_various_int@part=1
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).b SIMPLE [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_int PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__12)values__tmp__table__12.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_int
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: insert_num (type: int), part (type: int), c1 (type: int), c2 (type: int), c3 (type: int), c4 (type: int), c5 (type: int), c6 (type: int), c7 (type: int), c8 (type: int), c9 (type: int), c10 (type: int), c11 (type: int), b (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: int)
+ sort order: +
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ value expressions: _col1 (type: int), _col2 (type: int), _col3 (type: int), _col4 (type: int), _col5 (type: int), _col6 (type: int), _col7 (type: int), _col8 (type: int), _col9 (type: int), _col10 (type: int), _col11 (type: int), _col12 (type: int), _col13 (type: string)
+ Execution mode: vectorized
+ Reduce Operator Tree:
+ Select Operator
+ expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int), VALUE._col2 (type: int), VALUE._col3 (type: int), VALUE._col4 (type: int), VALUE._col5 (type: int), VALUE._col6 (type: int), VALUE._col7 (type: int), VALUE._col8 (type: int), VALUE._col9 (type: int), VALUE._col10 (type: int), VALUE._col11 (type: int), VALUE._col12 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 6 Data size: 639 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Input: default@part_change_various_various_int@part=1
+PREHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Input: default@part_change_various_various_int@part=1
+POSTHOOK: Input: default@part_change_various_various_int@part=2
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL NULL 3244222 -29 470614135 470614135 -2999 -2999 -2999 -1888628267 original
+2 1 NULL 100 NULL 1903063783 -3651 46114 46114 NULL NULL NULL 1171027049 original
+3 1 0 72 NULL -93222 30 -66475 -66475 1 1 1 1272503892 original
+4 1 NULL -90 NULL 3289094 46114 9250340 9250340 5299 5299 5299 1021033788 original
+5 2 560930 -1281818 127 1 84269672 -60 27094665 -36016110 -182 3244222 561431 new
+6 1 NULL NULL NULL -167 91 113 -164341325 -134237413 0 6229 NULL new
+PREHOOK: query: drop table part_change_various_various_int
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@part_change_various_various_int
+PREHOOK: Output: default@part_change_various_various_int
+POSTHOOK: query: drop table part_change_various_various_int
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@part_change_various_various_int
+POSTHOOK: Output: default@part_change_various_various_int
+PREHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: --
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__13
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__13
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 SIMPLE [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__13)values__tmp__table__13.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+POSTHOOK: query: select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Input: default@part_change_various_various_bigint@part=1
+#### A masked pattern was here ####
+insert_num part c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 b
+1 1 NULL NULL NULL 3244222 -29.0764 4.70614135E8 470614135.000000000000000000 -2999 -2999 -2999 0004-09-22 18:26:29.519542222 original
+2 1 NULL 100 NULL NULL -3651.672 46114.284799488 46114.284799488000000000 2007-02-09 05:17:29.368756876 original
+3 1 false 72 NULL -93222 30.774 -66475.561431 -66475.561431000000000000 1 1 1 6229-06-28 02:54:28.970117179 original
+4 1 NULL -90 NULL 3289094 46114.285 9250340.75 9250340.750000000000000000 1998287.3541 1998287.3541 1998287.3541 2002-05-10 05:29:48.990818073 original
+PREHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+PREHOOK: type: ALTERTABLE_REPLACECOLS
+PREHOOK: Input: default@part_change_various_various_bigint
+PREHOOK: Output: default@part_change_various_various_bigint
+POSTHOOK: query: -- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING)
+POSTHOOK: type: ALTERTABLE_REPLACECOLS
+POSTHOOK: Input: default@part_change_various_various_bigint
+POSTHOOK: Output: default@part_change_various_various_bigint
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__14
+PREHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__14
+POSTHOOK: Output: default@part_change_various_various_bigint@part=2
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).b SIMPLE [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c1 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c10 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c11 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c2 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c3 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c4 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c5 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c6 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c7 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c8 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).c9 EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=2).insert_num EXPRESSION [(values__tmp__table__14)values__tmp__table__14.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__15
+PREHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: query: insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__15
+POSTHOOK: Output: default@part_change_various_various_bigint@part=1
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).b SIMPLE [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col13, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c1 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c10 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col11, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c11 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col12, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c2 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col3, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c3 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col4, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c4 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col5, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c5 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col6, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c6 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col7, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c7 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col8, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c8 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col9, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).c9 EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col10, type:string, comment:), ]
+POSTHOOK: Lineage: part_change_various_various_bigint PARTITION(part=1).insert_num EXPRESSION [(values__tmp__table__15)values__tmp__table__15.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+_col0 _col1 _col2 _col3 _col4 _col5 _col6 _col7 _col8 _col9 _col10 _col11 _col12
+PREHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num
+POSTHOOK: type: QUERY
+Explain
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: part_change_various_various_bigint
+ Statistics: Num rows: 6 Data size: 682 Basi
<TRUNCATED>
[39/50] [abbrv] hive git commit: HIVE-12878: Support Vectorization
for TEXTFILE and other formats (Matt McCline, reviewed by Sergey Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part_all_primitive.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part_all_primitive.q b/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part_all_primitive.q
new file mode 100644
index 0000000..952517f
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_part_all_primitive.q
@@ -0,0 +1,514 @@
+set hive.explain.user=true;
+set hive.mapred.mode=nonstrict;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=false;
+SET hive.vectorized.use.vector.serde.deserialize=true;
+SET hive.vectorized.use.row.serde.deserialize=false;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=false;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Partitioned --> all primitive conversions
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS Various --> Various
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, TIMESTAMP) --> BOOLEAN
+--
+CREATE TABLE part_change_various_various_boolean(insert_num int, c1 TINYINT, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_boolean partition(part=1)
+ values(1, 255, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, 'true', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 45, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, 200, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, 'time will come', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_boolean replace columns (insert_num int, c1 BOOLEAN, c2 BOOLEAN, c3 BOOLEAN, c4 BOOLEAN, c5 BOOLEAN, c6 BOOLEAN, c7 BOOLEAN, c8 BOOLEAN, c9 BOOLEAN, b STRING);
+
+insert into table part_change_various_various_boolean partition(part=2)
+ values (5, 1, true, false, 1, 0, false, false, true, false, 'new');
+
+insert into table part_change_various_various_boolean partition(part=1)
+ values (6, 0, 1, 1, false, 0, true, false, true, 0, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,b from part_change_various_various_boolean order by insert_num;
+
+drop table part_change_various_various_boolean;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, SHORT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BYTE
+--
+CREATE TABLE part_change_various_various_tinyint(insert_num int, c1 BOOLEAN, c2 SMALLINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_tinyint partition(part=1)
+ values(1, true, 2000, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 1000, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72909, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, 90000, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_tinyint replace columns (insert_num int, c1 TINYINT, c2 TINYINT, c3 TINYINT, c4 TINYINT, c5 TINYINT, c6 TINYINT, c7 TINYINT, c8 TINYINT, c9 TINYINT, c10 TINYINT, c11 TINYINT, b STRING);
+
+insert into table part_change_various_various_tinyint partition(part=2)
+ values (5, 23, 71, 127, 1, 131, -60, 68, -230, -182, 40, 93, 'new');
+
+insert into table part_change_various_various_tinyint partition(part=1)
+ values (6, -248, 85, -126, -167, 91, 113, -28, -63, 0, 8, 237, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_tinyint order by insert_num;
+
+drop table part_change_various_various_tinyint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, INT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> SMALLINT
+--
+CREATE TABLE part_change_various_various_smallint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 INT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_smallint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_smallint replace columns (insert_num int, c1 SMALLINT, c2 SMALLINT, c3 SMALLINT, c4 SMALLINT, c5 SMALLINT, c6 SMALLINT, c7 SMALLINT, c8 SMALLINT, c9 SMALLINT, c10 SMALLINT, c11 SMALLINT, b STRING);
+
+insert into table part_change_various_various_smallint partition(part=2)
+ values (5, -30486, 15230, 3117, 1, -117, -7131, 20227, -24858, -28771, 46114, 72909, 'new');
+
+insert into table part_change_various_various_smallint partition(part=1)
+ values (6, -10542, -1805, -4844, 15507, 91, 22385, -28, -12268, 0, 66475, 774, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_smallint order by insert_num;
+
+drop table part_change_various_various_smallint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, LONG, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> INT
+--
+CREATE TABLE part_change_various_various_int(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 BIGINT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_int partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_int replace columns (insert_num int, c1 INT, c2 INT, c3 INT, c4 INT, c5 INT, c6 INT, c7 INT, c8 INT, c9 INT, c10 INT, c11 INT, b STRING);
+
+insert into table part_change_various_various_int partition(part=2)
+ values (5, 560930, -1281818, 127, 1, 84269672, -60, 27094665, -36016110, -182, 3244222, 561431, 'new');
+
+insert into table part_change_various_various_int partition(part=1)
+ values (6, -1928921, 695025, -151775655, -167, 91, 113, -164341325, -134237413, 0, 6229, 4422, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_int order by insert_num;
+
+drop table part_change_various_various_int;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, FLOAT, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> BIGINT
+--
+CREATE TABLE part_change_various_various_bigint(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 FLOAT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_bigint partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '1998287.3541', '1998287.3541', '1998287.3541', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_bigint replace columns (insert_num int, c1 BIGINT, c2 BIGINT, c3 BIGINT, c4 BIGINT, c5 BIGINT, c6 BIGINT, c7 BIGINT, c8 BIGINT, c9 BIGINT, c10 BIGINT, c11 BIGINT, b STRING);
+
+insert into table part_change_various_various_bigint partition(part=2)
+ values (5, 5573199346255528403, 71, 151775655, 1, 131, -60, 6275638713485623898, -230, -695025, 519542222, -29.0764, 'new');
+
+insert into table part_change_various_various_bigint partition(part=1)
+ values (6, -164341325, 9043162437544575070, -126, -6566204574741299000, 91, 113, -28, -63, 0, 3244222, -90, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_bigint order by insert_num;
+
+drop table part_change_various_various_bigint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, DOUBLE, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> FLOAT
+--
+CREATE TABLE part_change_various_various_float(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_float partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '2402.3', '2402.3', '2402.3', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_float order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_float replace columns (insert_num int, c1 FLOAT, c2 FLOAT, c3 FLOAT, c4 FLOAT, c5 FLOAT, c6 FLOAT, c7 FLOAT, c8 FLOAT, c9 FLOAT, c10 FLOAT, c11 FLOAT, b STRING);
+
+insert into table part_change_various_various_float partition(part=2)
+ values (5, 953967041., 62.0791539559013466, 718.78, 1, 203.199548118, -60, 6275638713485623898, -230, -695025, -3651.67212, 46114.28, 'new');
+
+insert into table part_change_various_various_float partition(part=1)
+ values (6, -1255178165.77663, 9043162437544575070.974, -4314.7918, -1240033819, 91, 1698.95, -100.3597812, -63, 0, -93222.200, 29.076, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_float order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_float order by insert_num;
+
+drop table part_change_various_various_float;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DECIMAL, STRING, CHAR, VARCHAR, TIMESTAMP) --> DOUBLE
+--
+CREATE TABLE part_change_various_various_double(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 DOUBLE, c7 DECIMAL(38,18), c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_double partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '-2999', '-2999', '-2999', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '5299', '5299', '5299', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_double order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, c4 DOUBLE, c5 DOUBLE, c6 DOUBLE, c7 DOUBLE, c8 DOUBLE, c9 DOUBLE, c10 DOUBLE, c11 DOUBLE, b STRING);
+
+insert into table part_change_various_various_double partition(part=2)
+ values (5, 953967041., 62.0791539559013466, 718.78, 1, 203.199548118, -60, 6275638713485623898, -230, -695025, 0.00007011717, 4.28479948, 'new');
+
+insert into table part_change_various_various_double partition(part=1)
+ values (6, -1255178165.77663, 9043162437544575070.974, -4314.7918, -1240033819, 91, 1698.95, -100.3597812, -63, 0, -66475.0000008, -284799488.1, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_double order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_double order by insert_num;
+
+drop table part_change_various_various_double;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, STRING, CHAR, VARCHAR, TIMESTAMP) --> DECIMAL
+--
+CREATE TABLE part_change_various_various_decimal(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 STRING, c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_decimal partition(part=1)
+ values(1, -2999, 200, 72909, 3244222, -29.0764, 470614135, 470614135, '--1551801.09502', '--1551801.09502', '--1551801.09502', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, 0, 100, 483777, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '', '', '', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, -66475.561431, -66475.561431, '1', '1', '1', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488 ,9250340.75, 9250340.75, '2402.3', '2402.3', '2402.3', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_decimal order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_decimal replace columns (insert_num int, c1 DECIMAL(38,18), c2 DECIMAL(38,18), c3 DECIMAL(38,18), c4 DECIMAL(38,18), c5 DECIMAL(38,18), c6 DECIMAL(38,18), c7 DECIMAL(38,18), c8 DECIMAL(38,18), c9 DECIMAL(38,18), c10 DECIMAL(38,18), c11 DECIMAL(38,18), b STRING);
+
+insert into table part_change_various_various_decimal partition(part=2)
+ values (5, 953967041., 62.0791539559013466, 718.78, 1, 203.199548118, -60, 6275638713485623898, -230, -695025, 0.00007011717, 4.28479948, 'new');
+
+insert into table part_change_various_various_decimal partition(part=1)
+ values (6,-1255178165.77663, 9043162437544575070.974, -4314.7918, -1240033819, 91, 1698.95, -100.3597812, -63, 0, -66475.0000008, -284799488.1, 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_decimal order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,b from part_change_various_various_decimal order by insert_num;
+
+drop table part_change_various_various_decimal;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), CHAR, VARCHAR, TIMESTAMP, DATE, BINARY) --> STRING
+--
+CREATE TABLE part_change_various_various_string(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 CHAR(25), c10 VARCHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_string partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, c5 STRING, c6 STRING, c7 STRING, c8 STRING, c9 STRING, c10 STRING, c11 STRING, c12 STRING, c13 STRING, b STRING);
+
+insert into table part_change_various_various_string partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_string partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_string order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_string order by insert_num;
+
+drop table part_change_various_various_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, VARCHAR, TIMESTAMP, DATE, BINARY) --> CHAR
+--
+CREATE TABLE part_change_various_various_char(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 VARCHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_char partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_char replace columns (insert_num int, c1 CHAR(25), c2 CHAR(25), c3 CHAR(25), c4 CHAR(25), c5 CHAR(25), c6 CHAR(25), c7 CHAR(25), c8 CHAR(25), c9 CHAR(25), c10 CHAR(25), c11 CHAR(25), c12 CHAR(25), c13 CHAR(25), b STRING);
+
+insert into table part_change_various_various_char partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_char partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char order by insert_num;
+
+drop table part_change_various_various_char;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, VARCHAR, TIMESTAMP, DATE, BINARY) --> CHAR trunc
+--
+CREATE TABLE part_change_various_various_char_trunc(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 VARCHAR(8), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_char_trunc partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_char_trunc replace columns (insert_num int, c1 CHAR(8), c2 CHAR(8), c3 CHAR(8), c4 CHAR(8), c5 CHAR(8), c6 CHAR(8), c7 CHAR(8), c8 CHAR(8), c9 CHAR(8), c10 CHAR(8), c11 CHAR(8), c12 CHAR(8), c13 CHAR(8), b STRING);
+
+insert into table part_change_various_various_char_trunc partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_char_trunc partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_char_trunc order by insert_num;
+
+drop table part_change_various_various_char_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, CHAR, TIMESTAMP, DATE, BINARY) --> VARCHAR
+--
+CREATE TABLE part_change_various_various_varchar(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 CHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_varchar partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_varchar replace columns (insert_num int, c1 VARCHAR(25), c2 VARCHAR(25), c3 VARCHAR(25), c4 VARCHAR(25), c5 VARCHAR(25), c6 VARCHAR(25), c7 VARCHAR(25), c8 VARCHAR(25), c9 VARCHAR(25), c10 VARCHAR(25), c11 VARCHAR(25), c12 VARCHAR(25), c13 VARCHAR(25), b STRING);
+
+insert into table part_change_various_various_varchar partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_varchar partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar order by insert_num;
+
+drop table part_change_various_various_varchar;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, CHAR, TIMESTAMP, DATE, BINARY) --> VARCHAR trunc
+--
+CREATE TABLE part_change_various_various_varchar_trunc(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 CHAR(25), c11 TIMESTAMP, c12 DATE, c13 BINARY, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_varchar_trunc partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, 'dynamic reptile ', 'dynamic reptile ', '0004-09-22 18:26:29.519542222', '2007-02-09', 'binary', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, ' baffling ', ' baffling ', '2007-02-09 05:17:29.368756876', '0004-09-22', 'binary', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '1', '1', '6229-06-28 02:54:28.970117179', '5966-07-09', 'binary', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, 'junkyard', 'junkyard', '2002-05-10 05:29:48.990818073', '1815-05-06', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_varchar_trunc replace columns (insert_num int, c1 VARCHAR(8), c2 VARCHAR(8), c3 VARCHAR(8), c4 VARCHAR(8), c5 VARCHAR(8), c6 VARCHAR(8), c7 VARCHAR(8), c8 VARCHAR(8), c9 VARCHAR(8), c10 VARCHAR(8), c11 VARCHAR(8), c12 VARCHAR(8), c13 VARCHAR(8), b STRING);
+
+insert into table part_change_various_various_varchar_trunc partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'verdict', 'verdict', 'timestamp', 'date', 'binary', 'new');
+
+insert into table part_change_various_various_varchar_trunc partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', 'trial', 'trial', '2016-03-07 03:02:22.0', '2016-03-07', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar_trunc order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,b from part_change_various_various_varchar_trunc order by insert_num;
+
+drop table part_change_various_various_varchar_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (BOOLEAN, TINYINT, SMALLINT, INT, LONG, FLOAT, DOUBLE, DECIMAL(38,18), STRING, CHAR, VARCHAR, DATE) --> TIMESTAMP
+--
+CREATE TABLE part_change_various_various_timestamp(insert_num int, c1 BOOLEAN, c2 TINYINT, c3 SMALLINT, c4 INT, c5 BIGINT, c6 FLOAT, c7 DOUBLE, c8 DECIMAL(38,18), c9 STRING, c10 CHAR(25), c11 VARCHAR(25), c12 DATE, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_timestamp partition(part=1)
+ values(1, true, 200, 72909, 3244222, -99999999999, -29.0764, 470614135, 470614135, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '2007-02-09', 'original'),
+ (2, 0, 100, 483777, 14, -23866739993, -3651.672121, 46114.284799488, 46114.284799488, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '0004-09-22', 'original'),
+ (3, false, 72, 3244222, -93222, 30.774, - 66475.561431, -66475.561431, 0.561431, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '5966-07-09', 'original'),
+ (4, 1, -90, 754072151, 3289094, 46114.284799488, 9250340.75, 9250340.75, 9250340.75, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '1815-05-06', 'original');
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,b from part_change_various_various_timestamp order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_timestamp replace columns (insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, c6 TIMESTAMP, c7 TIMESTAMP, c8 TIMESTAMP, c9 TIMESTAMP, c10 TIMESTAMP, c11 TIMESTAMP, c12 TIMESTAMP, b STRING);
+
+insert into table part_change_various_various_timestamp partition(part=2)
+ values (5, 'true', '400', '44388', -'100', '953967041.', '62.079153', '718.78', '1', 'timestamp', 'timestamp', 'timestamp', 'date', 'new');
+
+insert into table part_change_various_various_timestamp partition(part=1)
+ values (6,-'false', '-67', '833', '63993', ' 1255178165.77663', '905070.974', '-4314.7918', -'1240033819', '2016-03-07 03:02:22.0', '2016-03-07 03:02:22.0', '2016-03-07 03:02:22.0', '2016-03-07', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,b from part_change_various_various_timestamp order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,b from part_change_various_various_timestamp order by insert_num;
+
+drop table part_change_various_various_timestamp;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (STRING, CHAR, VARCHAR, TIMESTAMP --> DATE
+--
+CREATE TABLE part_change_various_various_date(insert_num int, c1 STRING, c2 CHAR(25), c3 VARCHAR(25), c4 TIMESTAMP, b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_date partition(part=1)
+ values(1, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'original'),
+ (2, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'original'),
+ (3, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'original'),
+ (4, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'original');
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_various_various_date order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_date replace columns (insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, b STRING);
+
+insert into table part_change_various_various_date partition(part=2)
+ values (5, '2016-03-07', '2016-03-07', '2016-03-07', '2016-03-07', 'new');
+
+insert into table part_change_various_various_date partition(part=1)
+ values (6,-'2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10','new');
+
+explain
+select insert_num,part,c1,c2,c3,c4,b from part_change_various_various_date order by insert_num;
+
+select insert_num,part,c1,c2,c3,c4,b from part_change_various_various_date order by insert_num;
+
+drop table part_change_various_various_date;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for Various --> Various: (STRING, CHAR, VARCHAR) --> BINARY
+--
+CREATE TABLE part_change_various_various_binary(insert_num int, c1 STRING, c2 CHAR(25), c3 VARCHAR(25), b STRING) PARTITIONED BY(part INT);
+
+insert into table part_change_various_various_binary partition(part=1)
+ values(1, 'binary', 'binary', 'binary', 'original'),
+ (2, 'binary', 'binary', 'binary', 'original'),
+ (3, 'binary', 'binary', 'binary', 'original'),
+ (4, 'binary', 'binary', 'binary', 'original');
+
+select insert_num,part,c1,c2,c3,b from part_change_various_various_binary order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table part_change_various_various_binary replace columns (insert_num int, c1 BINARY, c2 BINARY, c3 BINARY, b STRING);
+
+insert into table part_change_various_various_binary partition(part=2)
+ values (5, 'binary', 'binary', 'binary', 'new');
+
+insert into table part_change_various_various_binary partition(part=1)
+ values (6,-'binary', 'binary', 'binary', 'new');
+
+explain
+select insert_num,part,c1,c2,c3,b from part_change_various_various_binary order by insert_num;
+
+select insert_num,part,c1,c2,c3,b from part_change_various_various_binary order by insert_num;
+
+drop table part_change_various_various_binary;
http://git-wip-us.apache.org/repos/asf/hive/blob/d5285d8e/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_table.q b/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_table.q
new file mode 100644
index 0000000..1028777
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/schema_evol_text_vec_mapwork_table.q
@@ -0,0 +1,826 @@
+set hive.explain.user=true;
+set hive.cli.print.header=true;
+SET hive.exec.schema.evolution=true;
+SET hive.vectorized.execution.enabled=true;
+SET hive.vectorized.use.vectorized.input.format=false;
+SET hive.vectorized.use.vector.serde.deserialize=true;
+SET hive.vectorized.use.row.serde.deserialize=false;
+set hive.fetch.task.conversion=none;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.metastore.disallow.incompatible.col.type.changes=true;
+set hive.default.fileformat=textfile;
+
+-- SORT_QUERY_RESULTS
+--
+-- FILE VARIATION: TEXTFILE, Non-Vectorized, MapWork, Table
+-- NOTE: the use of hive.vectorized.use.vector.serde.deserialize above which enables doing
+-- vectorized reading of TEXTFILE format files using the vector SERDE methods.
+--
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE ADD COLUMNS
+--
+--
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_permute_select(insert_num int, a INT, b STRING);
+DESCRIBE FORMATTED table_add_int_permute_select;
+
+insert into table table_add_int_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_permute_select add columns(c int);
+DESCRIBE FORMATTED table_add_int_permute_select;
+
+insert into table table_add_int_permute_select
+ values (5, 1, 'new', 10),
+ (6, 2, 'new', 20),
+ (7, 3, 'new', 30),
+ (8, 4, 'new', 40);
+
+insert into table table_add_int_permute_select
+ values (9, 5, 'new', 100),
+ (10, 6, 'new', 200);
+
+explain
+select insert_num,a,b from table_add_int_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_permute_select order by insert_num;
+select insert_num,a,b,c from table_add_int_permute_select order by insert_num;
+select insert_num,c from table_add_int_permute_select order by insert_num;
+
+drop table table_add_int_permute_select;
+
+
+-- SUBSECTION: ALTER TABLE ADD COLUMNS: INT, STRING, PERMUTE SELECT
+--
+--
+CREATE TABLE table_add_int_string_permute_select(insert_num int, a INT, b STRING);
+DESCRIBE FORMATTED table_add_int_string_permute_select;
+
+insert into table table_add_int_string_permute_select
+ values (1, 1, 'original'),
+ (2, 2, 'original'),
+ (3, 3, 'original'),
+ (4, 4, 'original');
+
+-- Table-Non-Cascade ADD COLUMNS ...
+alter table table_add_int_string_permute_select add columns(c int, d string);
+DESCRIBE FORMATTED table_add_int_string_permute_select;
+
+insert into table table_add_int_string_permute_select
+ values (5, 1, 'new', 10, 'ten'),
+ (6, 2, 'new', 20, 'twenty'),
+ (7, 3, 'new', 30, 'thirty'),
+ (8, 4, 'new', 40, 'forty');
+
+insert into table table_add_int_string_permute_select
+ values (9, 5, 'new', 100, 'hundred'),
+ (10, 6, 'new', 200, 'two hundred');
+
+explain
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num;
+
+-- SELECT permutation columns to make sure NULL defaulting works right
+select insert_num,a,b from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,b,c from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,b,c,d from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,c,d from table_add_int_string_permute_select order by insert_num;
+select insert_num,a,d from table_add_int_string_permute_select order by insert_num;
+select insert_num,c from table_add_int_string_permute_select order by insert_num;
+select insert_num,d from table_add_int_string_permute_select order by insert_num;
+
+drop table table_add_int_string_permute_select;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> DOUBLE: (STRING, CHAR, VARCHAR)
+--
+CREATE TABLE table_change_string_group_double(insert_num int, c1 STRING, c2 CHAR(50), c3 VARCHAR(50), b STRING);
+
+insert into table table_change_string_group_double
+ values (1, '753.7028', '753.7028', '753.7028', 'original'),
+ (2, '-3651.672121', '-3651.672121', '-3651.672121', 'original'),
+ (3, '-29.0764', '-29.0764', '-29.0764', 'original'),
+ (4, '-10.3', '-10.3', '-10.3', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_double replace columns (insert_num int, c1 DOUBLE, c2 DOUBLE, c3 DOUBLE, b STRING);
+
+insert into table table_change_string_group_double
+ values (5, 30.774, 30.774, 30.774, 'new'),
+ (6, 20.31, 20.31, 20.31, 'new'),
+ (7, 46114.284799488, 46114.284799488, 46114.284799488, 'new'),
+ (8, -66475.561431, -66475.561431, -66475.561431, 'new');
+
+insert into table table_change_string_group_double
+ values (9, 17808.963785, 17808.963785, 17808.963785, 'new'),
+ (10, 9250340.75 , 9250340.75 , 9250340.75 , 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_string_group_double order by insert_num;
+
+drop table table_change_string_group_double;
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: TIMESTAMP, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_timestamp(insert_num int, c1 TIMESTAMP, c2 TIMESTAMP, c3 TIMESTAMP, c4 TIMESTAMP, c5 TIMESTAMP, b STRING);
+
+insert into table table_change_date_group_string_group_timestamp
+ values (1, '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', '2000-12-18 08:42:30.000595596', 'original'),
+ (2, '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', '2024-11-11 16:42:41.101', 'original'),
+ (3, '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', '2021-09-24 03:18:32.413655165', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_timestamp replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);
+
+insert into table table_change_date_group_string_group_timestamp
+ values (4, '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', '0004-09-22 18:26:29.519542222', 'new'),
+ (5, '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', '1815-05-06 00:12:37.543584705', 'new'),
+ (6, '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', '2007-02-09 05:17:29.368756876', 'new'),
+ (7, '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', '2002-05-10 05:29:48.990818073', 'new');
+insert into table table_change_date_group_string_group_timestamp
+ values (8, '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', '6229-06-28 02:54:28.970117179', 'new'),
+ (9, '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', '5966-07-09 03:30:50.597', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_timestamp order by insert_num;
+
+drop table table_change_date_group_string_group_timestamp;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for DATE_GROUP -> STRING_GROUP: DATE, (STRING, CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_date_group_string_group_date(insert_num int, c1 DATE, c2 DATE, c3 DATE, c4 DATE, c5 DATE, b STRING);
+
+insert into table table_change_date_group_string_group_date
+ values (1, '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', '2000-12-18', 'original'),
+ (2, '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', '2024-11-11', 'original'),
+ (3, '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', '2021-09-24', 'original');
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_date_group_string_group_date replace columns(insert_num int, c1 STRING, c2 CHAR(50), c3 CHAR(15), c4 VARCHAR(50), c5 VARCHAR(15), b STRING);DESCRIBE FORMATTED table_change_date_group_string_group_date;
+
+insert into table table_change_date_group_string_group_date
+ values (4, '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', '0004-09-22', 'new'),
+ (5, '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', '1815-05-06', 'new'),
+ (6, '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', '2007-02-09', 'new'),
+ (7, '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', '2002-05-10', 'new'),
+ (8, '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', '6229-06-28', 'new'),
+ (9, '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', '5966-07-09', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_date_group_string_group_date order by insert_num;
+
+drop table table_change_date_group_string_group_date;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_string(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, c4 STRING, b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_string
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_string order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), c4 CHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_char
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_char_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_char_trunc replace columns (insert_num int, c1 CHAR(5), c2 CHAR(5), c3 CHAR(5), c4 CHAR(5), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_char_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_char_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_char_trunc;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_varchar(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), c4 VARCHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (TINYINT, SMALLINT, INT, BIGINT), VARCHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_multi_ints_varchar_trunc(insert_num int, c1 tinyint, c2 smallint, c3 int, c4 bigint, b STRING);
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar_trunc
+ values (1, 45, 1000, 483777, -23866739993, 'original'),
+ (2, -2, -6737, 56, 28899333, 'original'),
+ (3, -255, 4957, 832222222, 9000000000, 'original'),
+ (4, 0, 20435, 847492223, -999999999999, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_multi_ints_varchar_trunc replace columns (insert_num int, c1 VARCHAR(5), c2 VARCHAR(5), c3 VARCHAR(5), c4 VARCHAR(5), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_multi_ints_varchar_trunc
+ values (5, '2000', '72909', '3244222', '-93222', 'new'),
+ (6, '1', '200', '2323322', '5430907', 'new'),
+ (7, '256', '32768', '31889', '470614135', 'new'),
+ (8, '5555', '40000', '-719017797', '810662019', 'new'),
+ (9, '100', '5000', '5443', '0', 'new'),
+ (10, '17', '90000', '754072151', '3289094', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_numeric_group_string_group_multi_ints_varchar_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_multi_ints_varchar_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (FLOAT, DOUBLE, DECIMAL), STRING
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_string(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_string
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, - 832222222, 255, 4957,'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_string replace columns (insert_num int, c1 STRING, c2 STRING, c3 STRING, b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_string
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_string order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_string order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_string;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_char(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_char
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957,'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_char replace columns (insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_char
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_char;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), CHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_char_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_char_trunc
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 832222222, -255, 4957, 'original'),
+ (4, 847492223, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_char_trunc replace columns (insert_num int, c1 CHAR(7), c2 CHAR(7), c3 CHAR(7), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_char_trunc
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_char_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_char_trunc;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_varchar(insert_num int, c1 float, c2 double, c3 decimal(38,18), b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_varchar
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_varchar replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_varchar
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_varchar;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for NUMERIC_GROUP -> STRING_GROUP: (DECIMAL, FLOAT, DOUBLE), VARCHAR truncation
+--
+CREATE TABLE table_change_numeric_group_string_group_floating_varchar_trunc(insert_num int, c1 decimal(38,18), c2 float, c3 double, b STRING);
+
+insert into table table_change_numeric_group_string_group_floating_varchar_trunc
+ values (1, -23866739993, 753.7028, -3651.672121, 'original'),
+ (2, -10.3, -2, -29.0764, 'original'),
+ (3, 9000000000, -255, 4957, 'original'),
+ (4, -999999999999, 0, 20435, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_numeric_group_string_group_floating_varchar_trunc replace columns (insert_num int, c1 VARCHAR(7), c2 VARCHAR(7), c3 VARCHAR(7), b STRING) ;
+
+insert into table table_change_numeric_group_string_group_floating_varchar_trunc
+ values (5, '30.774', '20.31', '46114.284799488', 'new'),
+ (6, '-66475.561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_numeric_group_string_group_floating_varchar_trunc order by insert_num;
+
+drop table table_change_numeric_group_string_group_floating_varchar_trunc;
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: STRING, (CHAR, CHAR trunc, VARCHAR, VARCHAR trunc)
+--
+CREATE TABLE table_change_string_group_string_group_string(insert_num int, c1 string, c2 string, c3 string, c4 string, b STRING);
+
+insert into table table_change_string_group_string_group_string
+ values (1, 'escapist', 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_string_group_string_group_string order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_string_group_string replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 VARCHAR(50), c4 CHAR(9), b STRING) ;
+
+insert into table table_change_string_group_string_group_string
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'junkyard', 'new'),
+ (6, ' baffling ', ' baffling ', ' baffling ', ' baffling ', 'new'),
+ (7, ' featherweight ', ' featherweight ',' featherweight ',' featherweight ', 'new'),
+ (8, ' against', ' against', ' against', ' against', 'new'),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new'),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'bottom ', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_string_group_string_group_string order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_string_group_string_group_string order by insert_num;
+
+drop table table_change_string_group_string_group_string;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: CHAR, (VARCHAR, VARCHAR trunc, STRING)
+--
+CREATE TABLE table_change_string_group_string_group_char(insert_num int, c1 CHAR(50), c2 CHAR(50), c3 CHAR(50), b STRING);
+
+insert into table table_change_string_group_string_group_char
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_char order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_string_group_char replace columns (insert_num int, c1 VARCHAR(50), c2 VARCHAR(9), c3 STRING, b STRING) ;
+
+insert into table table_change_string_group_string_group_char
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new'),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new'),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new'),
+ (8, ' against', ' against', ' against', 'new'),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new'),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_char order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_char order by insert_num;
+
+drop table table_change_string_group_string_group_char;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for STRING_GROUP -> STRING_GROUP: VARCHAR, (CHAR, CHAR trunc, STRING)
+--
+CREATE TABLE table_change_string_group_string_group_varchar(insert_num int, c1 VARCHAR(50), c2 VARCHAR(50), c3 VARCHAR(50), b STRING);
+
+insert into table table_change_string_group_string_group_varchar
+ values (1, 'escapist', 'escapist', 'escapist', 'original'),
+ (2, 'heartbeat', 'heartbeat', 'heartbeat', 'original'),
+ (3, 'dynamic reptile', 'dynamic reptile', 'dynamic reptile', 'original'),
+ (4, 'blank pads ', 'blank pads ', 'blank pads ', 'original');
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_varchar order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_string_group_string_group_varchar replace columns (insert_num int, c1 CHAR(50), c2 CHAR(9), c3 STRING, b STRING) ;
+
+insert into table table_change_string_group_string_group_varchar
+ values (5, 'junkyard', 'junkyard', 'junkyard', 'new'),
+ (6, ' baffling ', ' baffling ', ' baffling ', 'new'),
+ (7, ' featherweight ', ' featherweight ',' featherweight ', 'new'),
+ (8, ' against', ' against', ' against', 'new'),
+ (9, 'hangar paralysed companion ', 'hangar paralysed companion ', 'hangar paralysed companion ', 'new'),
+ (10, 'bottom ', 'bottom ', 'bottom ', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_varchar order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_string_group_string_group_varchar order by insert_num;
+
+drop table table_change_string_group_string_group_varchar;
+
+
+
+------------------------------------------------------------------------------------------
+-- SECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP
+--
+--
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: TINYINT, (SMALLINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_tinyint(insert_num int, c1 tinyint, c2 tinyint, c3 tinyint, c4 tinyint, c5 tinyint, c6 tinyint, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_tinyint
+ values (1, 45, 45, 45, 45, 45, 45, 'original'),
+ (2, -2, -2, -2, -2, -2, -2, 'original'),
+ (3, -255, -255, -255, -255, -255, -255, 'original'),
+ (4, 100, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,c1,c2,c3,c4,c5,c6,b from table_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_tinyint replace columns (insert_num int, c1 SMALLINT, c2 INT, c3 BIGINT, c4 decimal(38,18), c5 FLOAT, c6 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_tinyint
+ values (5, '774', '2031', '200', '12', '99', '0', 'new'),
+ (6, '561431', '52927714', '7203778961', '8', '7', '6', 'new'),
+ (7, '256', '32768', '31889', '300', '444', '506', 'new'),
+ (8, '5555', '40000', '-719017797', '45', '55', '65', 'new'),
+ (9, '100', '5000', '5443', '22', '2', '-2', 'new'),
+ (10, '17', '90000', '754072151', '95', '20', '18', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,c6,b from table_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,c6,b from table_change_lower_to_higher_numeric_group_tinyint order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_tinyint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: SMALLINT, (INT, BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_smallint(insert_num int, c1 smallint, c2 smallint, c3 smallint, c4 smallint, c5 smallint, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_smallint
+ values (1, 2031, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, -5000, 'original'),
+ (4, 100, 100, 100, 100, 100, 'original');
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_smallint replace columns (insert_num int, c1 INT, c2 BIGINT, c3 decimal(38,18), c4 FLOAT, c5 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_smallint
+ values (5, '774', '2031', '200', '12', '99', 'new'),
+ (6, '561431', '52927714', '7203778961', '8', '7', 'new'),
+ (7, '256', '32768', '31889', '300', '444', 'new'),
+ (8, '5555', '40000', '-719017797', '45', '55', 'new'),
+ (9, '100', '5000', '5443', '22', '2', 'new'),
+ (10, '17', '90000', '754072151', '95', '20', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,c5,b from table_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+select insert_num,c1,c2,c3,c4,c5,b from table_change_lower_to_higher_numeric_group_smallint order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_smallint;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: INT, (BIGINT, DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_int(insert_num int, c1 int, c2 int, c3 int, c4 int, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_int
+ values (1, 2031, 2031, 2031, 2031, 'original'),
+ (2, -2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,c1,c2,c3,c4,b from table_change_lower_to_higher_numeric_group_int order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_int replace columns (insert_num int, c1 BIGINT, c2 decimal(38,18), c3 FLOAT, c4 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_int
+ values (5, '774', '2031', '200', '12', 'new'),
+ (6, '561431', '52927714', '7203778961', '8', 'new'),
+ (7, '256', '32768', '31889', '300', 'new'),
+ (8, '5555', '40000', '-719017797', '45', 'new'),
+ (9, '100', '5000', '5443', '22', 'new'),
+ (10, '17', '90000', '754072151', '95', 'new');
+
+explain
+select insert_num,c1,c2,c3,c4,b from table_change_lower_to_higher_numeric_group_int order by insert_num;
+
+select insert_num,c1,c2,c3,c4,b from table_change_lower_to_higher_numeric_group_int order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_int;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: BIGINT, (DECIMAL, FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_bigint(insert_num int, c1 bigint, c2 bigint, c3 bigint, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_bigint
+ values (1, 7203778961, 7203778961, 7203778961, 'original'),
+ (2, -2, -2, -2, 'original'),
+ (3, -5000, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 52927714, 'original');
+
+select insert_num,c1,c2,c3,b from table_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_bigint replace columns (insert_num int, c1 decimal(38,18), c2 FLOAT, c3 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_bigint
+ values (5, '774', '2031', '200', 'new'),
+ (6, '561431', '52927714', '7203778961', 'new'),
+ (7, '256', '32768', '31889', 'new'),
+ (8, '5555', '40000', '-719017797', 'new'),
+ (9, '100', '5000', '5443', 'new'),
+ (10, '17', '90000', '754072151', 'new');
+
+explain
+select insert_num,c1,c2,c3,b from table_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+select insert_num,c1,c2,c3,b from table_change_lower_to_higher_numeric_group_bigint order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_bigint;
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: DECIMAL, (FLOAT, DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_decimal(insert_num int, c1 decimal(38,18), c2 decimal(38,18), b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_decimal
+ values (1, -29.0764, -29.0764, 'original'),
+ (2, 753.7028, 753.7028, 'original'),
+ (3, -5000, -5000, 'original'),
+ (4, 52927714, 52927714, 'original');
+
+select insert_num,c1,c2,b from table_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_decimal replace columns (insert_num int, c1 float, c2 double, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_decimal
+ values (5, '7.74', '22.3', 'new'),
+ (6, '56.1431', '90.9', 'new'),
+ (7, '2.56', '25.6', 'new'),
+ (8, '555.5', '55.55', 'new'),
+ (9, '10.0', '0.100', 'new'),
+ (10, '1.7', '17.8888', 'new');
+
+explain
+select insert_num,c1,c2,b from table_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+select insert_num,c1,c2,b from table_change_lower_to_higher_numeric_group_decimal order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_decimal;
+
+
+
+--
+-- SUBSECTION: ALTER TABLE CHANGE COLUMNS for "lower" type to "higher" NUMERIC_GROUP: FLOAT, (DOUBLE)
+--
+CREATE TABLE table_change_lower_to_higher_numeric_group_float(insert_num int, c1 float, b STRING);
+
+insert into table table_change_lower_to_higher_numeric_group_float
+ values (1, -29.0764, 'original'),
+ (2, 753.7028, 'original'),
+ (3, -5000, 'original'),
+ (4, 52927714, 'original');
+
+select insert_num,c1,b from table_change_lower_to_higher_numeric_group_float order by insert_num;
+
+-- Table-Non-Cascade CHANGE COLUMNS ...
+alter table table_change_lower_to_higher_numeric_group_float replace columns (insert_num int, c1 DOUBLE, b STRING) ;
+
+insert into table table_change_lower_to_higher_numeric_group_float
+ values (5, '774', 'new'),
+ (6, '561431', 'new'),
+ (7, '256', 'new'),
+ (8, '5555', 'new'),
+ (9, '100', 'new'),
+ (10, '17', 'new');
+
+explain
+select insert_num,c1,b from table_change_lower_to_higher_numeric_group_float order by insert_num;
+
+select insert_num,c1,b from table_change_lower_to_higher_numeric_group_float order by insert_num;
+
+drop table table_change_lower_to_higher_numeric_group_float;
\ No newline at end of file