You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jacques Nadeau (JIRA)" <ji...@apache.org> on 2015/04/19 18:31:58 UTC

[jira] [Updated] (DRILL-2828) Nested WHERE clause error on a HBase view

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

Jacques Nadeau updated DRILL-2828:
----------------------------------
    Component/s:     (was: Execution - RPC)
                     (was: Query Planning & Optimization)
                 SQL Parser

> Nested WHERE clause error on a HBase view
> -----------------------------------------
>
>                 Key: DRILL-2828
>                 URL: https://issues.apache.org/jira/browse/DRILL-2828
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: SQL Parser
>    Affects Versions: 0.8.0
>            Reporter: Subhajit Ghosh
>            Assignee: Jacques Nadeau
>            Priority: Blocker
>             Fix For: 1.0.0
>
>
> A RexInputRef error when using a nested WHERE clause (with DOT notation) against a view. The following can be used to reproduce the error:
> > create 'MyTable', 'main'
> > put 'MyTable', 'id1', 'main:objectBytes', '{"foo":123,"prop":{"len":234}}'
> In Drill:
> > create or replace view MyTableView as select
> convert_from(MyTable.main.objectBytes, 'JSON') json from hbase.MyTable;
> > select v.json.prop.len as len from MyTableView v;
> +------------+
> |    len     |
> +------------+
> | 234        |
> +------------+
> > select v.json.prop.len as len from MyTableView v where v.json.prop.len >
> 2;
> This produces the error:
> Query failed: AssertionError: RexInputRef index 2 out of range 0..1
> Detailed error below. Please let me know if you need more information.
> 2015-04-13 12:58:31,444 [2ad45097-c878-962c-b3be-288928a4bc79:foreman] INFO
>  o.a.d.e.s.hbase.TableStatsCalculator - Region size calculation disabled.
> 2015-04-13 12:58:31,600 [2ad45097-c878-962c-b3be-288928a4bc79:foreman] INFO
>  o.a.drill.exec.work.foreman.Foreman - State change requested.  PENDING -->
> FAILED
> org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception
> during fragment initialization: null
> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:213)
> [drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> 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.reflect.UndeclaredThrowableException: null
> at com.sun.proxy.$Proxy63.getRowCount(Unknown Source) ~[na:na]
> at
> org.eigenbase.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:96)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at org.eigenbase.rel.SingleRel.getRows(SingleRel.java:65)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier$MajorFragmentStat.add(ExcessiveExchangeIdentifier.java:99)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel(ExcessiveExchangeIdentifier.java:74)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel(ExcessiveExchangeIdentifier.java:31)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.BasePrelVisitor.visitProject(BasePrelVisitor.java:48)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.ProjectPrel.accept(ProjectPrel.java:69)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitScreen(ExcessiveExchangeIdentifier.java:61)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitScreen(ExcessiveExchangeIdentifier.java:31)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.ScreenPrel.accept(ScreenPrel.java:64)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.removeExcessiveEchanges(ExcessiveExchangeIdentifier.java:42)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToPrel(DefaultSqlHandler.java:290)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:140)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:145)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:773)
> [drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:204)
> [drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> ... 3 common frames omitted
> Caused by: java.lang.reflect.InvocationTargetException: null
> at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source) ~[na:na]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_71]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
> at
> org.eigenbase.rel.metadata.ReflectiveRelMetadataProvider$2$1.invoke(ReflectiveRelMetadataProvider.java:135)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 20 common frames omitted
> Caused by: java.lang.reflect.UndeclaredThrowableException: null
> at com.sun.proxy.$Proxy65.getSelectivity(Unknown Source) ~[na:na]
> at
> org.eigenbase.rel.metadata.RelMetadataQuery.getSelectivity(RelMetadataQuery.java:218)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:54)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 24 common frames omitted
> Caused by: java.lang.reflect.InvocationTargetException: null
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[na:1.7.0_71]
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> ~[na:1.7.0_71]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_71]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
> at
> org.eigenbase.rel.metadata.ReflectiveRelMetadataProvider$2$1.invoke(ReflectiveRelMetadataProvider.java:135)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 27 common frames omitted
> Caused by: java.lang.reflect.UndeclaredThrowableException: null
> at com.sun.proxy.$Proxy65.getSelectivity(Unknown Source) ~[na:na]
> at
> org.eigenbase.rel.metadata.RelMetadataQuery.getSelectivity(RelMetadataQuery.java:218)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rel.metadata.RelMdSelectivity.getSelectivity(RelMdSelectivity.java:168)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 32 common frames omitted
> Caused by: java.lang.reflect.InvocationTargetException: null
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[na:1.7.0_71]
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> ~[na:1.7.0_71]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_71]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
> at
> org.eigenbase.rel.metadata.ReflectiveRelMetadataProvider$2$1.invoke(ReflectiveRelMetadataProvider.java:135)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 35 common frames omitted
> Caused by: java.lang.AssertionError: RexInputRef index 2 out of range 0..1
> at
> org.eigenbase.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:891)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:878)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at org.eigenbase.rex.RexInputRef.accept(RexInputRef.java:103)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rex.RexProgramBuilder.registerInput(RexProgramBuilder.java:271)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rex.RexProgramBuilder.addProject(RexProgramBuilder.java:184)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rex.RexProgramBuilder.addIdentity(RexProgramBuilder.java:801)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.relopt.RelOptUtil.pushFilterPastProject(RelOptUtil.java:2178)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rel.metadata.RelMdSelectivity.getSelectivity(RelMdSelectivity.java:166)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 40 common frames omitted
> 2015-04-13 12:58:31,609 [2ad45097-c878-962c-b3be-288928a4bc79:foreman] INFO
>  o.a.drill.exec.work.foreman.Foreman - foreman cleaning up - status: []
> 2015-04-13 12:58:31,612 [2ad45097-c878-962c-b3be-288928a4bc79:foreman]
> ERROR o.a.drill.exec.work.foreman.Foreman - Error
> aeed96ec-2c1f-4778-bc02-635787d717ae: AssertionError: RexInputRef index 2
> out of range 0..1
> org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception
> during fragment initialization: null
> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:213)
> [drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> 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.reflect.UndeclaredThrowableException: null
> at com.sun.proxy.$Proxy63.getRowCount(Unknown Source) ~[na:na]
> at
> org.eigenbase.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:96)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at org.eigenbase.rel.SingleRel.getRows(SingleRel.java:65)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier$MajorFragmentStat.add(ExcessiveExchangeIdentifier.java:99)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel(ExcessiveExchangeIdentifier.java:74)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel(ExcessiveExchangeIdentifier.java:31)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.BasePrelVisitor.visitProject(BasePrelVisitor.java:48)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.ProjectPrel.accept(ProjectPrel.java:69)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitScreen(ExcessiveExchangeIdentifier.java:61)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitScreen(ExcessiveExchangeIdentifier.java:31)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.ScreenPrel.accept(ScreenPrel.java:64)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.removeExcessiveEchanges(ExcessiveExchangeIdentifier.java:42)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToPrel(DefaultSqlHandler.java:290)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:140)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:145)
> ~[drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:773)
> [drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:204)
> [drill-java-exec-0.8.0-rebuffed.jar:0.8.0]
> ... 3 common frames omitted
> Caused by: java.lang.reflect.InvocationTargetException: null
> at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source) ~[na:na]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_71]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
> at
> org.eigenbase.rel.metadata.ReflectiveRelMetadataProvider$2$1.invoke(ReflectiveRelMetadataProvider.java:135)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 20 common frames omitted
> Caused by: java.lang.reflect.UndeclaredThrowableException: null
> at com.sun.proxy.$Proxy65.getSelectivity(Unknown Source) ~[na:na]
> at
> org.eigenbase.rel.metadata.RelMetadataQuery.getSelectivity(RelMetadataQuery.java:218)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:54)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 24 common frames omitted
> Caused by: java.lang.reflect.InvocationTargetException: null
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[na:1.7.0_71]
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> ~[na:1.7.0_71]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_71]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
> at
> org.eigenbase.rel.metadata.ReflectiveRelMetadataProvider$2$1.invoke(ReflectiveRelMetadataProvider.java:135)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 27 common frames omitted
> Caused by: java.lang.reflect.UndeclaredThrowableException: null
> at com.sun.proxy.$Proxy65.getSelectivity(Unknown Source) ~[na:na]
> at
> org.eigenbase.rel.metadata.RelMetadataQuery.getSelectivity(RelMetadataQuery.java:218)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rel.metadata.RelMdSelectivity.getSelectivity(RelMdSelectivity.java:168)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 32 common frames omitted
> Caused by: java.lang.reflect.InvocationTargetException: null
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[na:1.7.0_71]
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> ~[na:1.7.0_71]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[na:1.7.0_71]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
> at
> org.eigenbase.rel.metadata.ReflectiveRelMetadataProvider$2$1.invoke(ReflectiveRelMetadataProvider.java:135)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 35 common frames omitted
> Caused by: java.lang.AssertionError: RexInputRef index 2 out of range 0..1
> at
> org.eigenbase.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:891)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:878)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at org.eigenbase.rex.RexInputRef.accept(RexInputRef.java:103)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rex.RexProgramBuilder.registerInput(RexProgramBuilder.java:271)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rex.RexProgramBuilder.addProject(RexProgramBuilder.java:184)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rex.RexProgramBuilder.addIdentity(RexProgramBuilder.java:801)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.relopt.RelOptUtil.pushFilterPastProject(RelOptUtil.java:2178)
> ~[optiq-core-0.9-drill-r20.jar:na]
> at
> org.eigenbase.rel.metadata.RelMdSelectivity.getSelectivity(RelMdSelectivity.java:166)
> ~[optiq-core-0.9-drill-r20.jar:na]
> ... 40 common frames omitted



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