Julien Le Dem created PIG-2703:
----------------------------------

             Summary: NullPointerException when reusing non defined alias
                 Key: PIG-2703
                 URL: https://issues.apache.org/jira/browse/PIG-2703
             Project: Pig
          Issue Type: Bug
          Components: parser
    Affects Versions: 0.9.2
            Reporter: Julien Le Dem
            Assignee: Julien Le Dem


the following (invalid) script generates a NullPointerException:
{noformat}
C = FOREACH C GENERATE c1;

ERROR 1200: null

Failed to parse: null
        at 
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:180)
        at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1560)
        at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1533)
        at org.apache.pig.PigServer.registerQuery(PigServer.java:535)
        at 
org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:969)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165)
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
        at org.apache.pig.Main.run(Main.java:495)
        at org.apache.pig.Main.main(Main.java:111)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:186)
Caused by: java.lang.NullPointerException
        at 
org.apache.pig.parser.LogicalPlanGenerator.alias_col_ref(LogicalPlanGenerator.java:14326)
        at 
org.apache.pig.parser.LogicalPlanGenerator.col_ref(LogicalPlanGenerator.java:14177)
        at 
org.apache.pig.parser.LogicalPlanGenerator.projectable_expr(LogicalPlanGenerator.java:8607)
        at 
org.apache.pig.parser.LogicalPlanGenerator.var_expr(LogicalPlanGenerator.java:8358)
        at 
org.apache.pig.parser.LogicalPlanGenerator.expr(LogicalPlanGenerator.java:7711)
        at 
org.apache.pig.parser.LogicalPlanGenerator.flatten_generated_item(LogicalPlanGenerator.java:5693)
        at 
org.apache.pig.parser.LogicalPlanGenerator.generate_clause(LogicalPlanGenerator.java:12307)
        at 
org.apache.pig.parser.LogicalPlanGenerator.foreach_plan(LogicalPlanGenerator.java:12048)
        at 
org.apache.pig.parser.LogicalPlanGenerator.foreach_clause(LogicalPlanGenerator.java:11915)
        at 
org.apache.pig.parser.LogicalPlanGenerator.op_clause(LogicalPlanGenerator.java:1364)
        at 
org.apache.pig.parser.LogicalPlanGenerator.general_statement(LogicalPlanGenerator.java:683)
        at 
org.apache.pig.parser.LogicalPlanGenerator.statement(LogicalPlanGenerator.java:483)
        at 
org.apache.pig.parser.LogicalPlanGenerator.query(LogicalPlanGenerator.java:369)
        at 
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:171)
        ... 15 more
{noformat}


When this one outputs the correct error:
{noformat}
D = FOREACH D GENERATE $0;

ERROR 1200: Pig script failed to parse:
<line 1, column 4> pig script failed to validate: Unrecognized alias D

Failed to parse: Pig script failed to parse:
<line 1, column 4> pig script failed to validate: Unrecognized alias D
        at 
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:178)
        at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1560)
        at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1533)
        at org.apache.pig.PigServer.registerQuery(PigServer.java:535)
        at 
org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:969)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165)
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
        at org.apache.pig.Main.run(Main.java:495)
        at org.apache.pig.Main.main(Main.java:111)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:186)
Caused by:
<line 1, column 4> pig script failed to validate: Unrecognized alias D
        at 
org.apache.pig.parser.LogicalPlanBuilder.buildOp(LogicalPlanBuilder.java:396)
        at 
org.apache.pig.parser.LogicalPlanBuilder.buildOp(LogicalPlanBuilder.java:384)
        at 
org.apache.pig.parser.LogicalPlanBuilder.buildForeachOp(LogicalPlanBuilder.java:448)
        at 
org.apache.pig.parser.LogicalPlanGenerator.foreach_clause(LogicalPlanGenerator.java:11931)
        at 
org.apache.pig.parser.LogicalPlanGenerator.op_clause(LogicalPlanGenerator.java:1364)
        at 
org.apache.pig.parser.LogicalPlanGenerator.general_statement(LogicalPlanGenerator.java:683)
        at 
org.apache.pig.parser.LogicalPlanGenerator.statement(LogicalPlanGenerator.java:483)
        at 
org.apache.pig.parser.LogicalPlanGenerator.query(LogicalPlanGenerator.java:369)
        at 
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:171)
        ... 15 more
{noformat}

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