hive-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vihan...@apache.org
Subject [3/3] hive git commit: HIVE-18393 : Error returned when some other type is read as string from parquet tables (Janaki Lahorani via Vihang Karajgaonkar)
Date Tue, 23 Jan 2018 23:34:42 GMT
HIVE-18393 : Error returned when some other type is read as string from parquet tables (Janaki
Lahorani via Vihang Karajgaonkar)


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

Branch: refs/heads/master
Commit: 00e8826ba85f24b2bc47ae2e85664f4574732874
Parents: fff86f3
Author: Vihang Karajgaonkar <vihang@cloudera.com>
Authored: Tue Jan 23 15:10:03 2018 -0800
Committer: Vihang Karajgaonkar <vihang@cloudera.com>
Committed: Tue Jan 23 15:10:03 2018 -0800

----------------------------------------------------------------------
 .../serde/primitive/ParquetStringInspector.java |   25 +-
 .../queries/clientpositive/typechangetest.q     |  569 ++++
 .../results/clientpositive/typechangetest.q.out | 2540 ++++++++++++++++++
 .../WritableHiveCharObjectInspector.java        |   21 +-
 .../WritableHiveVarcharObjectInspector.java     |   27 +-
 5 files changed, 3168 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/00e8826b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/primitive/ParquetStringInspector.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/primitive/ParquetStringInspector.java
b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/primitive/ParquetStringInspector.java
index 64dd79e..dead324 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/primitive/ParquetStringInspector.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/primitive/ParquetStringInspector.java
@@ -16,13 +16,22 @@ package org.apache.hadoop.hive.ql.io.parquet.serde.primitive;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.CharacterCodingException;
 
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
+import org.apache.hadoop.hive.serde2.io.TimestampWritable;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaStringObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableStringObjectInspector;
 import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.Text;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.BooleanWritable;
 
 /**
- * The ParquetStringInspector inspects a BinaryWritable to give a Text or String.
+ * The ParquetStringInspector inspects a BytesWritable, TimestampWritable, HiveDecimalWritable,
+ * DoubleWritable, FloatWritable, LongWritable, IntWritable, and BooleanWritable to give
a Text
+ * or String.
  *
  */
 public class ParquetStringInspector extends JavaStringObjectInspector implements SettableStringObjectInspector
{
@@ -49,6 +58,13 @@ public class ParquetStringInspector extends JavaStringObjectInspector implements
       return new Text((String) o);
     }
 
+    if ((o instanceof TimestampWritable) || (o instanceof HiveDecimalWritable)
+        || (o instanceof DoubleWritable) || (o instanceof FloatWritable)
+        || (o instanceof LongWritable) || (o instanceof IntWritable)
+        || (o instanceof BooleanWritable)) {
+      return new Text(o.toString());
+    }
+
     throw new UnsupportedOperationException("Cannot inspect " + o.getClass().getCanonicalName());
   }
 
@@ -74,6 +90,13 @@ public class ParquetStringInspector extends JavaStringObjectInspector implements
       return (String) o;
     }
 
+    if ((o instanceof TimestampWritable) || (o instanceof HiveDecimalWritable)
+        || (o instanceof DoubleWritable) || (o instanceof FloatWritable)
+        || (o instanceof LongWritable) || (o instanceof IntWritable)
+        || (o instanceof BooleanWritable)) {
+      return (String) o.toString();
+    }
+
     throw new UnsupportedOperationException("Cannot inspect " + o.getClass().getCanonicalName());
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/00e8826b/ql/src/test/queries/clientpositive/typechangetest.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/typechangetest.q b/ql/src/test/queries/clientpositive/typechangetest.q
new file mode 100644
index 0000000..314fc8b
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/typechangetest.q
@@ -0,0 +1,569 @@
+
+-- Create a base table to be used for loading data: Begin
+drop table if exists testAltCol;
+create table testAltCol
+(cId        TINYINT,
+ cTimeStamp TIMESTAMP,
+ cDecimal   DECIMAL(38,18),
+ cDouble    DOUBLE,
+ cFloat     FLOAT,
+ cBigInt    BIGINT,
+ cInt       INT,
+ cSmallInt  SMALLINT,
+ cTinyint   TINYINT,
+ cBoolean   BOOLEAN);
+
+insert into testAltCol values
+(1,
+ '2017-11-07 09:02:49.999999999',
+ 12345678901234567890.123456789012345678,
+ 1.79e308,
+ 3.4e38,
+ 1234567890123456789,
+ 1234567890,
+ 12345,
+ 123,
+ TRUE);
+
+insert into testAltCol values
+(2,
+ '1400-01-01 01:01:01.000000001',
+ 1.1,
+ 2.2,
+ 3.3,
+ 1,
+ 2,
+ 3,
+ 4,
+ FALSE);
+
+insert into testAltCol values
+(3,
+ '1400-01-01 01:01:01.000000001',
+ 10.1,
+ 20.2,
+ 30.3,
+ 1234567890123456789,
+ 1234567890,
+ 12345,
+ 123,
+ TRUE);
+
+insert into testAltCol values
+(4,
+ '1400-01-01 01:01:01.000000001',
+ -10.1,
+ -20.2,
+ -30.3,
+ -1234567890123456789,
+ -1234567890,
+ -12345,
+ -123,
+ FALSE);
+
+select cId, cTimeStamp from testAltCol order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltCol order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltCol order by cId;
+select cId, cBoolean from testAltCol order by cId;
+-- Create a base table to be used for loading data: Begin
+
+-- Enable change of column type
+SET hive.metastore.disallow.incompatible.col.type.changes=false;
+
+-- Text type: Begin
+-- timestamp, decimal, double, float, bigint, int, smallint, tinyint and boolean: after type
+-- changed to string, varchar and char return correct data.
+drop table if exists testAltColT;
+
+create table testAltColT stored as textfile as select * from testAltCol;
+
+select cId, cTimeStamp from testAltColT order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColT order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColT order by cId;
+select cId, cBoolean from testAltColT order by cId;
+
+alter table testAltColT replace columns
+(cId        TINYINT,
+ cTimeStamp STRING,
+ cDecimal   STRING,
+ cDouble    STRING,
+ cFloat     STRING,
+ cBigInt    STRING,
+ cInt       STRING,
+ cSmallInt  STRING,
+ cTinyint   STRING,
+ cBoolean   STRING);
+
+select cId, cTimeStamp from testAltColT order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColT order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColT order by cId;
+select cId, cBoolean from testAltColT order by cId;
+
+alter table testAltColT replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(100),
+ cDecimal   VARCHAR(100),
+ cDouble    VARCHAR(100),
+ cFloat     VARCHAR(100),
+ cBigInt    VARCHAR(100),
+ cInt       VARCHAR(100),
+ cSmallInt  VARCHAR(100),
+ cTinyint   VARCHAR(100),
+ cBoolean   VARCHAR(100));
+
+select cId, cTimeStamp from testAltColT order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColT order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColT order by cId;
+select cId, cBoolean from testAltColT order by cId;
+
+alter table testAltColT replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(100),
+ cDecimal   CHAR(100),
+ cDouble    CHAR(100),
+ cFloat     CHAR(100),
+ cBigInt    CHAR(100),
+ cInt       CHAR(100),
+ cSmallInt  CHAR(100),
+ cTinyint   CHAR(100),
+ cBoolean   CHAR(100));
+
+select cId, cTimeStamp from testAltColT order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColT order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColT order by cId;
+select cId, cBoolean from testAltColT order by cId;
+
+alter table testAltColT replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(4),
+ cDecimal   VARCHAR(4),
+ cDouble    VARCHAR(4),
+ cFloat     VARCHAR(4),
+ cBigInt    VARCHAR(4),
+ cInt       VARCHAR(4),
+ cSmallInt  VARCHAR(4),
+ cTinyint   VARCHAR(4),
+ cBoolean   VARCHAR(4));
+
+select cId, cTimeStamp from testAltColT order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColT order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColT order by cId;
+select cId, cBoolean from testAltColT order by cId;
+
+alter table testAltColT replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(4),
+ cDecimal   CHAR(4),
+ cDouble    CHAR(4),
+ cFloat     CHAR(4),
+ cBigInt    CHAR(4),
+ cInt       CHAR(4),
+ cSmallInt  CHAR(4),
+ cTinyint   CHAR(4),
+ cBoolean   CHAR(4));
+
+select cId, cTimeStamp from testAltColT order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColT order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColT order by cId;
+select cId, cBoolean from testAltColT order by cId;
+drop table if exists testAltColT;
+-- Text type: End
+
+-- Sequence File type: Begin
+-- timestamp, decimal, double, float, bigint, int, smallint, tinyint and boolean: after type
+-- changed to string, varchar and char return correct data.
+drop table if exists testAltColSF;
+
+create table testAltColSF stored as sequencefile as select * from testAltCol;
+
+select cId, cTimeStamp from testAltColSF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColSF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColSF order by cId;
+select cId, cBoolean from testAltColSF order by cId;
+
+alter table testAltColSF replace columns
+(cId        TINYINT,
+ cTimeStamp STRING,
+ cDecimal   STRING,
+ cDouble    STRING,
+ cFloat     STRING,
+ cBigInt    STRING,
+ cInt       STRING,
+ cSmallInt  STRING,
+ cTinyint   STRING,
+ cBoolean   STRING);
+
+select cId, cTimeStamp from testAltColSF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColSF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColSF order by cId;
+select cId, cBoolean from testAltColSF order by cId;
+
+alter table testAltColSF replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(100),
+ cDecimal   VARCHAR(100),
+ cDouble    VARCHAR(100),
+ cFloat     VARCHAR(100),
+ cBigInt    VARCHAR(100),
+ cInt       VARCHAR(100),
+ cSmallInt  VARCHAR(100),
+ cTinyint   VARCHAR(100),
+ cBoolean   VARCHAR(100));
+
+select cId, cTimeStamp from testAltColSF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColSF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColSF order by cId;
+select cId, cBoolean from testAltColSF order by cId;
+
+alter table testAltColSF replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(100),
+ cDecimal   CHAR(100),
+ cDouble    CHAR(100),
+ cFloat     CHAR(100),
+ cBigInt    CHAR(100),
+ cInt       CHAR(100),
+ cSmallInt  CHAR(100),
+ cTinyint   CHAR(100),
+ cBoolean   CHAR(100));
+
+select cId, cTimeStamp from testAltColSF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColSF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColSF order by cId;
+select cId, cBoolean from testAltColSF order by cId;
+
+alter table testAltColSF replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(4),
+ cDecimal   VARCHAR(4),
+ cDouble    VARCHAR(4),
+ cFloat     VARCHAR(4),
+ cBigInt    VARCHAR(4),
+ cInt       VARCHAR(4),
+ cSmallInt  VARCHAR(4),
+ cTinyint   VARCHAR(4),
+ cBoolean   VARCHAR(4));
+
+select cId, cTimeStamp from testAltColSF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColSF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColSF order by cId;
+select cId, cBoolean from testAltColSF order by cId;
+
+alter table testAltColSF replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(4),
+ cDecimal   CHAR(4),
+ cDouble    CHAR(4),
+ cFloat     CHAR(4),
+ cBigInt    CHAR(4),
+ cInt       CHAR(4),
+ cSmallInt  CHAR(4),
+ cTinyint   CHAR(4),
+ cBoolean   CHAR(4));
+
+select cId, cTimeStamp from testAltColSF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColSF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColSF order by cId;
+select cId, cBoolean from testAltColSF order by cId;
+
+drop table if exists testAltColSF;
+-- Sequence File type: End
+
+-- ORC type: Begin
+-- timestamp, decimal, double, float, bigint, int, smallint, tinyint and boolean: after type
+-- changed to string, varchar and char return correct data.
+drop table if exists testAltColORC;
+
+create table testAltColORC stored as orc as select * from testAltCol;
+
+select cId, cTimeStamp from testAltColORC order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColORC order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColORC order by cId;
+select cId, cBoolean from testAltColORC order by cId;
+
+alter table testAltColORC replace columns
+(cId        TINYINT,
+ cTimeStamp STRING,
+ cDecimal   STRING,
+ cDouble    STRING,
+ cFloat     STRING,
+ cBigInt    STRING,
+ cInt       STRING,
+ cSmallInt  STRING,
+ cTinyint   STRING,
+ cBoolean   STRING);
+
+select cId, cTimeStamp from testAltColORC order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColORC order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColORC order by cId;
+select cId, cBoolean from testAltColORC order by cId;
+
+alter table testAltColORC replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(100),
+ cDecimal   VARCHAR(100),
+ cDouble    VARCHAR(100),
+ cFloat     VARCHAR(100),
+ cBigInt    VARCHAR(100),
+ cInt       VARCHAR(100),
+ cSmallInt  VARCHAR(100),
+ cTinyint   VARCHAR(100),
+ cBoolean   VARCHAR(100));
+
+select cId, cTimeStamp from testAltColORC order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColORC order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColORC order by cId;
+select cId, cBoolean from testAltColORC order by cId;
+
+alter table testAltColORC replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(100),
+ cDecimal   CHAR(100),
+ cDouble    CHAR(100),
+ cFloat     CHAR(100),
+ cBigInt    CHAR(100),
+ cInt       CHAR(100),
+ cSmallInt  CHAR(100),
+ cTinyint   CHAR(100),
+ cBoolean   CHAR(100));
+
+select cId, cTimeStamp from testAltColORC order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColORC order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColORC order by cId;
+select cId, cBoolean from testAltColORC order by cId;
+
+alter table testAltColORC replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(4),
+ cDecimal   VARCHAR(4),
+ cDouble    VARCHAR(4),
+ cFloat     VARCHAR(4),
+ cBigInt    VARCHAR(4),
+ cInt       VARCHAR(4),
+ cSmallInt  VARCHAR(4),
+ cTinyint   VARCHAR(4),
+ cBoolean   VARCHAR(4));
+
+select cId, cTimeStamp from testAltColORC order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColORC order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColORC order by cId;
+select cId, cBoolean from testAltColORC order by cId;
+
+alter table testAltColORC replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(4),
+ cDecimal   CHAR(4),
+ cDouble    CHAR(4),
+ cFloat     CHAR(4),
+ cBigInt    CHAR(4),
+ cInt       CHAR(4),
+ cSmallInt  CHAR(4),
+ cTinyint   CHAR(4),
+ cBoolean   CHAR(4));
+
+select cId, cTimeStamp from testAltColORC order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColORC order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColORC order by cId;
+select cId, cBoolean from testAltColORC order by cId;
+
+drop table if exists testAltColORC;
+-- ORC type: End
+
+-- RCFile type: Begin
+-- timestamp, decimal, double, float, bigint, int, smallint, tinyint and boolean: after type
+-- changed to string, varchar and char return correct data.
+drop table if exists testAltColRCF;
+
+create table testAltColRCF stored as rcfile as select * from testAltCol;
+
+select cId, cTimeStamp from testAltColRCF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColRCF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColRCF order by cId;
+select cId, cBoolean from testAltColRCF order by cId;
+
+alter table testAltColRCF replace columns
+(cId        TINYINT,
+ cTimeStamp STRING,
+ cDecimal   STRING,
+ cDouble    STRING,
+ cFloat     STRING,
+ cBigInt    STRING,
+ cInt       STRING,
+ cSmallInt  STRING,
+ cTinyint   STRING,
+ cBoolean   STRING);
+
+select cId, cTimeStamp from testAltColRCF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColRCF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColRCF order by cId;
+select cId, cBoolean from testAltColRCF order by cId;
+
+alter table testAltColRCF replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(100),
+ cDecimal   VARCHAR(100),
+ cDouble    VARCHAR(100),
+ cFloat     VARCHAR(100),
+ cBigInt    VARCHAR(100),
+ cInt       VARCHAR(100),
+ cSmallInt  VARCHAR(100),
+ cTinyint   VARCHAR(100),
+ cBoolean   VARCHAR(100));
+
+select cId, cTimeStamp from testAltColRCF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColRCF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColRCF order by cId;
+select cId, cBoolean from testAltColRCF order by cId;
+
+alter table testAltColRCF replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(100),
+ cDecimal   CHAR(100),
+ cDouble    CHAR(100),
+ cFloat     CHAR(100),
+ cBigInt    CHAR(100),
+ cInt       CHAR(100),
+ cSmallInt  CHAR(100),
+ cTinyint   CHAR(100),
+ cBoolean   CHAR(100));
+
+select cId, cTimeStamp from testAltColRCF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColRCF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColRCF order by cId;
+select cId, cBoolean from testAltColRCF order by cId;
+
+alter table testAltColRCF replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(4),
+ cDecimal   VARCHAR(4),
+ cDouble    VARCHAR(4),
+ cFloat     VARCHAR(4),
+ cBigInt    VARCHAR(4),
+ cInt       VARCHAR(4),
+ cSmallInt  VARCHAR(4),
+ cTinyint   VARCHAR(4),
+ cBoolean   VARCHAR(4));
+
+select cId, cTimeStamp from testAltColRCF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColRCF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColRCF order by cId;
+select cId, cBoolean from testAltColRCF order by cId;
+
+alter table testAltColRCF replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(4),
+ cDecimal   CHAR(4),
+ cDouble    CHAR(4),
+ cFloat     CHAR(4),
+ cBigInt    CHAR(4),
+ cInt       CHAR(4),
+ cSmallInt  CHAR(4),
+ cTinyint   CHAR(4),
+ cBoolean   CHAR(4));
+
+select cId, cTimeStamp from testAltColRCF order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColRCF order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColRCF order by cId;
+select cId, cBoolean from testAltColRCF order by cId;
+
+drop table if exists testAltColRCF;
+-- RCFile type: End
+
+-- Parquet type: Begin
+drop table if exists testAltColP;
+create table testAltColP stored as parquet as select * from testAltCol;
+
+select cId, cTimeStamp from testAltColP order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColP order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId;
+select cId, cBoolean from testAltColP order by cId;
+
+alter table testAltColP replace columns
+(cId        TINYINT,
+ cTimeStamp STRING,
+ cDecimal   STRING,
+ cDouble    STRING,
+ cFloat     STRING,
+ cBigInt    STRING,
+ cInt       STRING,
+ cSmallInt  STRING,
+ cTinyint   STRING,
+ cBoolean   STRING);
+
+select cId, cTimeStamp from testAltColP order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColP order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId;
+select cId, cBoolean from testAltColP order by cId;
+
+alter table testAltColP replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(100),
+ cDecimal   VARCHAR(100),
+ cDouble    VARCHAR(100),
+ cFloat     VARCHAR(100),
+ cBigInt    VARCHAR(100),
+ cInt       VARCHAR(100),
+ cSmallInt  VARCHAR(100),
+ cTinyint   VARCHAR(100),
+ cBoolean   VARCHAR(100));
+
+select cId, cTimeStamp from testAltColP order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColP order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId;
+select cId, cBoolean from testAltColP order by cId;
+
+alter table testAltColP replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(100),
+ cDecimal   CHAR(100),
+ cDouble    CHAR(100),
+ cFloat     CHAR(100),
+ cBigInt    CHAR(100),
+ cInt       CHAR(100),
+ cSmallInt  CHAR(100),
+ cTinyint   CHAR(100),
+ cBoolean   CHAR(100));
+
+select cId, cTimeStamp from testAltColP order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColP order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId;
+select cId, cBoolean from testAltColP order by cId;
+
+alter table testAltColP replace columns
+(cId        TINYINT,
+ cTimeStamp VARCHAR(4),
+ cDecimal   VARCHAR(4),
+ cDouble    VARCHAR(4),
+ cFloat     VARCHAR(4),
+ cBigInt    VARCHAR(4),
+ cInt       VARCHAR(4),
+ cSmallInt  VARCHAR(4),
+ cTinyint   VARCHAR(4),
+ cBoolean   VARCHAR(4));
+
+select cId, cTimeStamp from testAltColP order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColP order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId;
+select cId, cBoolean from testAltColP order by cId;
+
+alter table testAltColP replace columns
+(cId        TINYINT,
+ cTimeStamp CHAR(4),
+ cDecimal   CHAR(4),
+ cDouble    CHAR(4),
+ cFloat     CHAR(4),
+ cBigInt    CHAR(4),
+ cInt       CHAR(4),
+ cSmallInt  CHAR(4),
+ cTinyint   CHAR(4),
+ cBoolean   CHAR(4));
+
+select cId, cTimeStamp from testAltColP order by cId;
+select cId, cDecimal, cDouble, cFloat from testAltColP order by cId;
+select cId, cBigInt, cInt, cSmallInt, cTinyint from testAltColP order by cId;
+select cId, cBoolean from testAltColP order by cId;
+
+drop table if exists testAltColP;
+-- Parquet type: End
+
+drop table if exists testAltCol;
\ No newline at end of file


Mime
View raw message