You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tajo.apache.org by "Hyoungjun Kim (JIRA)" <ji...@apache.org> on 2014/06/20 06:37:24 UTC

[jira] [Comment Edited] (TAJO-881) JOIN with union query occurs NPE

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

Hyoungjun Kim edited comment on TAJO-881 at 6/20/14 4:36 AM:
-------------------------------------------------------------

I found the other error case that is a join with more than 3 tables in a union.
{code:sql}
select orders.o_orderkey 
from orders
join lineitem on orders.o_orderkey = lineitem.l_orderkey
join customer on orders.o_custkey =  customer.c_custkey
union all 
select nation.n_nationkey from nation
{code}

This query throws the following error.
{noformat}
java.lang.NullPointerException
	at org.apache.tajo.engine.planner.PlannerUtil.targetToSchema(PlannerUtil.java:626)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.verifyProjectableOutputSchema(LogicalPlanVerifier.java:62)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitJoin(LogicalPlanVerifier.java:134)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitJoin(LogicalPlanVerifier.java:31)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:84)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitJoin(LogicalPlanVerifier.java:128)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitJoin(LogicalPlanVerifier.java:31)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:84)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitProjection(BasicLogicalPlanVisitor.java:152)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitProjection(LogicalPlanVerifier.java:84)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitProjection(LogicalPlanVerifier.java:31)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:63)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitUnion(BasicLogicalPlanVisitor.java:226)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitUnion(LogicalPlanVerifier.java:165)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitUnion(LogicalPlanVerifier.java:31)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:87)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitRoot(BasicLogicalPlanVisitor.java:142)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:58)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:45)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.verify(LogicalPlanVerifier.java:52)
	at org.apache.tajo.master.GlobalEngine.createLogicalPlan(GlobalEngine.java:491)
	at org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:148)
{noformat}

I'll fix this error within this issue. 


was (Author: hjkim):
I found the other error case that is a join with more than 3 tables in a union.
{code:sql}
select orders.o_orderkey 
from orders
join lineitem on orders.o_orderkey = lineitem.l_orderkey
join customer on orders.c_custkey =  customer.c_custkey
union all 
select nation.n_nationkey from nation
{code}

This query throws the following error.
{noformat}
java.lang.NullPointerException
	at org.apache.tajo.engine.planner.PlannerUtil.targetToSchema(PlannerUtil.java:626)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.verifyProjectableOutputSchema(LogicalPlanVerifier.java:62)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitJoin(LogicalPlanVerifier.java:134)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitJoin(LogicalPlanVerifier.java:31)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:84)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitJoin(LogicalPlanVerifier.java:128)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitJoin(LogicalPlanVerifier.java:31)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:84)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitProjection(BasicLogicalPlanVisitor.java:152)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitProjection(LogicalPlanVerifier.java:84)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitProjection(LogicalPlanVerifier.java:31)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:63)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitUnion(BasicLogicalPlanVisitor.java:226)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitUnion(LogicalPlanVerifier.java:165)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.visitUnion(LogicalPlanVerifier.java:31)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:87)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitRoot(BasicLogicalPlanVisitor.java:142)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:58)
	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:45)
	at org.apache.tajo.engine.planner.LogicalPlanVerifier.verify(LogicalPlanVerifier.java:52)
	at org.apache.tajo.master.GlobalEngine.createLogicalPlan(GlobalEngine.java:491)
	at org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:148)
{noformat}

I'll fix this error within this issue. 

> JOIN with union query occurs NPE  
> ----------------------------------
>
>                 Key: TAJO-881
>                 URL: https://issues.apache.org/jira/browse/TAJO-881
>             Project: Tajo
>          Issue Type: Bug
>            Reporter: Hyoungjun Kim
>            Assignee: Hyoungjun Kim
>            Priority: Minor
>
> The following query occurs NPE.
> {code:sql}
> select a.id, b.c_name from ( 
>   select l_partkey as id from lineitem 
>   union all 
>   select o_orderkey as id from orders 
> ) a 
> join customer b on a.id = b.c_custkey
> {code}
> {noformat}
> 2014-06-18 16:33:54,592 ERROR: org.apache.tajo.master.querymaster.QueryMasterTask (startQuery(364)) - 
> java.lang.NullPointerException
> 	at org.apache.tajo.engine.planner.global.DataChannel.<init>(DataChannel.java:55)
> 	at org.apache.tajo.engine.planner.global.GlobalPlanner.createDataChannelFromJoin(GlobalPlanner.java:178)
> 	at org.apache.tajo.engine.planner.global.GlobalPlanner.buildJoinPlan(GlobalPlanner.java:315)
> 	at org.apache.tajo.engine.planner.global.GlobalPlanner.access$300(GlobalPlanner.java:54)
> 	at org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitJoin(GlobalPlanner.java:1106)
> 	at org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitJoin(GlobalPlanner.java:967)
> 	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:84)
> 	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitRoot(BasicLogicalPlanVisitor.java:142)
> 	at org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitRoot(GlobalPlanner.java:972)
> 	at org.apache.tajo.engine.planner.global.GlobalPlanner$DistributedPlannerVisitor.visitRoot(GlobalPlanner.java:967)
> 	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:58)
> 	at org.apache.tajo.engine.planner.global.GlobalPlanner.build(GlobalPlanner.java:134)
> 	at org.apache.tajo.master.querymaster.QueryMasterTask.startQuery(QueryMasterTask.java:356)
> 	at org.apache.tajo.master.querymaster.QueryMasterTask.start(QueryMasterTask.java:176)
> 	at org.apache.tajo.master.querymaster.QueryMaster$QueryStartEventHandler.handle(QueryMaster.java:380)
> 	at org.apache.tajo.master.querymaster.QueryMaster$QueryStartEventHandler.handle(QueryMaster.java:371)
> 	at org.apache.tajo.master.TajoAsyncDispatcher.dispatch(TajoAsyncDispatcher.java:137)
> 	at org.apache.tajo.master.TajoAsyncDispatcher$1.run(TajoAsyncDispatcher.java:79)
> 	at java.lang.Thread.run(Thread.java:744)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)