This is an automated email from the ASF dual-hosted git repository.
saihemanth-cloudera pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new ee6848d2df3 HIVE-29568: Vectorized PTF is throwing RuntimeException
(#6437)
ee6848d2df3 is described below
commit ee6848d2df35abcf936ae620df29f4c4caebbd5f
Author: Dayakar M <[email protected]>
AuthorDate: Sat Apr 25 01:03:44 2026 +0530
HIVE-29568: Vectorized PTF is throwing RuntimeException (#6437)
Co-authored-by: mdayakar <[email protected]>
---
.../hive/ql/exec/vector/ptf/VectorPTFOperator.java | 4 ++
.../vector_ptf_windowing_over_const.q | 10 ++++
.../llap/vector_ptf_windowing_over_const.q.out | 62 ++++++++++++++++++++++
3 files changed, 76 insertions(+)
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 59cd3c9a249..6d03bb5ea5d 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 00000000000..838c7851a52
--- /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 00000000000..456028de158
--- /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