[
https://issues.apache.org/jira/browse/PHOENIX-7090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
chaijunjie updated PHOENIX-7090:
--------------------------------
Description:
{code:java}
create table t1 (id varchar not null primary key, v1 varchar, v2 varchar);
create table t2 (id varchar not null primary key, v3 varchar, v4 varchar);
upsert into t1 values('1','2','3');
upsert into t2 values('1','4','5');
select * from t1 where id = (select id from t2 where v3='x' limit 1);{code}
{code:java}
0: jdbc:phoenix:> select * from t1 where id = (select id from t2 where v3='x'
limit 1);
Error: Encountered exception in sub plan [0] execution. (state=,code=0)
java.sql.SQLException: Encountered exception in sub plan [0] execution.
at org.apache.phoenix.execute.HashJoinPlan.iterator(HashJoinPlan.java:220)
at
org.apache.phoenix.execute.DelegateQueryPlan.iterator(DelegateQueryPlan.java:144)
at
org.apache.phoenix.execute.DelegateQueryPlan.iterator(DelegateQueryPlan.java:139)
at
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:320)
at
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:299)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:298)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:291)
at
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1994)
at sqlline.Commands.executeSingleQuery(Commands.java:1054)
at sqlline.Commands.execute(Commands.java:1003)
at sqlline.Commands.sql(Commands.java:967)
at sqlline.SqlLine.dispatch(SqlLine.java:734)
at sqlline.SqlLine.begin(SqlLine.java:541)
at sqlline.SqlLine.start(SqlLine.java:267)
at sqlline.SqlLine.main(SqlLine.java:206)
Caused by: java.lang.NullPointerException
at
java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
at
org.apache.phoenix.compile.StatementContext.setSubqueryResult(StatementContext.java:305)
at
org.apache.phoenix.execute.HashJoinPlan$WhereClauseSubPlan.execute(HashJoinPlan.java:467)
at org.apache.phoenix.execute.HashJoinPlan$1.call(HashJoinPlan.java:188)
at org.apache.phoenix.execute.HashJoinPlan$1.call(HashJoinPlan.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
org.apache.phoenix.job.JobManager$InstrumentedJobFutureTask.run(JobManager.java:185)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
{code}
{code:java}
0: jdbc:phoenix:> select * from t1 where id = (select id from t2 where v3='4'
limit 1);
+----+----+----+
| ID | V1 | V2 |
+----+----+----+
| 1 | 2 | 3 |
+----+----+----+
1 row selected (0.082 seconds)
{code}
was:
{code:java}
create table t1 (id varchar not null primary key, v1 varchar, v2 varchar);
create table t2 (id varchar not null primary key, v3 varchar, v4 varchar);
upsert into t1 values('1','2','3');
upsert into t2 values('1','4','5');
select * from t1 where id = (select id from t2 where v3='x' limit 1);{code}
0: jdbc:phoenix:> select * from t1 where id = (select id from t2 where v3='x'
limit 1); Error: Encountered exception in sub plan [0] execution.
(state=,code=0) java.sql.SQLException: Encountered exception in sub plan [0]
execution. at
org.apache.phoenix.execute.HashJoinPlan.iterator(HashJoinPlan.java:220) at
org.apache.phoenix.execute.DelegateQueryPlan.iterator(DelegateQueryPlan.java:144)
at
org.apache.phoenix.execute.DelegateQueryPlan.iterator(DelegateQueryPlan.java:139)
at
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:320)
at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:299)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) at
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:298)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:291)
at
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1994)
at sqlline.Commands.executeSingleQuery(Commands.java:1054) at
sqlline.Commands.execute(Commands.java:1003) at
sqlline.Commands.sql(Commands.java:967) at
sqlline.SqlLine.dispatch(SqlLine.java:734) at
sqlline.SqlLine.begin(SqlLine.java:541) at
sqlline.SqlLine.start(SqlLine.java:267) at
sqlline.SqlLine.main(SqlLine.java:206) Caused by:
java.lang.NullPointerException at
java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
at
org.apache.phoenix.compile.StatementContext.setSubqueryResult(StatementContext.java:305)
at
org.apache.phoenix.execute.HashJoinPlan$WhereClauseSubPlan.execute(HashJoinPlan.java:467)
at org.apache.phoenix.execute.HashJoinPlan$1.call(HashJoinPlan.java:188)
at org.apache.phoenix.execute.HashJoinPlan$1.call(HashJoinPlan.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
org.apache.phoenix.job.JobManager$InstrumentedJobFutureTask.run(JobManager.java:185)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
> Hash join throw NullPointerException when use Subquery
> ------------------------------------------------------
>
> Key: PHOENIX-7090
> URL: https://issues.apache.org/jira/browse/PHOENIX-7090
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 5.1.2
> Reporter: chaijunjie
> Priority: Major
>
> {code:java}
> create table t1 (id varchar not null primary key, v1 varchar, v2 varchar);
> create table t2 (id varchar not null primary key, v3 varchar, v4 varchar);
> upsert into t1 values('1','2','3');
> upsert into t2 values('1','4','5');
> select * from t1 where id = (select id from t2 where v3='x' limit 1);{code}
>
> {code:java}
> 0: jdbc:phoenix:> select * from t1 where id = (select id from t2 where v3='x'
> limit 1);
> Error: Encountered exception in sub plan [0] execution. (state=,code=0)
> java.sql.SQLException: Encountered exception in sub plan [0] execution.
> at org.apache.phoenix.execute.HashJoinPlan.iterator(HashJoinPlan.java:220)
> at
> org.apache.phoenix.execute.DelegateQueryPlan.iterator(DelegateQueryPlan.java:144)
> at
> org.apache.phoenix.execute.DelegateQueryPlan.iterator(DelegateQueryPlan.java:139)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:320)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:299)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at
> org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:298)
> at
> org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:291)
> at
> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1994)
> at sqlline.Commands.executeSingleQuery(Commands.java:1054)
> at sqlline.Commands.execute(Commands.java:1003)
> at sqlline.Commands.sql(Commands.java:967)
> at sqlline.SqlLine.dispatch(SqlLine.java:734)
> at sqlline.SqlLine.begin(SqlLine.java:541)
> at sqlline.SqlLine.start(SqlLine.java:267)
> at sqlline.SqlLine.main(SqlLine.java:206)
> Caused by: java.lang.NullPointerException
> at
> java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
> at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
> at
> org.apache.phoenix.compile.StatementContext.setSubqueryResult(StatementContext.java:305)
> at
> org.apache.phoenix.execute.HashJoinPlan$WhereClauseSubPlan.execute(HashJoinPlan.java:467)
> at org.apache.phoenix.execute.HashJoinPlan$1.call(HashJoinPlan.java:188)
> at org.apache.phoenix.execute.HashJoinPlan$1.call(HashJoinPlan.java:184)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> org.apache.phoenix.job.JobManager$InstrumentedJobFutureTask.run(JobManager.java:185)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:750)
> {code}
> {code:java}
> 0: jdbc:phoenix:> select * from t1 where id = (select id from t2 where v3='4'
> limit 1);
> +----+----+----+
> | ID | V1 | V2 |
> +----+----+----+
> | 1 | 2 | 3 |
> +----+----+----+
> 1 row selected (0.082 seconds)
> {code}
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)