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