You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Jing Huang (JIRA)" <ji...@apache.org> on 2009/10/29 01:30:59 UTC
[jira] Commented: (PIG-859) Optimizer throw error on self-joins
[ https://issues.apache.org/jira/browse/PIG-859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12771220#action_12771220 ]
Jing Huang commented on PIG-859:
--------------------------------
if we do
joina = join rec1 by (a), rec1 by (a) using "merge" ;
New error message is thrown by parser,
Error message is :
Caused by: org.apache.pig.impl.plan.PlanValidationException: ERROR 1108: Duplicate schema alias: rec1::a in "joina"
at org.apache.pig.impl.logicalLayer.validators.SchemaAliasVisitor.validate(SchemaAliasVisitor.java:69)
at org.apache.pig.impl.logicalLayer.validators.SchemaAliasVisitor.visit(SchemaAliasVisitor.java:115)
at org.apache.pig.impl.logicalLayer.LOJoin.visit(LOJoin.java:203)
at org.apache.pig.impl.logicalLayer.LOJoin.visit(LOJoin.java:45)
at org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:67)
at org.apache.pig.impl.plan.DepthFirstWalker.depthFirst(DepthFirstWalker.java:69)
at org.apache.pig.impl.plan.DepthFirstWalker.walk(DepthFirstWalker.java:50)
at org.apache.pig.impl.plan.PlanVisitor.visit(PlanVisitor.java:51)
at org.apache.pig.impl.plan.PlanValidator.validateSkipCollectException(PlanValidator.java:101)
... 13 more
================================================================================
> Optimizer throw error on self-joins
> -----------------------------------
>
> Key: PIG-859
> URL: https://issues.apache.org/jira/browse/PIG-859
> Project: Pig
> Issue Type: Bug
> Components: impl
> Affects Versions: 0.3.0
> Reporter: Ashutosh Chauhan
>
> Doing self-join results in exception thrown by Optimizer. Consider the following query
> {code}
> grunt> A = load 'a';
> grunt> B = Join A by $0, A by $0;
> grunt> explain B;
> 2009-06-20 15:51:38,303 [main] ERROR org.apache.pig.tools.grunt.Grunt -
> ERROR 1094: Attempt to insert between two nodes that were not connected.
> Details at logfile: pig_1245538027026.log
> {code}
> Relevant stack-trace from log-file:
> {code}
> Caused by: org.apache.pig.impl.plan.optimizer.OptimizerException: ERROR
> 2047: Internal error. Unable to introduce split operators.
> at
> org.apache.pig.impl.logicalLayer.optimizer.ImplicitSplitInserter.transform(ImplicitSplitInserter.java:163)
> at
> org.apache.pig.impl.logicalLayer.optimizer.LogicalOptimizer.optimize(LogicalOptimizer.java:163)
> at org.apache.pig.PigServer.compileLp(PigServer.java:844)
> at org.apache.pig.PigServer.compileLp(PigServer.java:781)
> at org.apache.pig.PigServer.getStorePlan(PigServer.java:723)
> at org.apache.pig.PigServer.explain(PigServer.java:566)
> ... 8 more
> Caused by: org.apache.pig.impl.plan.PlanException: ERROR 1094: Attempt
> to insert between two nodes that were not connected.
> at
> org.apache.pig.impl.plan.OperatorPlan.doInsertBetween(OperatorPlan.java:500)
> at
> org.apache.pig.impl.plan.OperatorPlan.insertBetween(OperatorPlan.java:480)
> at
> org.apache.pig.impl.logicalLayer.optimizer.ImplicitSplitInserter.transform(ImplicitSplitInserter.java:139)
> ... 13 more
> {code}
> A possible workaround is:
> {code}
> grunt> A = load 'a';
> grunt> B = load 'a';
> grunt> C = join A by $0, B by $0;
> grunt> explain C;
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.