Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-2828

Nested WHERE clause error on a HBase view

    XMLWordPrintableJSON

Details

    Description

      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        |
      +------------+
      
      

      This produces the error:

      > select v.json.prop.len as len from MyTableView v where v.json.prop.len >
      2;
      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
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            isubuz Subhajit Ghosh
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: