diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java index 59cd3c9a2492..6d03bb5ea5d1 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java @@ -578,6 +578,10 @@ private static TypeInfo columnVectorTypeToTypeInfo(Type type) { return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.TIMESTAMP_TYPE_NAME); case LONG: return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.INT_TYPE_NAME); + case INTERVAL_DAY_TIME: + return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.INTERVAL_DAY_TIME_TYPE_NAME); + case VOID: + return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.VOID_TYPE_NAME); default: throw new RuntimeException("Cannot convert column vector type: '" + type + "' to TypeInfo"); } diff --git a/ql/src/test/queries/clientpositive/vector_ptf_windowing_over_const.q b/ql/src/test/queries/clientpositive/vector_ptf_windowing_over_const.q new file mode 100644 index 000000000000..838c7851a52b --- /dev/null +++ b/ql/src/test/queries/clientpositive/vector_ptf_windowing_over_const.q @@ -0,0 +1,10 @@ +create table vectptf(age int, name string) stored as orc; +insert into vectptf values(20, 'PQR'), (10, 'ABC'), (30, 'XYZ'); + +select cast(row_number() over(order by NULL) as STRING), age, name from vectptf; +select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf; + +set hive.vectorized.execution.ptf.enabled=false; + +select cast(row_number() over(order by NULL) as STRING), age, name from vectptf; +select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf; diff --git a/ql/src/test/results/clientpositive/llap/vector_ptf_windowing_over_const.q.out b/ql/src/test/results/clientpositive/llap/vector_ptf_windowing_over_const.q.out new file mode 100644 index 000000000000..456028de1584 --- /dev/null +++ b/ql/src/test/results/clientpositive/llap/vector_ptf_windowing_over_const.q.out @@ -0,0 +1,62 @@ +PREHOOK: query: create table vectptf(age int, name string) stored as orc +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@vectptf +POSTHOOK: query: create table vectptf(age int, name string) stored as orc +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@vectptf +PREHOOK: query: insert into vectptf values(20, 'PQR'), (10, 'ABC'), (30, 'XYZ') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@vectptf +POSTHOOK: query: insert into vectptf values(20, 'PQR'), (10, 'ABC'), (30, 'XYZ') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@vectptf +POSTHOOK: Lineage: vectptf.age SCRIPT [] +POSTHOOK: Lineage: vectptf.name SCRIPT [] +PREHOOK: query: select cast(row_number() over(order by NULL) as STRING), age, name from vectptf +PREHOOK: type: QUERY +PREHOOK: Input: default@vectptf +#### A masked pattern was here #### +POSTHOOK: query: select cast(row_number() over(order by NULL) as STRING), age, name from vectptf +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectptf +#### A masked pattern was here #### +1 20 PQR +2 10 ABC +3 30 XYZ +PREHOOK: query: select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf +PREHOOK: type: QUERY +PREHOOK: Input: default@vectptf +#### A masked pattern was here #### +POSTHOOK: query: select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectptf +#### A masked pattern was here #### +1 20 PQR +1 10 ABC +1 30 XYZ +PREHOOK: query: select cast(row_number() over(order by NULL) as STRING), age, name from vectptf +PREHOOK: type: QUERY +PREHOOK: Input: default@vectptf +#### A masked pattern was here #### +POSTHOOK: query: select cast(row_number() over(order by NULL) as STRING), age, name from vectptf +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectptf +#### A masked pattern was here #### +1 20 PQR +2 10 ABC +3 30 XYZ +PREHOOK: query: select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf +PREHOOK: type: QUERY +PREHOOK: Input: default@vectptf +#### A masked pattern was here #### +POSTHOOK: query: select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf +POSTHOOK: type: QUERY +POSTHOOK: Input: default@vectptf +#### A masked pattern was here #### +1 20 PQR +1 10 ABC +1 30 XYZ