Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
0.2.0
-
None
-
None
Description
Use of bag constants in non-foreach statement cause lexical errors in Pig. The root cause is the inability of grunt to distinguish between nested block and bag constant in non-foreach statements.
grunt> a = load 'input'; grunt> b = filter a by ($0 eq {(1)}); 2008-12-29 14:12:15,306 [main] ERROR org.apache.pig.tools.grunt.GruntParser - java.io.IOException: Encountered " <FILTEROP> "eq "" at line 1, column 21. Was expecting one of: "*" ... ")" ... "." ... "+" ... "-" ... "/" ... "%" ... "#" ... ... org.apache.pig.tools.pigscript.parser.TokenMgrError: Lexical error at line 2, column 29. Encountered: ")" (41), after : "" at org.apache.pig.tools.pigscript.parser.PigScriptParserTokenManager.getNextToken(PigScriptParserTokenManager.java:2608) at org.apache.pig.tools.pigscript.parser.PigScriptParser.jj_ntk(PigScriptParser.java:658) at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:84) at org.apache.pig.tools.grunt.GruntParser.parseContOnError(GruntParser.java:94) at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:58) at org.apache.pig.Main.main(Main.java:282)
Attachments
Issue Links
- depends upon
-
PIG-1618 Switch to new parser generator technology
- Closed