You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Rahul Challapalli (JIRA)" <ji...@apache.org> on 2015/04/22 02:41:59 UTC

[jira] [Reopened] (DRILL-2094) Drill has problems with reading json fields when used in a subquery

     [ https://issues.apache.org/jira/browse/DRILL-2094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rahul Challapalli reopened DRILL-2094:
--------------------------------------

The below query is still failing :
{code}
select s.id from (select id from `non-flatten1.json` order by list[0]) s;
{code}

Below is the error from the logs :
{code}
 org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception during fragment initialization: -1
 	at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:210) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_71]
 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71]
 	at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
 Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
 	at org.eigenbase.rex.RexProgram.deduceCollations(RexProgram.java:564) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.rex.RexProgram.getCollations(RexProgram.java:533) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.rel.CalcRel.createProject(CalcRel.java:146) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.rel.CalcRel.createProject(CalcRel.java:88) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertSelectList(SqlToRelConverter.java:3319) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:519) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:474) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:2657) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:432) ~[optiq-core-0.9-drill-r21.jar:na]
 	at net.hydromatic.optiq.prepare.PlannerImpl.convert(PlannerImpl.java:190) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRel(DefaultSqlHandler.java:166) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:133) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:154) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:769) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:201) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	... 3 common frames omitted
 2015-04-22 00:38:22,183 [2ac91281-0a46-1dfa-ad31-4a2b76a1a6f0:foreman] INFO  o.a.drill.exec.work.foreman.Foreman - foreman cleaning up.
 2015-04-22 00:38:22,184 [2ac91281-0a46-1dfa-ad31-4a2b76a1a6f0:foreman] ERROR o.a.d.c.e.DrillRuntimeException - SYSTEM ERROR: Unexpected exception during fragment initialization: -1
 
 
 [16a660b3-fcd4-4642-b6bf-dfb30c1570d8 on qa-node190.qa.lab:31010]
 org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: Unexpected exception during fragment initialization: -1
 
 
 [16a660b3-fcd4-4642-b6bf-dfb30c1570d8 on qa-node190.qa.lab:31010]
 	at org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:465) ~[drill-common-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman$ForemanResult.close(Foreman.java:616) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman$StateSwitch.processEvent(Foreman.java:713) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman$StateSwitch.processEvent(Foreman.java:655) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.common.EventProcessor.sendEvent(EventProcessor.java:73) [drill-common-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman$StateSwitch.moveToState(Foreman.java:657) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman.moveToState(Foreman.java:758) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:210) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_71]
 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71]
 	at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
 Caused by: org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception during fragment initialization: -1
 	... 4 common frames omitted
 Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
 	at org.eigenbase.rex.RexProgram.deduceCollations(RexProgram.java:564) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.rex.RexProgram.getCollations(RexProgram.java:533) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.rel.CalcRel.createProject(CalcRel.java:146) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.rel.CalcRel.createProject(CalcRel.java:88) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertSelectList(SqlToRelConverter.java:3319) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:519) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:474) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:2657) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.eigenbase.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:432) ~[optiq-core-0.9-drill-r21.jar:na]
 	at net.hydromatic.optiq.prepare.PlannerImpl.convert(PlannerImpl.java:190) ~[optiq-core-0.9-drill-r21.jar:na]
 	at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRel(DefaultSqlHandler.java:166) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:133) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:154) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:769) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:201) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
 	... 3 common frames omitted
{code}

> Drill has problems with reading json fields when used in a subquery
> -------------------------------------------------------------------
>
>                 Key: DRILL-2094
>                 URL: https://issues.apache.org/jira/browse/DRILL-2094
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>            Reporter: Rahul Challapalli
>            Assignee: Sean Hsuan-Yi Chu
>             Fix For: 0.9.0
>
>         Attachments: DRILL-2094.1.patch
>
>
> git.commit.id.abbrev=3e33880
> Data Set :
> {code}
> {
>   "id" : 1,
>   "list" : [1,2]
> }
> {code} 
> The below query works
> {code}
> 0: jdbc:drill:schema=dfs.drillTestDir> select id from `temp1.json` order by list[0];
> +------------+
> |     id     |
> +------------+
> | 1          |
> +------------+
> 1 row selected (0.146 seconds)
> {code}
> However when I used the same exact query as part of a sub-query, I get an error from drill
> {code}
> 0: jdbc:drill:schema=dfs.drillTestDir> select s.id from (select id from `temp1.json` order by list[0]) s;
> Query failed: SqlValidatorException: Table 'list' not found
> Error: exception while executing query: Failure while executing query. (state=,code=0)
> {code}
> Explain plan also does not work and it returns the same problem



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)