You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Volodymyr Vysotskyi (JIRA)" <ji...@apache.org> on 2018/01/19 11:40:00 UTC
[jira] [Commented] (DRILL-4407) Group by subquery causes Java NPE
[ https://issues.apache.org/jira/browse/DRILL-4407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16332141#comment-16332141 ]
Volodymyr Vysotskyi commented on DRILL-4407:
--------------------------------------------
I have reproduced this issue using the query:
{code:sql}
select count(*) from cp.`tpch/nation.parquet` group by ( select CURRENT_DATE from cp.`tpch/nation.parquet` where n_nationKey = 1);
{code}
After the fix for DRILL-3993, the error message was changed and now it is:
{noformat}
org.apache.drill.common.exceptions.UserException: UNSUPPORTED_OPERATION ERROR: Non-scalar sub-query used in an expression
See Apache Drill JIRA: DRILL-1937
[Error Id: 648bdc67-ea16-4f9d-ae84-687ab24b01c7 ]
at org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:586) ~[drill-common-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan(DrillSqlWorker.java:156) [drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:84) [drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:567) [drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:264) [drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_151]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_151]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]
Caused by: org.apache.drill.exec.work.foreman.UnsupportedFunctionException: Non-scalar sub-query used in an expression
See Apache Drill JIRA: DRILL-1937
at org.apache.drill.exec.exception.UnsupportedOperatorCollector.convertException(UnsupportedOperatorCollector.java:43) ~[drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at org.apache.drill.exec.planner.logical.PreProcessLogicalRel.convertException(PreProcessLogicalRel.java:253) ~[drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.preprocessNode(DefaultSqlHandler.java:664) ~[drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert(DefaultSqlHandler.java:200) ~[drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:168) ~[drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
at org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan(DrillSqlWorker.java:146) [drill-java-exec-1.13.0-SNAPSHOT.jar:1.13.0-SNAPSHOT]
... 6 common frames omitted
{noformat}
> Group by subquery causes Java NPE
> ---------------------------------
>
> Key: DRILL-4407
> URL: https://issues.apache.org/jira/browse/DRILL-4407
> Project: Apache Drill
> Issue Type: Bug
> Components: Storage - JDBC
> Affects Versions: 1.5.0
> Reporter: N Campbell
> Assignee: Taras Supyk
> Priority: Major
>
> select count(*) from postgres.public.tjoin2 group by ( select c1 from postgres.public.tjoin1 where rnum = 0)
> Error: VALIDATION ERROR: java.lang.NullPointerException
> [Error Id: d3453085-d77c-484e-8df7-f5fadc7bcc7d on centos1:31010]
> (org.apache.calcite.tools.ValidationException) java.lang.NullPointerException
> org.apache.calcite.prepare.PlannerImpl.validate():189
> org.apache.calcite.prepare.PlannerImpl.validateAndGetType():198
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateNode():451
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert():198
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():167
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():199
> org.apache.drill.exec.work.foreman.Foreman.runSQL():924
> org.apache.drill.exec.work.foreman.Foreman.run():250
> java.util.concurrent.ThreadPoolExecutor.runWorker():1142
> java.util.concurrent.ThreadPoolExecutor$Worker.run():617
> java.lang.Thread.run():745
> Caused By (java.lang.NullPointerException) null
> org.apache.calcite.sql.validate.SqlValidatorUtil$ExpansionAndDeepCopier.visit():633
> org.apache.calcite.sql.validate.SqlValidatorUtil$ExpansionAndDeepCopier.visit():619
> org.apache.calcite.sql.SqlIdentifier.accept():274
> org.apache.calcite.sql.validate.SqlValidatorUtil$DeepCopier.visit():676
> org.apache.calcite.sql.validate.SqlValidatorUtil$DeepCopier.visit():663
> org.apache.calcite.sql.SqlNodeList.accept():152
> org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild():134
> org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild():101
> org.apache.calcite.sql.SqlOperator.acceptCall():720
> org.apache.calcite.sql.SqlSelectOperator.acceptCall():128
> org.apache.calcite.sql.validate.SqlValidatorUtil$DeepCopier.visitScoped():686
> org.apache.calcite.sql.validate.SqlScopedShuttle.visit():50
> org.apache.calcite.sql.validate.SqlScopedShuttle.visit():32
> org.apache.calcite.sql.SqlCall.accept():130
> org.apache.calcite.sql.validate.SqlValidatorUtil$DeepCopier.visit():676
> org.apache.calcite.sql.validate.SqlValidatorUtil$DeepCopier.visit():663
> org.apache.calcite.sql.SqlNodeList.accept():152
> org.apache.calcite.sql.validate.SqlValidatorUtil$ExpansionAndDeepCopier.copy():626
> org.apache.calcite.sql.validate.AggregatingSelectScope.<init>():92
> org.apache.calcite.sql.validate.SqlValidatorImpl.registerQuery():2200
> org.apache.calcite.sql.validate.SqlValidatorImpl.registerQuery():2122
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression():835
> org.apache.calcite.sql.validate.SqlValidatorImpl.validate():551
> org.apache.calcite.prepare.PlannerImpl.validate():187
> org.apache.calcite.prepare.PlannerImpl.validateAndGetType():198
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateNode():451
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert():198
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():167
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():199
> org.apache.drill.exec.work.foreman.Foreman.runSQL():924
> org.apache.drill.exec.work.foreman.Foreman.run():250
> java.util.concurrent.ThreadPoolExecutor.runWorker():1142
> java.util.concurrent.ThreadPoolExecutor$Worker.run():617
> java.lang.Thread.run():745
> SQLState: null
> ErrorCode: 0
> create table TJOIN1 (RNUM integer not null , C1 integer, C2 integer);
> create table TJOIN2 (RNUM integer not null , C1 integer, C2 char(2));
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)