[ https://issues.apache.org/jira/browse/DRILL-1563?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14288108#comment-14288108 ]
Jinfeng Ni commented on DRILL-1563: ----------------------------------- This seems to be have been fixed. I run a simliar query on today's master branch, and got correct results. {code} 0: jdbc:drill:zk=local> select count(*) from (select o_orderkey, o_custkey from cp.`tpch/orders.parquet` order by o_orderkey, o_custkey); +------------+ | EXPR$0 | +------------+ | 15000 | +------------+ 1 row selected (0.491 seconds) 0: jdbc:drill:zk=local> select * from sys.version; +------------+----------------+-------------+-------------+------------+ | commit_id | commit_message | commit_time | build_email | build_time | +------------+----------------+-------------+-------------+------------+ | 8d1e1affe86a5adca3bc17eeaf7520f0d379a393 | DRILL-1932: Query fails if the first record batch does not contain any record | 20.01.2015 @ 23:02:03 PST | j...@maprtech.com | 22.01.2015 @ 11:19:02 PST | +------------+----------------+-------------+-------------+------------+ 1 row selected (0.108 seconds) {code} Can you re-run the original query? If the issue is still there, please re-open it. > IndexOutOfBoundException during change traits when aggregating over subquery > with order-by > ------------------------------------------------------------------------------------------- > > Key: DRILL-1563 > URL: https://issues.apache.org/jira/browse/DRILL-1563 > Project: Apache Drill > Issue Type: Bug > Components: Query Planning & Optimization > Affects Versions: 0.6.0 > Reporter: Aman Sinha > Assignee: Jinfeng Ni > Fix For: 0.8.0 > > > On TPCH SF1, doing a plain aggregation on top of a subquery that does > order-by of 2 or more columns gives IOBE. This happens during planning, when > processing traits. See below. > 0: jdbc:drill:zk=local> select count(*) from (select o_orderkey, o_custkey > from orders order by o_orderkey, o_custkey); > Query failed: Failure while setting up Foreman. index (1) must be less than > size (1) > Query failed: Failure while setting up Foreman. index (1) must be less than > size (1) [4f2cc753-655e-47a1-a8f0-38e62eb79a2b] > Here's the stack trace: > java.lang.IndexOutOfBoundsException: index (1) must be less than size (1) > > com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:305) > ~[guava-14.0.1.jar:na] > > com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:284) > ~[guava-14.0.1.jar:na] > > com.google.common.collect.SingletonImmutableList.get(SingletonImmutableList.java:45) > ~[guava-14.0.1.jar:na] > org.eigenbase.rex.RexBuilder.makeInputRef(RexBuilder.java:764) > ~[optiq-core-0.9-drill-r4.jar:na] > org.eigenbase.rel.SortRel.<init>(SortRel.java:94) > ~[optiq-core-0.9-drill-r4.jar:na] > org.eigenbase.rel.SortRel.<init>(SortRel.java:59) > ~[optiq-core-0.9-drill-r4.jar:na] > > org.eigenbase.rel.RelCollationTraitDef.convert(RelCollationTraitDef.java:77) > ~[optiq-core-0.9-drill-r4.jar:na] > > org.eigenbase.rel.RelCollationTraitDef.convert(RelCollationTraitDef.java:36) > ~[optiq-core-0.9-drill-r4.jar:na] > > org.eigenbase.relopt.volcano.VolcanoPlanner.changeTraitsUsingConverters(VolcanoPlanner.java:1010) > ~[optiq-core-0.9-drill-r4.jar:na] > > org.eigenbase.relopt.volcano.VolcanoPlanner.changeTraitsUsingConverters(VolcanoPlanner.java:1102) > ~[optiq-core-0.9-drill-r4.jar:na] > > org.eigenbase.relopt.volcano.AbstractConverter$ExpandConversionRule.onMatch(AbstractConverter.java:107) > ~[optiq-core-0.9-drill-r4.jar:na] > > org.eigenbase.relopt.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:223) > ~[optiq-core-0.9-drill-r4.jar:na] > > org.eigenbase.relopt.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:661) > ~[optiq-core-0.9-drill-r4.jar:na] > > net.hydromatic.optiq.tools.Programs$RuleSetProgram.run(Programs.java:165) > ~[optiq-core-0.9-drill-r4.jar:na] > > net.hydromatic.optiq.prepare.PlannerImpl.transform(PlannerImpl.java:273) > ~[optiq-core-0.9-drill-r4.jar:na] > > org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToPrel(DefaultSqlHandler.java:165) > ~[drill-java-exec-0.6.0-incubating-rebuffed.jar:0.6.0-incubating] > > org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:134) > ~[drill-java-exec-0.6.0-incubating-rebuffed.jar:0.6.0-incubating] > > org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:132) > ~[drill-java-exec-0.6.0-incubating-rebuffed.jar:0.6.0-incubating] > org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:425) > ~[drill-java-exec-0.6.0-incubating-rebuffed.jar:0.6.0-incubating] > org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:219) > ~[drill-java-exec-0.6.0-incubating-rebuffed.jar:0.6.0-incubating] > > org.apache.drill.exec.work.WorkManager$RunnableWrapper.run(WorkManager.java:250) > [drill-java-exec-0.6.0-incubating-rebuffed.jar:0.6.0-incubating] > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > [na:1.7.0_45] > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > [na:1.7.0_45] > java.lang.Thread.run(Thread.java:744) [na:1.7.0_45] -- This message was sent by Atlassian JIRA (v6.3.4#6332)