You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Aman Sinha (JIRA)" <ji...@apache.org> on 2015/01/01 01:13:13 UTC

[jira] [Commented] (DRILL-1905) UNION ALL of two identical json files fails with exception

    [ https://issues.apache.org/jira/browse/DRILL-1905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14262505#comment-14262505 ] 

Aman Sinha commented on DRILL-1905:
-----------------------------------

The resultType is created as nullable because of the following code just outside the for loop, which overwrites the resultType:  
   ...
    if (resultType != null && anyNullable) {
      resultType = createTypeWithNullability(resultType, true);
    }

So if any of the input types is nullable, then the least restrictive output type will be created as nullable.  

> UNION ALL of two identical json files fails with exception
> ----------------------------------------------------------
>
>                 Key: DRILL-1905
>                 URL: https://issues.apache.org/jira/browse/DRILL-1905
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>    Affects Versions: 0.7.0
>            Reporter: Victoria Markman
>            Assignee: Aman Sinha
>             Fix For: 0.8.0
>
>         Attachments: 0001-Create-result-type-for-ANY-in-leastRestrictiveSqlTyp.patch, 0001-DRILL-1905-There-are-3-parts-of-the-fix-1-Check-comp.patch
>
>
> {code} git.commit.id.abbrev=e3ab2c1 {code}
> {code}
> 0: jdbc:drill:schema=dfs> select * from `logs/2014/02/t.json`;
> +------------+------------+------------+
> |     a1     |     b1     |     c1     |
> +------------+------------+------------+
> | 0          | 0          | true       |
> | 0          | 0          | false      |
> | 0          | 0          | false      |
> | 1          | 1          | true       |
> | 1          | 1          | true       |
> +------------+------------+------------+
> 5 rows selected (0.099 seconds)
> 0: jdbc:drill:schema=dfs> select * from `logs/2014/03/t.json`;
> +------------+------------+------------+
> |     a1     |     b1     |     c1     |
> +------------+------------+------------+
> | 0          | 0          | true       |
> | 0          | 0          | false      |
> | 0          | 0          | false      |
> | 1          | 1          | true       |
> | 1          | 1          | true       |
> +------------+------------+------------+
> 5 rows selected (0.065 seconds)
> 0: jdbc:drill:schema=dfs> select * from `logs/2014/02/t.json` union all select * from `logs/2014/03/t.json`;
> Query failed: Query failed: Unexpected exception during fragment initialization: DrillUnionRel#1680
> Error: exception while executing query: Failure while executing query. (state=,code=0)
> 2014-12-20 01:27:01,939 [2b6b2f9a-7e4e-1670-5210-c2a8dabea33b:foreman] ERROR o.a.drill.exec.work.foreman.Foreman - Error 4505ba6b-a2b6-4355-aac1-1edd74bc347d: Query failed: Unexpected exception during fragment initialization: DrillUnionRel#1680
> org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception during fragment initialization: DrillUnionRel#1680
>         at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:194) [drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.apache.drill.exec.work.WorkManager$RunnableWrapper.run(WorkManager.java:254) [drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-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: java.lang.AssertionError: DrillUnionRel#1680
>         at org.eigenbase.rel.AbstractRelNode.getRowType(AbstractRelNode.java:211) ~[optiq-core-0.9-drill-r12.jar:na]
>         at org.apache.drill.exec.planner.common.DrillUnionRelBase.isCompatible(DrillUnionRelBase.java:44) ~[drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.apache.drill.exec.planner.common.DrillUnionRelBase.<init>(DrillUnionRelBase.java:38) ~[drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.apache.drill.exec.planner.logical.DrillUnionRel.<init>(DrillUnionRel.java:42) ~[drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.apache.drill.exec.planner.logical.DrillUnionRel.copy(DrillUnionRel.java:49) ~[drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.apache.drill.exec.planner.logical.DrillUnionRel.copy(DrillUnionRel.java:38) ~[drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.eigenbase.rel.SetOpRel.copy(SetOpRel.java:73) ~[optiq-core-0.9-drill-r12.jar:na]
>         at org.eigenbase.rel.SetOpRel.copy(SetOpRel.java:33) ~[optiq-core-0.9-drill-r12.jar:na]
>         at org.eigenbase.relopt.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:472) ~[optiq-core-0.9-drill-r12.jar:na]
>         at org.eigenbase.relopt.volcano.RelSubset.buildCheapestPlan(RelSubset.java:287) ~[optiq-core-0.9-drill-r12.jar:na]
>         at org.eigenbase.relopt.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:677) ~[optiq-core-0.9-drill-r12.jar:na]
>         at net.hydromatic.optiq.tools.Programs$RuleSetProgram.run(Programs.java:165) ~[optiq-core-0.9-drill-r12.jar:na]
>         at net.hydromatic.optiq.prepare.PlannerImpl.transform(PlannerImpl.java:276) ~[optiq-core-0.9-drill-r12.jar:na]
>         at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:155) ~[drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:134) ~[drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:145) ~[drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:507) [drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:185) [drill-java-exec-0.7.0-r2-SNAPSHOT-rebuffed.jar:0.7.0-r2-SNAPSHOT]
>         ... 4 common frames omitted
> {code}
> It looks like it fails in optiq ... maybe.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)