You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Sean Hsuan-Yi Chu (JIRA)" <ji...@apache.org> on 2015/04/08 00:53:15 UTC

[jira] [Commented] (DRILL-2704) Schema change not reported in Union All query

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

Sean Hsuan-Yi Chu commented on DRILL-2704:
------------------------------------------

The exception was thrown by the Filter beneath Union-All

Essentially, let's take Union-All's left leg as an example (Note that your 2nd query did not have WHERE-CLAUSE).
 
select columns[0] from `f2.csv` where columns[0] = 100000;

Given the filter "columns[0] = 100000", Drill would try to cast each row to an Integer one row by one row. Then, as it reaches the first entry which is not cast-able to Integer, exception gets thrown.

> Schema change not reported in Union All query
> ---------------------------------------------
>
>                 Key: DRILL-2704
>                 URL: https://issues.apache.org/jira/browse/DRILL-2704
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>    Affects Versions: 0.9.0
>         Environment: 4 node cluster on CentOS 
>            Reporter: Khurram Faraaz
>            Assignee: Sean Hsuan-Yi Chu
>
> Schema change is not reported in Union All query. Inputs to Union All read from CSV file.
> {code}
> 0: jdbc:drill:> select columns[0] from `f1.csv` where columns[0] = 13 union all select columns[0] from `f2.csv` where columns[0] = 100000;
> Query failed: RemoteRpcException: Failure while running fragment., 99999.99 [ a80303f5-781c-4288-875e-90ad60c8caac on centos-02.qa.lab:31010 ]
> [ a80303f5-781c-4288-875e-90ad60c8caac on centos-02.qa.lab:31010 ]
> Error: exception while executing query: Failure while executing query. (state=,code=0)
> 0: jdbc:drill:> select * from `f1.csv`;
> +------------+
> |  columns   |
> +------------+
> | ["1"]      |
> | ["2"]      |
> | ["55"]     |
> | ["77"]     |
> | ["-1000000"] |
> | ["13"]     |
> | ["17"]     |
> | ["19"]     |
> | ["2"]      |
> | ["10000000"] |
> | ["999999"] |
> | ["99999.99"] |
> | ["12345.987"] |
> | ["Hello World"] |
> | ["this is a test string"] |
> | ["foobar"] |
> | []         |
> | ["new string"] |
> | ["34534534"] |
> | ["345345"] |
> | ["2321312"] |
> | ["67867867"] |
> | ["112319089"] |
> | ["-14695967"] |
> | ["100"]    |
> | ["99"]     |
> | ["7"]      |
> | ["5"]      |
> | ["13"]     |
> | []         |
> | []         |
> | []         |
> | ["0"]      |
> | ["1"]      |
> | ["-1"]     |
> | null       |
> | null       |
> | null       |
> | null       |
> +------------+
> 39 rows selected (0.16 seconds)
> 0: jdbc:drill:> select * from `f2.csv`;
> +------------+
> |  columns   |
> +------------+
> | ["1"]      |
> | ["0"]      |
> | ["-1"]     |
> | ["999999"] |
> | ["10000000"] |
> | ["100000"] |
> | ["-13"]    |
> | ["-17"]    |
> | ["19"]     |
> | ["17"]     |
> | ["13"]     |
> | []         |
> | ["no way"] |
> | ["good quality"] |
> | []         |
> | ["done!"]  |
> | ["Yay!!!"] |
> | null       |
> +------------+
> 18 rows selected (0.128 seconds)
> Casting columns[0] to varchar gives correct results
> 0: jdbc:drill:> select cast(columns[0] as varchar(100)) from `f1.csv` where columns[0] = '13' union all select cast(columns[0] as varchar(100)) from `f2.csv` where columns[0] = '100000';
> +------------+
> |   EXPR$0   |
> +------------+
> | 13         |
> | 13         |
> | 100000     |
> +------------+
> 3 rows selected (0.474 seconds)
> Stack trace from drillbit.log for failing query
> 2015-04-06 23:31:43,674 [2adce8a0-24c8-58ad-2f46-30c42a33ef2a:frag:0:0] ERROR o.a.d.e.w.f.AbstractStatusReporter - Error a4ec50e8-88ea-4474-9a36-b2250f34e340: Failure while running fragment.
> java.lang.NumberFormatException: 99999.99
>         at org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.nfeI(StringFunctionHelpers.java:96) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.varCharToInt(StringFunctionHelpers.java:121) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.test.generated.FiltererGen37.doEval(FilterTemplate2.java:42) ~[na:na]
>         at org.apache.drill.exec.test.generated.FiltererGen37.filterBatchNoSV(FilterTemplate2.java:98) ~[na:na]
>         at org.apache.drill.exec.test.generated.FiltererGen37.filterBatch(FilterTemplate2.java:71) ~[na:na]
>         at org.apache.drill.exec.physical.impl.filter.FilterRecordBatch.doWork(FilterRecordBatch.java:82) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:93) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:99) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:89) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.svremover.RemovingRecordBatch.innerNext(RemovingRecordBatch.java:96) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:99) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:89) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:134) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:99) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:89) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.union.UnionAllRecordBatch$UnionAllInput$OneSideInput.nextBatch(UnionAllRecordBatch.java:452) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.union.UnionAllRecordBatch$UnionAllInput.nextBatch(UnionAllRecordBatch.java:295) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.union.UnionAllRecordBatch.innerNext(UnionAllRecordBatch.java:102) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:68) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:96) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:58) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:163) ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38) [drill-common-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_75]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_75]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_75]
> 2015-04-06 23:31:43,675 [2adce8a0-24c8-58ad-2f46-30c42a33ef2a:frag:0:0] INFO  o.a.drill.exec.work.foreman.Foreman - State change requested.  RUNNING --> FAILED
> org.apache.drill.exec.rpc.RemoteRpcException: Failure while running fragment., 99999.99 [ a4ec50e8-88ea-4474-9a36-b2250f34e340 on centos-02.qa.lab:31010 ]
> [ a4ec50e8-88ea-4474-9a36-b2250f34e340 on centos-02.qa.lab:31010 ]
>         at org.apache.drill.exec.work.foreman.QueryManager.statusUpdate(QueryManager.java:163) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.QueryManager$RootStatusReporter.statusChange(QueryManager.java:281) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.work.fragment.AbstractStatusReporter.fail(AbstractStatusReporter.java:114) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.work.fragment.AbstractStatusReporter.fail(AbstractStatusReporter.java:110) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.work.fragment.FragmentExecutor.internalFail(FragmentExecutor.java:230) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:182) [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38) [drill-common-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_75]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_75]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_75]
> {code}



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