New logical plan: Nested foreach plan fail if one inner alias is refered more 
than once
---------------------------------------------------------------------------------------

                 Key: PIG-1683
                 URL: https://issues.apache.org/jira/browse/PIG-1683
             Project: Pig
          Issue Type: Bug
          Components: impl
    Affects Versions: 0.8.0
            Reporter: Daniel Dai
            Assignee: Daniel Dai
             Fix For: 0.8.0


The following script fail:

{code}
a = load '1.txt' as (a0, a1, a2);
b = load '2.txt' as (b0, b1);
c = join a by a0, b by b0;
d = foreach c {
    d0 = a::a0;
    d1 = a::a1;
    generate ((d0 is not null)? d0 : d1);
}
explain d;
{code}

Stack:
ERROR 2015: Invalid physical operators in the physical plan

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1067: Unable to 
explain alias d
        at org.apache.pig.PigServer.explain(PigServer.java:957)
        at 
org.apache.pig.tools.grunt.GruntParser.explainCurrentBatch(GruntParser.java:353)
        at 
org.apache.pig.tools.grunt.GruntParser.processExplain(GruntParser.java:285)
        at 
org.apache.pig.tools.grunt.GruntParser.processExplain(GruntParser.java:248)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.Explain(PigScriptParser.java:605)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:327)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:141)
        at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:90)
        at org.apache.pig.Main.run(Main.java:498)
        at org.apache.pig.Main.main(Main.java:107)
Caused by: org.apache.pig.impl.logicalLayer.FrontendException: ERROR 2042: 
Error in new logical plan. Try -Dpig.usenewlogicalplan=false.
        at 
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.compile(HExecutionEngine.java:308)
        at org.apache.pig.PigServer.compilePp(PigServer.java:1350)
        at org.apache.pig.PigServer.explain(PigServer.java:926)
        ... 10 more
Caused by: 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.LogicalToPhysicalTranslatorException:
 ERROR 2015: Invalid physical operators in the physical plan
        at 
org.apache.pig.newplan.logical.expression.ExpToPhyTranslationVisitor.visit(ExpToPhyTranslationVisitor.java:474)
        at 
org.apache.pig.newplan.logical.expression.BinCondExpression.accept(BinCondExpression.java:82)
        at 
org.apache.pig.newplan.ReverseDependencyOrderWalker.walk(ReverseDependencyOrderWalker.java:70)
        at 
org.apache.pig.newplan.logical.relational.LogToPhyTranslationVisitor.visit(LogToPhyTranslationVisitor.java:519)
        at 
org.apache.pig.newplan.logical.relational.LOForEach.accept(LOForEach.java:71)
        at 
org.apache.pig.newplan.DependencyOrderWalker.walk(DependencyOrderWalker.java:75)
        at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:50)
        at 
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.compile(HExecutionEngine.java:295)
        ... 12 more
Caused by: org.apache.pig.impl.plan.PlanException: ERROR 0: Attempt to give 
operator of type 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject
 multiple outputs.  This operator does not support multiple outputs.
        at org.apache.pig.impl.plan.OperatorPlan.connect(OperatorPlan.java:180)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan.connect(PhysicalPlan.java:133)
        at 
org.apache.pig.newplan.logical.expression.ExpToPhyTranslationVisitor.visit(ExpToPhyTranslationVisitor.java:470)
        ... 19 more


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to