[
https://issues.apache.org/jira/browse/DRILL-3862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Victoria Markman updated DRILL-3862:
------------------------------------
Attachment: orders.tar
> Assert in a query during partition pruning with the dir0 and coalesce
> function
> -------------------------------------------------------------------------------
>
> Key: DRILL-3862
> URL: https://issues.apache.org/jira/browse/DRILL-3862
> Project: Apache Drill
> Issue Type: Bug
> Components: Query Planning & Optimization
> Affects Versions: 1.2.0
> Reporter: Victoria Markman
> Attachments: orders.tar
>
>
> Enable asserts, run query below. Table is attached.
> Somewhat similar to DRILL-3667, reproduces consistently.
> {code}
> select
> count(*)
> from
> `/drill/testdata/partition_pruning/dfs/orders`
> where
> dir0 = coalesce(o_orderdate, '1993') and o_custkey >= 100;
> {code}
> -- Assert
> {code}
> 0: jdbc:drill:schema=dfs> select
> . . . . . . . . . . . . > count(*)
> . . . . . . . . . . . . > from
> . . . . . . . . . . . . >
> `/drill/testdata/partition_pruning/dfs/orders`
> . . . . . . . . . . . . > where
> . . . . . . . . . . . . > dir0 = coalesce(o_orderdate, '1993') and
> o_custkey >= 100;
> Error: SYSTEM ERROR: AssertionError
> [Error Id: 8533447a-1d36-4d25-9a5f-1cb22770de9b on atsqa4-133.qa.lab:31010]
> (state=,code=0)
> {code}
> -- works: just coalesce
> {code}
> 0: jdbc:drill:schema=dfs> select
> . . . . . . . . . . . . > count(*)
> . . . . . . . . . . . . > from
> . . . . . . . . . . . . >
> `/drill/testdata/partition_pruning/dfs/orders`
> . . . . . . . . . . . . > where
> . . . . . . . . . . . . > dir0 = coalesce(o_orderdate, '1993');
> +---------+
> | EXPR$0 |
> +---------+
> | 0 |
> +---------+
> 1 row selected (0.351 seconds)
> {code}
> -- works: date_part function
> {code}
> 0: jdbc:drill:schema=dfs> select
> . . . . . . . . . . . . > count(*)
> . . . . . . . . . . . . > from
> . . . . . . . . . . . . >
> `/drill/testdata/partition_pruning/dfs/orders`. . . . . . . . . . . . >
> where. . . . . . . . . . . . > date_part('year', o_orderdate) =
> dir0;+---------+
> | EXPR$0 |
> +---------+| 2281 |+---------+
> 1 row selected (0.43 seconds)
> {code}
> drillbit.log
> {code}
> 015-09-29 23:04:10,664 [29f4e714-fc3e-f2c0-6ad2-0f024c1df78f:foreman] ERROR
> o.a.drill.exec.work.foreman.Foreman - SYSTEM ERROR: AssertionError
> [Error Id: 8533447a-1d36-4d25-9a5f-1cb22770de9b on atsqa4-133.qa.lab:31010]
> org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: AssertionError
> [Error Id: 8533447a-1d36-4d25-9a5f-1cb22770de9b on atsqa4-133.qa.lab:31010]
> at
> org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:534)
> ~[drill-common-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.work.foreman.Foreman$ForemanResult.close(Foreman.java:742)
> [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.work.foreman.Foreman$StateSwitch.processEvent(Foreman.java:841)
> [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.work.foreman.Foreman$StateSwitch.processEvent(Foreman.java:786)
> [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.common.EventProcessor.sendEvent(EventProcessor.java:73)
> [drill-common-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.work.foreman.Foreman$StateSwitch.moveToState(Foreman.java:788)
> [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.work.foreman.Foreman.moveToState(Foreman.java:894)
> [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:255)
> [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.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: Internal error: Error while
> applying rule PruneScanRule:Filter_On_Scan, args
> [rel#7410:DrillFilterRel.LOGICAL.ANY([]).[](input=rel#7407:Subset#0.LOGICAL.ANY([]).[],condition=AND(=($1,
> CASE(IS NOT NULL($2), $2, '1993')), >=($3, 100))),
> rel#7423:DrillScanRel.LOGICAL.ANY([]).[](table=[dfs,
> /drill/testdata/partition_pruning/dfs/orders],groupscan=ParquetGroupScan
> [entries=[ReadEntryWithPath
> [path=maprfs:/drill/testdata/partition_pruning/dfs/orders/1994/02.parquet],
> ReadEntryWithPath
> [path=maprfs:/drill/testdata/partition_pruning/dfs/orders/1993/01.parquet],
> ReadEntryWithPath
> [path=maprfs:/drill/testdata/partition_pruning/dfs/orders/1995/03.parquet]],
> selectionRoot=maprfs:/drill/testdata/partition_pruning/dfs/orders,
> numFiles=3, columns=[`*`]])]
> ... 4 common frames omitted
> Caused by: java.lang.AssertionError: Internal error: Error while applying
> rule PruneScanRule:Filter_On_Scan, args
> [rel#7410:DrillFilterRel.LOGICAL.ANY([]).[](input=rel#7407:Subset#0.LOGICAL.ANY([]).[],condition=AND(=($1,
> CASE(IS NOT NULL($2), $2, '1993')), >=($3, 100))),
> rel#7423:DrillScanRel.LOGICAL.ANY([]).[](table=[dfs,
> /drill/testdata/partition_pruning/dfs/orders],groupscan=ParquetGroupScan
> [entries=[ReadEntryWithPath
> [path=maprfs:/drill/testdata/partition_pruning/dfs/orders/1994/02.parquet],
> ReadEntryWithPath
> [path=maprfs:/drill/testdata/partition_pruning/dfs/orders/1993/01.parquet],
> ReadEntryWithPath
> [path=maprfs:/drill/testdata/partition_pruning/dfs/orders/1995/03.parquet]],
> selectionRoot=maprfs:/drill/testdata/partition_pruning/dfs/orders,
> numFiles=3, columns=[`*`]])]
> at org.apache.calcite.util.Util.newInternal(Util.java:792)
> ~[calcite-core-1.4.0-drill-r5.jar:1.4.0-drill-r5]
> at
> org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:251)
> ~[calcite-core-1.4.0-drill-r5.jar:1.4.0-drill-r5]
> at
> org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:808)
> ~[calcite-core-1.4.0-drill-r5.jar:1.4.0-drill-r5]
> at
> org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:303)
> ~[calcite-core-1.4.0-drill-r5.jar:1.4.0-drill-r5]
> at
> org.apache.calcite.prepare.PlannerImpl.transform(PlannerImpl.java:303)
> ~[calcite-core-1.4.0-drill-r5.jar:1.4.0-drill-r5]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.logicalPlanningVolcanoAndLopt(DefaultSqlHandler.java:545)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:213)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:248)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:164)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:178)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:905)
> [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:244)
> [drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> ... 3 common frames omitted
> Caused by: java.lang.AssertionError: null
> at
> org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.popOpStackAndBuildFilter(FindPartitionConditions.java:188)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.analyzeCall(FindPartitionConditions.java:316)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:241)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:46)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at org.apache.calcite.rex.RexCall.accept(RexCall.java:107)
> ~[calcite-core-1.4.0-drill-r5.jar:1.4.0-drill-r5]
> at
> org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.analyze(FindPartitionConditions.java:118)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.planner.logical.partition.PruneScanRule.doOnMatch(PruneScanRule.java:174)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.drill.exec.planner.logical.partition.PruneScanRule$2.onMatch(PruneScanRule.java:130)
> ~[drill-java-exec-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> at
> org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:228)
> ~[calcite-core-1.4.0-drill-r5.jar:1.4.0-drill-r5]
> ... 13 common frames omitted
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)