New logical plan: logical plan get confused if we generate the same field twice 
in ForEach
------------------------------------------------------------------------------------------

                 Key: PIG-1732
                 URL: https://issues.apache.org/jira/browse/PIG-1732
             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);
b = load '2.txt' as (b0, b1, b2);
c = foreach a generate a0, a1, a1 as a2;
d = union b, c;
e = foreach d generate $1;
explain e;
{code}

Error message:
ERROR 2000: Error processing rule ColumnMapKeyPrune. Try -t ColumnMapKeyPrune

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1067: Unable to 
explain alias e
        at org.apache.pig.PigServer.explain(PigServer.java:958)
        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:309)
        at org.apache.pig.PigServer.compilePp(PigServer.java:1354)
        at org.apache.pig.PigServer.explain(PigServer.java:927)
        ... 10 more
Caused by: org.apache.pig.impl.logicalLayer.FrontendException: ERROR 2000: 
Error processing rule ColumnMapKeyPrune. Try -t ColumnMapKeyPrune
        at 
org.apache.pig.newplan.optimizer.PlanOptimizer.optimize(PlanOptimizer.java:120)
        at 
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.compile(HExecutionEngine.java:277)
        ... 12 more
Caused by: java.lang.NullPointerException
        at 
org.apache.pig.newplan.logical.relational.LOUnion.getSchema(LOUnion.java:75)
        at 
org.apache.pig.newplan.logical.optimizer.SchemaResetter.visit(SchemaResetter.java:127)
        at 
org.apache.pig.newplan.logical.relational.LOUnion.accept(LOUnion.java:102)
        at 
org.apache.pig.newplan.DependencyOrderWalker.walk(DependencyOrderWalker.java:75)
        at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:50)
        at 
org.apache.pig.newplan.logical.optimizer.SchemaPatcher.transformed(SchemaPatcher.java:43)
        at 
org.apache.pig.newplan.optimizer.PlanOptimizer.optimize(PlanOptimizer.java:112)

The problem is caused by c = foreach a generate a0, a1, a1 as a2, in which we 
will generate two fields share one uid.

-- 
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