[ 
https://issues.apache.org/jira/browse/DRILL-2876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sean Hsuan-Yi Chu updated DRILL-2876:
-------------------------------------
    Assignee: Sean Hsuan-Yi Chu  (was: Jinfeng Ni)

> Data from RHS of Union All is lost, when column on LHS is non-existent
> ----------------------------------------------------------------------
>
>                 Key: DRILL-2876
>                 URL: https://issues.apache.org/jira/browse/DRILL-2876
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>    Affects Versions: 0.9.0
>         Environment: 64e3ec52b93e9331aa5179e040eca19afece8317 | DRILL-2611: 
> value vectors should report valid value count | 16.04.2015 @ 13:53:34 EDT
>            Reporter: Khurram Faraaz
>            Assignee: Sean Hsuan-Yi Chu
>            Priority: Critical
>
> When column projected on left hand side of UNION ALL operator is non-existent 
> (it does not exist in the parquet file) and column projected on RHS is of 
> varchar type and it exists in the parquet file. In the UNION ALL results we 
> see that the varchar data coming from RHS is lost and returned as null. Test 
> was performed on 4 node cluster on CentOS. Data was read from two different 
> parquet files.
> Failing query is,
> {code}
> 0: jdbc:drill:> select dbl from prqFrmCSV104 union all select col_vchar from 
> prqFrmCSV105;
> +------------+
> |    dbl     |
> +------------+
> | null       |
> | null       |
> | null       |
> | null       |
> | null       |
> | null       |
> | null       |
> | null       |
> ...
> | null       |
> | null       |
> | null       |
> java.lang.RuntimeException: java.sql.SQLException: Failure while executing 
> query.
>       at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2514)
>       at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
>       at sqlline.SqlLine.print(SqlLine.java:1809)
>       at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
>       at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
>       at sqlline.SqlLine.dispatch(SqlLine.java:889)
>       at sqlline.SqlLine.begin(SqlLine.java:763)
>       at sqlline.SqlLine.start(SqlLine.java:498)
>       at sqlline.SqlLine.main(SqlLine.java:460)
> {code}
> CTAS statements were
> {code}
> create table prqFrmCSV104 as select cast(columns[0] as int) col_int, 
> cast(columns[1] as bigint) col_bgint, cast(columns[2] as char(10)) col_char, 
> cast(columns[3] as varchar(18)) col_vchar, cast(columns[4] as timestamp) 
> col_tmstmp, cast(columns[5] as date) col_date, cast(columns[6] as boolean) 
> col_boln, cast(columns[7] as double) col_dbl from `csvToPrqOrg.csv`;
> {code}
> {code}
> select col_int, col_bgint, col_char, col_vchar, col_tmstmp, col_date, 
> col_boln, col_dbl from prqFrmCSV104;
> 21.   19: create table prqFrmCSV105 as select cast(columns[0] as int) 
> col_int, cast(columns[1] as bigint) col_bgint, cast(columns[2] as char(10)) 
> col_char, cast(columns[3] as varchar(18)) col_vchar, cast(columns[4] as 
> timestamp) col_tmstmp, cast(columns[5] as date) col_date, cast(columns[6] as 
> boolean) col_boln, cast(columns[7] as double) col_dbl from `csvToPrqOrg.csv`;
> {code}
> Stack trace
> {code}
> 2015-04-24 22:43:19,226 [2ac538f7-bdf6-0db5-ef85-cad3f4e79add:frag:0:0] ERROR 
> o.a.drill.exec.ops.FragmentContext - Fragment Context received failure -- 
> Fragment: 0:0
> org.apache.drill.common.exceptions.DrillUserException: SYSTEM ERROR: 
> njEl0iAivVwLEbAg
> [0f4a4008-c885-43ea-9ea1-8e9cde0e4119 on centos-04.qa.lab:31010]
>         at 
> org.apache.drill.common.exceptions.DrillUserException$Builder.build(DrillUserException.java:115)
>  ~[drill-common-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at 
> org.apache.drill.common.exceptions.ErrorHelper.wrap(ErrorHelper.java:39) 
> ~[drill-common-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.ops.FragmentContext.fail(FragmentContext.java:151) 
> ~[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]
> Caused by: java.lang.NumberFormatException: njEl0iAivVwLEbAg
>         at 
> org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.nfeI(StringFunctionHelpers.java:97)
>  ~[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:122)
>  ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.test.generated.UnionAllerGen303.doEval(UnionAllerTemplate.java:41)
>  ~[na:na]
>         at 
> org.apache.drill.exec.test.generated.UnionAllerGen303.unionRecords(UnionAllerTemplate.java:43)
>  ~[na:na]
>         at 
> org.apache.drill.exec.physical.impl.union.UnionAllRecordBatch.doWork(UnionAllRecordBatch.java:257)
>  ~[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:113)
>  ~[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:74) 
> ~[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:76)
>  ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:64) 
> ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:164)
>  [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         ... 4 common frames omitted
> 2015-04-24 22:43:19,227 [2ac538f7-bdf6-0db5-ef85-cad3f4e79add:frag:0:0] INFO  
> o.a.drill.exec.work.foreman.Foreman - State change requested.  RUNNING --> 
> FAILED
> org.apache.drill.common.exceptions.DrillRemoteException: SYSTEM ERROR: 
> njEl0iAivVwLEbAg
> [17d1cc16-8b8f-43f0-8ed5-df944047fd42 on centos-04.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:235)
>  [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:183)
>  [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)

Reply via email to