Skip to content

Commit b1037a2

Browse files
committed
HIVE-29568: Vectorized PTF is throwing RuntimeException
1 parent 423fc83 commit b1037a2

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed

ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,10 @@ private static TypeInfo columnVectorTypeToTypeInfo(Type type) {
578578
return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.TIMESTAMP_TYPE_NAME);
579579
case LONG:
580580
return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.INT_TYPE_NAME);
581+
case INTERVAL_DAY_TIME:
582+
return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.INTERVAL_DAY_TIME_TYPE_NAME);
583+
case VOID:
584+
return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.VOID_TYPE_NAME);
581585
default:
582586
throw new RuntimeException("Cannot convert column vector type: '" + type + "' to TypeInfo");
583587
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
create table vectptf(age int, name string) stored as orc;
2+
insert into vectptf values(20, 'PQR'), (10, 'ABC'), (30, 'XYZ');
3+
4+
select cast(row_number() over(order by NULL) as STRING), age, name from vectptf;
5+
select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf;
6+
7+
set hive.vectorized.execution.ptf.enabled=false;
8+
9+
select cast(row_number() over(order by NULL) as STRING), age, name from vectptf;
10+
select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf;
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
PREHOOK: query: create table vectptf(age int, name string) stored as orc
2+
PREHOOK: type: CREATETABLE
3+
PREHOOK: Output: database:default
4+
PREHOOK: Output: default@vectptf
5+
POSTHOOK: query: create table vectptf(age int, name string) stored as orc
6+
POSTHOOK: type: CREATETABLE
7+
POSTHOOK: Output: database:default
8+
POSTHOOK: Output: default@vectptf
9+
PREHOOK: query: insert into vectptf values(20, 'PQR'), (10, 'ABC'), (30, 'XYZ')
10+
PREHOOK: type: QUERY
11+
PREHOOK: Input: _dummy_database@_dummy_table
12+
PREHOOK: Output: default@vectptf
13+
POSTHOOK: query: insert into vectptf values(20, 'PQR'), (10, 'ABC'), (30, 'XYZ')
14+
POSTHOOK: type: QUERY
15+
POSTHOOK: Input: _dummy_database@_dummy_table
16+
POSTHOOK: Output: default@vectptf
17+
POSTHOOK: Lineage: vectptf.age SCRIPT []
18+
POSTHOOK: Lineage: vectptf.name SCRIPT []
19+
PREHOOK: query: select cast(row_number() over(order by NULL) as STRING), age, name from vectptf
20+
PREHOOK: type: QUERY
21+
PREHOOK: Input: default@vectptf
22+
#### A masked pattern was here ####
23+
POSTHOOK: query: select cast(row_number() over(order by NULL) as STRING), age, name from vectptf
24+
POSTHOOK: type: QUERY
25+
POSTHOOK: Input: default@vectptf
26+
#### A masked pattern was here ####
27+
1 20 PQR
28+
2 10 ABC
29+
3 30 XYZ
30+
PREHOOK: query: select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf
31+
PREHOOK: type: QUERY
32+
PREHOOK: Input: default@vectptf
33+
#### A masked pattern was here ####
34+
POSTHOOK: query: select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf
35+
POSTHOOK: type: QUERY
36+
POSTHOOK: Input: default@vectptf
37+
#### A masked pattern was here ####
38+
1 20 PQR
39+
1 10 ABC
40+
1 30 XYZ
41+
PREHOOK: query: select cast(row_number() over(order by NULL) as STRING), age, name from vectptf
42+
PREHOOK: type: QUERY
43+
PREHOOK: Input: default@vectptf
44+
#### A masked pattern was here ####
45+
POSTHOOK: query: select cast(row_number() over(order by NULL) as STRING), age, name from vectptf
46+
POSTHOOK: type: QUERY
47+
POSTHOOK: Input: default@vectptf
48+
#### A masked pattern was here ####
49+
1 20 PQR
50+
2 10 ABC
51+
3 30 XYZ
52+
PREHOOK: query: select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf
53+
PREHOOK: type: QUERY
54+
PREHOOK: Input: default@vectptf
55+
#### A masked pattern was here ####
56+
POSTHOOK: query: select cast(rank() over(order by INTERVAL '1' DAY) as STRING), age, name from vectptf
57+
POSTHOOK: type: QUERY
58+
POSTHOOK: Input: default@vectptf
59+
#### A masked pattern was here ####
60+
1 20 PQR
61+
1 10 ABC
62+
1 30 XYZ

0 commit comments

Comments
 (0)