You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Victoria Markman (JIRA)" <ji...@apache.org> on 2015/09/30 01:23:05 UTC

[jira] [Created] (DRILL-3862) Assert in a query during partition pruning with the dir0 and coalesce function

Victoria Markman created DRILL-3862:
---------------------------------------

             Summary: 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)