commit bbd017b49bed252e7540400038ffb529885cd254 Author: Vihang Karajgaonkar Date: Thu May 10 08:25:53 2018 -0700 HIVE-19108 : Vectorization and Parquet: Turning on vectorization in parquet_ppd_decimal.q causes Wrong Query Results (Haifeng Chen reviewed by Matt McCline and Vihang Karajgaonkar) diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToFloat.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToFloat.java new file mode 100644 index 0000000000000000000000000000000000000000..4ef54227786898f906c7b14b0fb896a7c76e1011 --- /dev/null +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToFloat.java @@ -0,0 +1,43 @@ +/* + * 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.expressions; + +import org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector; +import org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector; + +/** + * Cast a decimal to float based on decimal to double function. + * + */ +public class CastDecimalToFloat extends FuncDecimalToDouble { + + private static final long serialVersionUID = 1L; + + public CastDecimalToFloat() { + super(); + } + + public CastDecimalToFloat(int inputCol, int outputColumnNum) { + super(inputCol, outputColumnNum); + } + + protected void func(DoubleColumnVector outV, DecimalColumnVector inV, int i) { + outV.vector[i] = inV.vector[i].floatValue(); + } +} diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java index fd49d1f5d12326eb16bf7403941b790dc7c2929f..2872ff2edb041b738a172d40e57fdd4a6410a3d5 100755 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java @@ -20,7 +20,7 @@ import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions; -import org.apache.hadoop.hive.ql.exec.vector.expressions.CastDecimalToDouble; +import org.apache.hadoop.hive.ql.exec.vector.expressions.CastDecimalToFloat; import org.apache.hadoop.hive.ql.exec.vector.expressions.CastStringToFloat; import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastLongToFloatViaLongToDouble; import org.apache.hadoop.hive.ql.exec.vector.expressions.CastTimestampToDouble; @@ -42,7 +42,7 @@ * */ @VectorizedExpressions({CastTimestampToDouble.class, CastLongToFloatViaLongToDouble.class, - CastDecimalToDouble.class, CastStringToFloat.class}) + CastDecimalToFloat.class, CastStringToFloat.class}) public class UDFToFloat extends UDF { private final FloatWritable floatWritable = new FloatWritable(); diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java index 3f17d4cb1995da4f48f816a18979fb80893fedfa..8499da6d005d42d61d0a7817cb15734722861d07 100644 --- a/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java +++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java @@ -379,6 +379,54 @@ private VectorizedRowBatch getBatchDecimalDouble() { } @Test + public void testCastDecimalToFloat() throws HiveException { + + final double eps = 0.00000000000001d; // tolerance to check float equality + + double f1 = HiveDecimal.create("1.1").floatValue(); + double f2 = HiveDecimal.create("-2.2").floatValue(); + double f3 = HiveDecimal.create("9999999999999999.00").floatValue(); + + // test basic case + VectorizedRowBatch b = getBatchDecimalDouble(); + VectorExpression expr = new CastDecimalToFloat(0, 1); + expr.evaluate(b); + DoubleColumnVector r = (DoubleColumnVector) b.cols[1]; + assertEquals(f1, r.vector[0], eps); + assertEquals(f2, r.vector[1], eps); + assertEquals(f3, r.vector[2], eps); + + // test with nulls in input + b = getBatchDecimalDouble(); + b.cols[0].noNulls = false; + b.cols[0].isNull[1] = true; + expr.evaluate(b); + r = (DoubleColumnVector) b.cols[1]; + assertFalse(r.noNulls); + assertTrue(r.isNull[1]); + assertFalse(r.isNull[0]); + assertEquals(f1, r.vector[0], eps); + + // test repeating case + b = getBatchDecimalDouble(); + b.cols[0].isRepeating = true; + expr.evaluate(b); + r = (DoubleColumnVector) b.cols[1]; + assertTrue(r.isRepeating); + assertEquals(f1, r.vector[0], eps); + + // test repeating nulls case + b = getBatchDecimalDouble(); + b.cols[0].isRepeating = true; + b.cols[0].noNulls = false; + b.cols[0].isNull[0] = true; + expr.evaluate(b); + r = (DoubleColumnVector) b.cols[1]; + assertTrue(r.isRepeating); + assertTrue(r.isNull[0]); + } + + @Test public void testCastDecimalToString() throws HiveException { VectorizedRowBatch b = getBatchDecimalString(); VectorExpression expr = new CastDecimalToString(0, 1); diff --git a/ql/src/test/queries/clientpositive/parquet_ppd_decimal.q b/ql/src/test/queries/clientpositive/parquet_ppd_decimal.q index ade49a3e4160b9bb3b61f12b346910ae7ea289c7..812732bcf626527ac3d4fd93eecee70a1efcb92f 100644 --- a/ql/src/test/queries/clientpositive/parquet_ppd_decimal.q +++ b/ql/src/test/queries/clientpositive/parquet_ppd_decimal.q @@ -1,4 +1,3 @@ --- Suppress vectorization due to known bug. See HIVE-19108. set hive.vectorized.execution.enabled=false; set hive.test.vectorized.execution.enabled.override=disable; diff --git a/ql/src/test/queries/clientpositive/vectorization_parquet_ppd_decimal.q b/ql/src/test/queries/clientpositive/vectorization_parquet_ppd_decimal.q new file mode 100644 index 0000000000000000000000000000000000000000..4bc8f2f901136bdd6c7c3efc0eefbcea43935e46 --- /dev/null +++ b/ql/src/test/queries/clientpositive/vectorization_parquet_ppd_decimal.q @@ -0,0 +1,169 @@ +--! qt:dataset:src1 +--! qt:dataset:src +set hive.vectorized.execution.enabled=true; +set hive.test.vectorized.execution.enabled.override=enable; + +SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; +SET mapred.min.split.size=1000; +SET mapred.max.split.size=5000; +set hive.llap.cache.allow.synthetic.fileid=true; + +create table newtypestbl(c char(10), v varchar(10), d decimal(5,3), da date) stored as parquet; + +insert overwrite table newtypestbl select * from (select cast("apple" as char(10)), cast("bee" as varchar(10)), 0.22, cast("1970-02-20" as date) from src src1 union all select cast("hello" as char(10)), cast("world" as varchar(10)), 11.22, cast("1970-02-27" as date) from src src2 limit 10) uniontbl; + +-- decimal data types (EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_EQUALS, IN, BETWEEN tests) +select * from newtypestbl where d=0.22; + +set hive.optimize.index.filter=true; +select * from newtypestbl where d=0.22; + +set hive.optimize.index.filter=false; +select * from newtypestbl where d='0.22'; + +set hive.optimize.index.filter=true; +select * from newtypestbl where d='0.22'; + +set hive.optimize.index.filter=false; +select * from newtypestbl where d=cast('0.22' as float); + +set hive.optimize.index.filter=true; +select * from newtypestbl where d=cast('0.22' as float); + +set hive.optimize.index.filter=false; +select * from newtypestbl where d!=0.22; + +set hive.optimize.index.filter=true; +select * from newtypestbl where d!=0.22; + +set hive.optimize.index.filter=false; +select * from newtypestbl where d!='0.22'; + +set hive.optimize.index.filter=true; +select * from newtypestbl where d!='0.22'; + +set hive.optimize.index.filter=false; +select * from newtypestbl where d!=cast('0.22' as float); + +set hive.optimize.index.filter=true; +select * from newtypestbl where d!=cast('0.22' as float); + +set hive.optimize.index.filter=false; +select * from newtypestbl where d<11.22; + +set hive.optimize.index.filter=true; +select * from newtypestbl where d<11.22; + +set hive.optimize.index.filter=false; +select * from newtypestbl where d<'11.22'; + +set hive.optimize.index.filter=true; +select * from newtypestbl where d<'11.22'; + +set hive.optimize.index.filter=false; +select * from newtypestbl where d 4:float + selectExpressions: CastDecimalToFloat(col 0:decimal(4,2)) -> 4:float Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: float) diff --git a/ql/src/test/results/clientpositive/llap/vector_decimal_2.q.out b/ql/src/test/results/clientpositive/llap/vector_decimal_2.q.out index bc596b3226d11dddb27b7becc5f259e38db3962c..bdb84bcf914c64adfe88f4901413af76687246ef 100644 --- a/ql/src/test/results/clientpositive/llap/vector_decimal_2.q.out +++ b/ql/src/test/results/clientpositive/llap/vector_decimal_2.q.out @@ -131,11 +131,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as boolean) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as boolean) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### true PREHOOK: query: explain vectorization detail select cast(t as tinyint) from decimal_2 order by t @@ -247,11 +247,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as tinyint) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as tinyint) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 17 PREHOOK: query: explain vectorization detail select cast(t as smallint) from decimal_2 order by t @@ -363,11 +363,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as smallint) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as smallint) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 17 PREHOOK: query: explain vectorization detail select cast(t as int) from decimal_2 order by t @@ -479,11 +479,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as int) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as int) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 17 PREHOOK: query: explain vectorization detail select cast(t as bigint) from decimal_2 order by t @@ -595,11 +595,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as bigint) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as bigint) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 17 PREHOOK: query: explain vectorization detail select cast(t as float) from decimal_2 order by t @@ -638,7 +638,7 @@ STAGE PLANS: className: VectorSelectOperator native: true projectedOutputColumnNums: [2] - selectExpressions: CastDecimalToDouble(col 0:decimal(18,9)) -> 2:float + selectExpressions: CastDecimalToFloat(col 0:decimal(18,9)) -> 2:float Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: float) @@ -711,11 +711,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as float) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as float) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 17.29 PREHOOK: query: explain vectorization detail select cast(t as double) from decimal_2 order by t @@ -827,11 +827,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as double) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as double) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 17.29 PREHOOK: query: explain vectorization detail select cast(t as string) from decimal_2 order by t @@ -943,11 +943,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as string) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as string) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 17.29 PREHOOK: query: insert overwrite table decimal_2 select cast('3404045.5044003' as decimal(18,9)) from src tablesample (1 rows) @@ -1070,11 +1070,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as boolean) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as boolean) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### true PREHOOK: query: explain vectorization detail select cast(t as tinyint) from decimal_2 order by t @@ -1186,11 +1186,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as tinyint) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as tinyint) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### NULL PREHOOK: query: explain vectorization detail select cast(t as smallint) from decimal_2 order by t @@ -1302,11 +1302,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as smallint) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as smallint) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### NULL PREHOOK: query: explain vectorization detail select cast(t as int) from decimal_2 order by t @@ -1418,11 +1418,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as int) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as int) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3404045 PREHOOK: query: explain vectorization detail select cast(t as bigint) from decimal_2 order by t @@ -1534,11 +1534,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as bigint) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as bigint) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3404045 PREHOOK: query: explain vectorization detail select cast(t as float) from decimal_2 order by t @@ -1577,7 +1577,7 @@ STAGE PLANS: className: VectorSelectOperator native: true projectedOutputColumnNums: [2] - selectExpressions: CastDecimalToDouble(col 0:decimal(18,9)) -> 2:float + selectExpressions: CastDecimalToFloat(col 0:decimal(18,9)) -> 2:float Statistics: Num rows: 1 Data size: 4 Basic stats: COMPLETE Column stats: COMPLETE Reduce Output Operator key expressions: _col0 (type: float) @@ -1650,11 +1650,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as float) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as float) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3404045.5 PREHOOK: query: explain vectorization detail select cast(t as double) from decimal_2 order by t @@ -1766,11 +1766,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as double) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as double) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3404045.5044003 PREHOOK: query: explain vectorization detail select cast(t as string) from decimal_2 order by t @@ -1882,11 +1882,11 @@ STAGE PLANS: PREHOOK: query: select cast(t as string) from decimal_2 order by t PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(t as string) from decimal_2 order by t POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3404045.5044003 PREHOOK: query: explain vectorization detail select cast(3.14 as decimal(4,2)) as c from decimal_2 order by c @@ -1961,11 +1961,11 @@ STAGE PLANS: PREHOOK: query: select cast(3.14 as decimal(4,2)) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(3.14 as decimal(4,2)) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3.14 PREHOOK: query: explain vectorization detail select cast(cast(3.14 as float) as decimal(4,2)) as c from decimal_2 order by c @@ -2040,11 +2040,11 @@ STAGE PLANS: PREHOOK: query: select cast(cast(3.14 as float) as decimal(4,2)) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(cast(3.14 as float) as decimal(4,2)) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3.14 PREHOOK: query: explain vectorization detail select cast(cast('2012-12-19 11:12:19.1234567' as timestamp) as decimal(30,8)) as c from decimal_2 order by c @@ -2119,11 +2119,11 @@ STAGE PLANS: PREHOOK: query: select cast(cast('2012-12-19 11:12:19.1234567' as timestamp) as decimal(30,8)) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(cast('2012-12-19 11:12:19.1234567' as timestamp) as decimal(30,8)) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 1355944339.12345670 PREHOOK: query: explain vectorization detail select cast(true as decimal) as c from decimal_2 order by c @@ -2268,11 +2268,11 @@ STAGE PLANS: PREHOOK: query: select cast(true as decimal) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(true as decimal) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 1 PREHOOK: query: explain vectorization detail select cast(3Y as decimal) as c from decimal_2 order by c @@ -2347,11 +2347,11 @@ STAGE PLANS: PREHOOK: query: select cast(3Y as decimal) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(3Y as decimal) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3 PREHOOK: query: explain vectorization detail select cast(3S as decimal) as c from decimal_2 order by c @@ -2426,11 +2426,11 @@ STAGE PLANS: PREHOOK: query: select cast(3S as decimal) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(3S as decimal) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3 PREHOOK: query: explain vectorization detail select cast(cast(3 as int) as decimal) as c from decimal_2 order by c @@ -2505,11 +2505,11 @@ STAGE PLANS: PREHOOK: query: select cast(cast(3 as int) as decimal) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(cast(3 as int) as decimal) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3 PREHOOK: query: explain vectorization detail select cast(3L as decimal) as c from decimal_2 order by c @@ -2584,11 +2584,11 @@ STAGE PLANS: PREHOOK: query: select cast(3L as decimal) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(3L as decimal) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 3 PREHOOK: query: explain vectorization detail select cast(0.99999999999999999999 as decimal(20,19)) as c from decimal_2 order by c @@ -2663,11 +2663,11 @@ STAGE PLANS: PREHOOK: query: select cast(0.99999999999999999999 as decimal(20,19)) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast(0.99999999999999999999 as decimal(20,19)) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 1.0000000000000000000 PREHOOK: query: explain vectorization detail select cast('0.99999999999999999999' as decimal(20,20)) as c from decimal_2 order by c @@ -2742,11 +2742,11 @@ STAGE PLANS: PREHOOK: query: select cast('0.99999999999999999999' as decimal(20,20)) as c from decimal_2 order by c PREHOOK: type: QUERY PREHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +PREHOOK: Output: hdfs://### HDFS PATH ### POSTHOOK: query: select cast('0.99999999999999999999' as decimal(20,20)) as c from decimal_2 order by c POSTHOOK: type: QUERY POSTHOOK: Input: default@decimal_2 -#### A masked pattern was here #### +POSTHOOK: Output: hdfs://### HDFS PATH ### 0.99999999999999999999 PREHOOK: query: drop table decimal_2 PREHOOK: type: DROPTABLE diff --git a/ql/src/test/results/clientpositive/llap/vector_decimal_expressions.q.out b/ql/src/test/results/clientpositive/llap/vector_decimal_expressions.q.out index 64433ea590917f9891cb23013ce5ab1bbbba984b..2ddc05e9883eecb0632541bbc9c904e9a11f6101 100644 --- a/ql/src/test/results/clientpositive/llap/vector_decimal_expressions.q.out +++ b/ql/src/test/results/clientpositive/llap/vector_decimal_expressions.q.out @@ -76,7 +76,7 @@ STAGE PLANS: className: VectorSelectOperator native: true projectedOutputColumnNums: [4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] - selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(20,10), col 2:decimal(23,14)) -> 4:decimal(25,14), DecimalColSubtractDecimalColumn(col 1:decimal(20,10), col 5:decimal(25,14))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(23,14)) -> 5:decimal(25,14)) -> 6:decimal(26,14), DecimalColDivideDecimalColumn(col 7:decimal(21,10), col 2:decimal(23,14))(children: DecimalColAddDecimalScalar(col 1:decimal(20,10), val 2.34) -> 7:decimal(21,10)) -> 8:decimal(38,13), DecimalColMultiplyDecimalColumn(col 1:decimal(20,10), col 9:decimal(27,17))(children: DecimalColDivideDecimalScalar(col 2:decimal(23,14), val 3.4) -> 9:decimal(27,17)) -> 10:decimal(38,17), DecimalColModuloDecimalScalar(col 1:decimal(20,10), val 10) -> 11:decimal(12,10), CastDecimalToLong(col 1:decimal(20,10)) -> 12:int, CastDecimalToLong(col 2:decimal(23,14)) -> 13:smallint, CastDecimalToLong(col 2:decimal(23,14)) -> 14:tinyint, CastDecimalToLong(col 1:decimal(20,10)) -> 15:bigint, CastDecimalToBoolean(col 1:decimal(20,10)) -> 16:boolean, CastDecimalToDouble(col 2:decimal(23,14)) -> 17:double, CastDecimalToDouble(col 1:decimal(20,10)) -> 18:float, CastDecimalToString(col 2:decimal(23,14)) -> 19:string, CastDecimalToTimestamp(col 1:decimal(20,10)) -> 20:timestamp + selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(20,10), col 2:decimal(23,14)) -> 4:decimal(25,14), DecimalColSubtractDecimalColumn(col 1:decimal(20,10), col 5:decimal(25,14))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(23,14)) -> 5:decimal(25,14)) -> 6:decimal(26,14), DecimalColDivideDecimalColumn(col 7:decimal(21,10), col 2:decimal(23,14))(children: DecimalColAddDecimalScalar(col 1:decimal(20,10), val 2.34) -> 7:decimal(21,10)) -> 8:decimal(38,13), DecimalColMultiplyDecimalColumn(col 1:decimal(20,10), col 9:decimal(27,17))(children: DecimalColDivideDecimalScalar(col 2:decimal(23,14), val 3.4) -> 9:decimal(27,17)) -> 10:decimal(38,17), DecimalColModuloDecimalScalar(col 1:decimal(20,10), val 10) -> 11:decimal(12,10), CastDecimalToLong(col 1:decimal(20,10)) -> 12:int, CastDecimalToLong(col 2:decimal(23,14)) -> 13:smallint, CastDecimalToLong(col 2:decimal(23,14)) -> 14:tinyint, CastDecimalToLong(col 1:decimal(20,10)) -> 15:bigint, CastDecimalToBoolean(col 1:decimal(20,10)) -> 16:boolean, CastDecimalToDouble(col 2:decimal(23,14)) -> 17:double, CastDecimalToFloat(col 1:decimal(20,10)) -> 18:float, CastDecimalToString(col 2:decimal(23,14)) -> 19:string, CastDecimalToTimestamp(col 1:decimal(20,10)) -> 20:timestamp Statistics: Num rows: 455 Data size: 100294 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: decimal(25,14)), _col1 (type: decimal(26,14)), _col2 (type: decimal(38,13)), _col3 (type: decimal(38,17)), _col4 (type: decimal(12,10)), _col5 (type: int), _col6 (type: smallint), _col7 (type: tinyint), _col8 (type: bigint), _col9 (type: boolean), _col10 (type: double), _col11 (type: float), _col12 (type: string), _col13 (type: timestamp) @@ -249,7 +249,7 @@ STAGE PLANS: className: VectorSelectOperator native: true projectedOutputColumnNums: [4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] - selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(10,3), col 2:decimal(7,2)) -> 4:decimal(11,3), DecimalColSubtractDecimalColumn(col 1:decimal(10,3), col 5:decimal(9,2))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(7,2)) -> 5:decimal(9,2)) -> 6:decimal(11,3), DecimalColDivideDecimalColumn(col 7:decimal(11,3), col 2:decimal(7,2))(children: DecimalColAddDecimalScalar(col 1:decimal(10,3), val 2.34) -> 7:decimal(11,3)) -> 8:decimal(21,11), DecimalColMultiplyDecimalColumn(col 1:decimal(10,3), col 9:decimal(12,6))(children: DecimalColDivideDecimalScalar(col 2:decimal(7,2), val 3.4) -> 9:decimal(12,6)) -> 10:decimal(23,9), DecimalColModuloDecimalScalar(col 1:decimal(10,3), val 10) -> 11:decimal(5,3), CastDecimalToLong(col 1:decimal(10,3)) -> 12:int, CastDecimalToLong(col 2:decimal(7,2)) -> 13:smallint, CastDecimalToLong(col 2:decimal(7,2)) -> 14:tinyint, CastDecimalToLong(col 1:decimal(10,3)) -> 15:bigint, CastDecimalToBoolean(col 1:decimal(10,3)) -> 16:boolean, CastDecimalToDouble(col 2:decimal(7,2)) -> 17:double, CastDecimalToDouble(col 1:decimal(10,3)) -> 18:float, CastDecimalToString(col 2:decimal(7,2)) -> 19:string, CastDecimalToTimestamp(col 1:decimal(10,3)) -> 20:timestamp + selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(10,3), col 2:decimal(7,2)) -> 4:decimal(11,3), DecimalColSubtractDecimalColumn(col 1:decimal(10,3), col 5:decimal(9,2))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(7,2)) -> 5:decimal(9,2)) -> 6:decimal(11,3), DecimalColDivideDecimalColumn(col 7:decimal(11,3), col 2:decimal(7,2))(children: DecimalColAddDecimalScalar(col 1:decimal(10,3), val 2.34) -> 7:decimal(11,3)) -> 8:decimal(21,11), DecimalColMultiplyDecimalColumn(col 1:decimal(10,3), col 9:decimal(12,6))(children: DecimalColDivideDecimalScalar(col 2:decimal(7,2), val 3.4) -> 9:decimal(12,6)) -> 10:decimal(23,9), DecimalColModuloDecimalScalar(col 1:decimal(10,3), val 10) -> 11:decimal(5,3), CastDecimalToLong(col 1:decimal(10,3)) -> 12:int, CastDecimalToLong(col 2:decimal(7,2)) -> 13:smallint, CastDecimalToLong(col 2:decimal(7,2)) -> 14:tinyint, CastDecimalToLong(col 1:decimal(10,3)) -> 15:bigint, CastDecimalToBoolean(col 1:decimal(10,3)) -> 16:boolean, CastDecimalToDouble(col 2:decimal(7,2)) -> 17:double, CastDecimalToFloat(col 1:decimal(10,3)) -> 18:float, CastDecimalToString(col 2:decimal(7,2)) -> 19:string, CastDecimalToTimestamp(col 1:decimal(10,3)) -> 20:timestamp Statistics: Num rows: 455 Data size: 100294 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: decimal(11,3)), _col1 (type: decimal(11,3)), _col2 (type: decimal(21,11)), _col3 (type: decimal(23,9)), _col4 (type: decimal(5,3)), _col5 (type: int), _col6 (type: smallint), _col7 (type: tinyint), _col8 (type: bigint), _col9 (type: boolean), _col10 (type: double), _col11 (type: float), _col12 (type: string), _col13 (type: timestamp) diff --git a/ql/src/test/results/clientpositive/vector_decimal_1.q.out b/ql/src/test/results/clientpositive/vector_decimal_1.q.out index d4d4705e72ecb4b6439270b46b48819ed7e7eb2b..80def64290219cf2d308abf59a7853861a2ace85 100644 --- a/ql/src/test/results/clientpositive/vector_decimal_1.q.out +++ b/ql/src/test/results/clientpositive/vector_decimal_1.q.out @@ -529,7 +529,7 @@ STAGE PLANS: className: VectorSelectOperator native: true projectedOutputColumnNums: [4] - selectExpressions: CastDecimalToDouble(col 0:decimal(4,2)) -> 4:float + selectExpressions: CastDecimalToFloat(col 0:decimal(4,2)) -> 4:float Statistics: Num rows: 2 Data size: 336 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: float) diff --git a/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out b/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out index 2e4edc5dd1811e63c355556227aba7b6924b7413..51ed89693ef0ec6fd073f221201fcc1a2729c766 100644 --- a/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out +++ b/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out @@ -70,7 +70,7 @@ STAGE PLANS: className: VectorSelectOperator native: true projectedOutputColumnNums: [4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] - selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(20,10), col 2:decimal(23,14)) -> 4:decimal(25,14), DecimalColSubtractDecimalColumn(col 1:decimal(20,10), col 5:decimal(25,14))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(23,14)) -> 5:decimal(25,14)) -> 6:decimal(26,14), DecimalColDivideDecimalColumn(col 7:decimal(21,10), col 2:decimal(23,14))(children: DecimalColAddDecimalScalar(col 1:decimal(20,10), val 2.34) -> 7:decimal(21,10)) -> 8:decimal(38,13), DecimalColMultiplyDecimalColumn(col 1:decimal(20,10), col 9:decimal(27,17))(children: DecimalColDivideDecimalScalar(col 2:decimal(23,14), val 3.4) -> 9:decimal(27,17)) -> 10:decimal(38,17), DecimalColModuloDecimalScalar(col 1:decimal(20,10), val 10) -> 11:decimal(12,10), CastDecimalToLong(col 1:decimal(20,10)) -> 12:int, CastDecimalToLong(col 2:decimal(23,14)) -> 13:smallint, CastDecimalToLong(col 2:decimal(23,14)) -> 14:tinyint, CastDecimalToLong(col 1:decimal(20,10)) -> 15:bigint, CastDecimalToBoolean(col 1:decimal(20,10)) -> 16:boolean, CastDecimalToDouble(col 2:decimal(23,14)) -> 17:double, CastDecimalToDouble(col 1:decimal(20,10)) -> 18:float, CastDecimalToString(col 2:decimal(23,14)) -> 19:string, CastDecimalToTimestamp(col 1:decimal(20,10)) -> 20:timestamp + selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(20,10), col 2:decimal(23,14)) -> 4:decimal(25,14), DecimalColSubtractDecimalColumn(col 1:decimal(20,10), col 5:decimal(25,14))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(23,14)) -> 5:decimal(25,14)) -> 6:decimal(26,14), DecimalColDivideDecimalColumn(col 7:decimal(21,10), col 2:decimal(23,14))(children: DecimalColAddDecimalScalar(col 1:decimal(20,10), val 2.34) -> 7:decimal(21,10)) -> 8:decimal(38,13), DecimalColMultiplyDecimalColumn(col 1:decimal(20,10), col 9:decimal(27,17))(children: DecimalColDivideDecimalScalar(col 2:decimal(23,14), val 3.4) -> 9:decimal(27,17)) -> 10:decimal(38,17), DecimalColModuloDecimalScalar(col 1:decimal(20,10), val 10) -> 11:decimal(12,10), CastDecimalToLong(col 1:decimal(20,10)) -> 12:int, CastDecimalToLong(col 2:decimal(23,14)) -> 13:smallint, CastDecimalToLong(col 2:decimal(23,14)) -> 14:tinyint, CastDecimalToLong(col 1:decimal(20,10)) -> 15:bigint, CastDecimalToBoolean(col 1:decimal(20,10)) -> 16:boolean, CastDecimalToDouble(col 2:decimal(23,14)) -> 17:double, CastDecimalToFloat(col 1:decimal(20,10)) -> 18:float, CastDecimalToString(col 2:decimal(23,14)) -> 19:string, CastDecimalToTimestamp(col 1:decimal(20,10)) -> 20:timestamp Statistics: Num rows: 455 Data size: 78802 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: decimal(25,14)), _col1 (type: decimal(26,14)), _col2 (type: decimal(38,13)), _col3 (type: decimal(38,17)), _col4 (type: decimal(12,10)), _col5 (type: int), _col6 (type: smallint), _col7 (type: tinyint), _col8 (type: bigint), _col9 (type: boolean), _col10 (type: double), _col11 (type: float), _col12 (type: string), _col13 (type: timestamp) @@ -214,7 +214,7 @@ STAGE PLANS: className: VectorSelectOperator native: true projectedOutputColumnNums: [4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] - selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(10,3), col 2:decimal(7,2)) -> 4:decimal(11,3), DecimalColSubtractDecimalColumn(col 1:decimal(10,3), col 5:decimal(9,2))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(7,2)) -> 5:decimal(9,2)) -> 6:decimal(11,3), DecimalColDivideDecimalColumn(col 7:decimal(11,3), col 2:decimal(7,2))(children: DecimalColAddDecimalScalar(col 1:decimal(10,3), val 2.34) -> 7:decimal(11,3)) -> 8:decimal(21,11), DecimalColMultiplyDecimalColumn(col 1:decimal(10,3), col 9:decimal(12,6))(children: DecimalColDivideDecimalScalar(col 2:decimal(7,2), val 3.4) -> 9:decimal(12,6)) -> 10:decimal(23,9), DecimalColModuloDecimalScalar(col 1:decimal(10,3), val 10) -> 11:decimal(5,3), CastDecimalToLong(col 1:decimal(10,3)) -> 12:int, CastDecimalToLong(col 2:decimal(7,2)) -> 13:smallint, CastDecimalToLong(col 2:decimal(7,2)) -> 14:tinyint, CastDecimalToLong(col 1:decimal(10,3)) -> 15:bigint, CastDecimalToBoolean(col 1:decimal(10,3)) -> 16:boolean, CastDecimalToDouble(col 2:decimal(7,2)) -> 17:double, CastDecimalToDouble(col 1:decimal(10,3)) -> 18:float, CastDecimalToString(col 2:decimal(7,2)) -> 19:string, CastDecimalToTimestamp(col 1:decimal(10,3)) -> 20:timestamp + selectExpressions: DecimalColAddDecimalColumn(col 1:decimal(10,3), col 2:decimal(7,2)) -> 4:decimal(11,3), DecimalColSubtractDecimalColumn(col 1:decimal(10,3), col 5:decimal(9,2))(children: DecimalScalarMultiplyDecimalColumn(val 2, col 2:decimal(7,2)) -> 5:decimal(9,2)) -> 6:decimal(11,3), DecimalColDivideDecimalColumn(col 7:decimal(11,3), col 2:decimal(7,2))(children: DecimalColAddDecimalScalar(col 1:decimal(10,3), val 2.34) -> 7:decimal(11,3)) -> 8:decimal(21,11), DecimalColMultiplyDecimalColumn(col 1:decimal(10,3), col 9:decimal(12,6))(children: DecimalColDivideDecimalScalar(col 2:decimal(7,2), val 3.4) -> 9:decimal(12,6)) -> 10:decimal(23,9), DecimalColModuloDecimalScalar(col 1:decimal(10,3), val 10) -> 11:decimal(5,3), CastDecimalToLong(col 1:decimal(10,3)) -> 12:int, CastDecimalToLong(col 2:decimal(7,2)) -> 13:smallint, CastDecimalToLong(col 2:decimal(7,2)) -> 14:tinyint, CastDecimalToLong(col 1:decimal(10,3)) -> 15:bigint, CastDecimalToBoolean(col 1:decimal(10,3)) -> 16:boolean, CastDecimalToDouble(col 2:decimal(7,2)) -> 17:double, CastDecimalToFloat(col 1:decimal(10,3)) -> 18:float, CastDecimalToString(col 2:decimal(7,2)) -> 19:string, CastDecimalToTimestamp(col 1:decimal(10,3)) -> 20:timestamp Statistics: Num rows: 455 Data size: 78788 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: decimal(11,3)), _col1 (type: decimal(11,3)), _col2 (type: decimal(21,11)), _col3 (type: decimal(23,9)), _col4 (type: decimal(5,3)), _col5 (type: int), _col6 (type: smallint), _col7 (type: tinyint), _col8 (type: bigint), _col9 (type: boolean), _col10 (type: double), _col11 (type: float), _col12 (type: string), _col13 (type: timestamp) diff --git a/ql/src/test/results/clientpositive/vectorization_parquet_ppd_decimal.q.out b/ql/src/test/results/clientpositive/vectorization_parquet_ppd_decimal.q.out new file mode 100644 index 0000000000000000000000000000000000000000..c2611fc8b13cfb74fa22f67e131a9e50a6b2e569 --- /dev/null +++ b/ql/src/test/results/clientpositive/vectorization_parquet_ppd_decimal.q.out @@ -0,0 +1,766 @@ +PREHOOK: query: create table newtypestbl(c char(10), v varchar(10), d decimal(5,3), da date) stored as parquet +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@newtypestbl +POSTHOOK: query: create table newtypestbl(c char(10), v varchar(10), d decimal(5,3), da date) stored as parquet +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@newtypestbl +PREHOOK: query: insert overwrite table newtypestbl select * from (select cast("apple" as char(10)), cast("bee" as varchar(10)), 0.22, cast("1970-02-20" as date) from src src1 union all select cast("hello" as char(10)), cast("world" as varchar(10)), 11.22, cast("1970-02-27" as date) from src src2 limit 10) uniontbl +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@newtypestbl +POSTHOOK: query: insert overwrite table newtypestbl select * from (select cast("apple" as char(10)), cast("bee" as varchar(10)), 0.22, cast("1970-02-20" as date) from src src1 union all select cast("hello" as char(10)), cast("world" as varchar(10)), 11.22, cast("1970-02-27" as date) from src src2 limit 10) uniontbl +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@newtypestbl +POSTHOOK: Lineage: newtypestbl.c EXPRESSION [] +POSTHOOK: Lineage: newtypestbl.d EXPRESSION [] +POSTHOOK: Lineage: newtypestbl.da EXPRESSION [] +POSTHOOK: Lineage: newtypestbl.v EXPRESSION [] +PREHOOK: query: select * from newtypestbl where d=0.22 +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d=0.22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d=0.22 +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d=0.22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d='0.22' +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d='0.22' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d='0.22' +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d='0.22' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d=cast('0.22' as float) +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d=cast('0.22' as float) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d=cast('0.22' as float) +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d=cast('0.22' as float) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d!=0.22 +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d!=0.22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +PREHOOK: query: select * from newtypestbl where d!=0.22 +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d!=0.22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +PREHOOK: query: select * from newtypestbl where d!='0.22' +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d!='0.22' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +PREHOOK: query: select * from newtypestbl where d!='0.22' +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d!='0.22' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +PREHOOK: query: select * from newtypestbl where d!=cast('0.22' as float) +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d!=cast('0.22' as float) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +PREHOOK: query: select * from newtypestbl where d!=cast('0.22' as float) +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d!=cast('0.22' as float) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +hello world 11.220 1970-02-27 +PREHOOK: query: select * from newtypestbl where d<11.22 +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d<11.22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d<11.22 +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d<11.22 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d<'11.22' +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d<'11.22' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d<'11.22' +PREHOOK: type: QUERY +PREHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +POSTHOOK: query: select * from newtypestbl where d<'11.22' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@newtypestbl +#### A masked pattern was here #### +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +apple bee 0.220 1970-02-20 +PREHOOK: query: select * from newtypestbl where d