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

Thejas M Nair commented on PIG-2312:
------------------------------------

The reason for the original bug is that the logic that determines if an alias 
used is to be mapped to a relation is not checking the input schema for the 
nested operation. It is looking for that alias in the schema of input relation 
of the foreach, instead of looking for the schema in the input relation for the 
order-by .
 
                
> NPE when relation and column share the same name and used in Nested Foreach 
> ----------------------------------------------------------------------------
>
>                 Key: PIG-2312
>                 URL: https://issues.apache.org/jira/browse/PIG-2312
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.9.0
>            Reporter: Vivek Padmanabhan
>            Assignee: Vivek Padmanabhan
>             Fix For: 0.10
>
>         Attachments: PIG-2312_1.patch
>
>
> With Pig0.9, if a relation and a column has the same name and if the column 
> is used in a nested foreach, the script execution fails 
> while compiling.
> The below is the trace;
> {code}
> java.lang.NullPointerException
>       at 
> org.apache.pig.newplan.logical.visitor.ScalarVisitor$1.visit(ScalarVisitor.java:63)
>       at 
> org.apache.pig.newplan.logical.expression.ScalarExpression.accept(ScalarExpression.java:109)
>       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.AllExpressionVisitor.visit(AllExpressionVisitor.java:142)
>       at 
> org.apache.pig.newplan.logical.relational.LOSort.accept(LOSort.java:119)
>       at 
> org.apache.pig.newplan.DependencyOrderWalker.walk(DependencyOrderWalker.java:75)
>       at 
> org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor.visit(AllExpressionVisitor.java:104)
>       at 
> org.apache.pig.newplan.logical.relational.LOForEach.accept(LOForEach.java:74)
>       at 
> org.apache.pig.newplan.DependencyOrderWalker.walk(DependencyOrderWalker.java:75)
>       at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:50)
>       at org.apache.pig.PigServer$Graph.compile(PigServer.java:1674)
>       at org.apache.pig.PigServer$Graph.compile(PigServer.java:1666)
>       at org.apache.pig.PigServer$Graph.access$200(PigServer.java:1391)
>       at org.apache.pig.PigServer.execute(PigServer.java:1293)
>       at org.apache.pig.PigServer.executeBatch(PigServer.java:359)
>       at 
> org.apache.pig.tools.grunt.GruntParser.executeBatch(GruntParser.java:131)
>       at 
> org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:192)
>       at 
> org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:164)
>       at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:81)
>       at org.apache.pig.Main.run(Main.java:553)
>       at org.apache.pig.Main.main(Main.java:108)
> {code}
> This could be reproduced with the below script 
> {code}
> f3 = load 'input.txt' as (a1:chararray);
> A = load '3char_1long_tab' as (f1:chararray, f2:chararray, 
> f3:chararray,ct:long);
> B = GROUP A  BY f1;
> C =    FOREACH B {
>         zip_ordered = ORDER A BY f3 ASC; 
>         GENERATE
>                 FLATTEN(group) AS f1, 
>                 A.(f3, ct),
>               COUNT(zip_ordered),
>                 SUM(A.ct) AS total;
>   };
> STORE C INTO 'deletemeanytimeplease';
> {code}
> Checked with a unit test in trunk, the behavior is still same. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to