Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
0.8.0
-
None
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