Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.4.0
-
None
-
None
-
Linux, phoenix phoenix-4.4.0-HBase-1.1
Description
On the following db objects:
CREATE TABLE table1 (
id BIGINT,
col1 VARCHAR,
col2 VARCHAR,
CONSTRAINT pk PRIMARY KEY (id)) IMMUTABLE_ROWS=true;
CREATE TABLE table2 (
id BIGINT,
col1 VARCHAR,
col2 VARCHAR,
CONSTRAINT pk PRIMARY KEY (id)) IMMUTABLE_ROWS=true;
CREATE INDEX INDEX_TABLE1_COL ON table1 (col1);
CREATE INDEX INDEX_TABLE2_COL ON table2 (col1);
explain SELECT /+ INDEX(table1 INDEX_TABLE1_COL) */ col1, col2 FROM table1 WHERE col1='123' UNION ALL SELECT /+ INDEX(table2 INDEX_TABLE2_COL) */ col1, col2 FROM table2 WHERE col1='123';
On running the above statement there is a NPE:
java.lang.NullPointerException
at java.util.ArrayList.addAll(ArrayList.java:559)
at org.apache.phoenix.iterate.UnionResultIterators.<init>(UnionResultIterators.java:51)
at org.apache.phoenix.execute.UnionPlan.iterator(UnionPlan.java:131)
at org.apache.phoenix.execute.UnionPlan.iterator(UnionPlan.java:127)
at org.apache.phoenix.execute.UnionPlan.getExplainPlan(UnionPlan.java:150)
at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableExplainStatement.compilePlan(PhoenixStatement.java:424)
at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableExplainStatement.compilePlan(PhoenixStatement.java:403)
at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:246)
at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:241)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:240)
at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1250)
at sqlline.Commands.execute(Commands.java:822)
at sqlline.Commands.sql(Commands.java:732)
at sqlline.SqlLine.dispatch(SqlLine.java:808)
at sqlline.SqlLine.begin(SqlLine.java:681)
at sqlline.SqlLine.start(SqlLine.java:398)
at sqlline.SqlLine.main(SqlLine.java:292)