[
https://issues.apache.org/jira/browse/DRILL-789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14011319#comment-14011319
]
Krystal commented on DRILL-789:
-------------------------------
git.commit.id.abbrev=5b8f8d8
The query now fails an error:
0: jdbc:drill:schema=dfs> select voter.name voter_name, voter.registration
registration, student.name student_name, student.gpa gpa from voter left outer
join student on (student.name = voter.name);
message: "Failure while setting up Foreman. < AssertionError"
Seems like the problem occurs when the columns in the select statement are not
the same as the join columns - in this case the "name" column or the select
columns are from the right table. The following modified queries run
successfully:
select student.name, voter.name from student left outer join voter on
(student.student_id = voter.voter_id);
select student.student_id, voter.voter_id, student.name, student.age from
student left outer join voter on (student.student_id = voter.voter_id);
If you add a column from the voter table to either one of the query above, the
query fails:
select student.student_id, voter.voter_id, student.name, student.age,
voter.contributions from student left outer join voter on (student.student_id =
voter.voter_id);
Below is the stack trace:
ava.lang.AssertionError
org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.getRootField(SqlToRelConverter.java:3932)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter.adjustInputRef(SqlToRelConverter.java:3214)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter.convertIdentifier(SqlToRelConverter.java:3189)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter.access$1400(SqlToRelConverter.java:62)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:4220)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:3611)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql.SqlIdentifier.accept(SqlIdentifier.java:222)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.convertExpression(SqlToRelConverter.java:4116)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.StandardConvertletTable$7.convertCall(StandardConvertletTable.java:130)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlNodeToRexConverterImpl.convertCall(SqlNodeToRexConverterImpl.java:52)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:4210)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:3611)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql.SqlCall.accept(SqlCall.java:133)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.convertExpression(SqlToRelConverter.java:4116)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter.convertSelectList(SqlToRelConverter.java:3427)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:519)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:474)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:2787)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.eigenbase.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:432)
~[optiq-core-0.7-20140513.013236-5.jar:na]
net.hydromatic.optiq.prepare.PlannerImpl.convert(PlannerImpl.java:192)
~[optiq-core-0.7-20140513.013236-5.jar:na]
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRel(DefaultSqlHandler.java:124)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:106)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:129)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:313)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:167)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[na:1.7.0_45]
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[na:1.7.0_45]
java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
> Left outer join returns "null" values for columns from the right table
> ----------------------------------------------------------------------
>
> Key: DRILL-789
> URL: https://issues.apache.org/jira/browse/DRILL-789
> Project: Apache Drill
> Issue Type: Bug
> Components: Functions - Drill
> Reporter: Krystal
> Attachments: DRILL-789.patch
>
>
> git.commit.id.abbrev=5d7e3d3
> 0: jdbc:drill:schema=dfs> select voter.name voter_name, voter.registration
> registration, student.name student_name, student.gpa gpa from voter left
> outer join student on (student.name = voter.name) where voter.age < 30;
> +------------+--------------+--------------+------------+
> | voter_name | registration | student_name | gpa |
> +------------+--------------+--------------+------------+
> | [B@6ca2652 | [B@4199d4f9 | null | null |
> | [B@5a6d4914 | [B@3cd8ee6d | null | null |
> | [B@460d5550 | [B@155c1b1e | null | null |
> | [B@51f85986 | [B@7bd9675 | null | null |
> | [B@2fe0df4b | [B@5463cd7b | null | null |
> | [B@64477185 | [B@e6e0632 | null | null |
--
This message was sent by Atlassian JIRA
(v6.2#6252)