BinCond only works inside parentheses
-------------------------------------
Key: PIG-2595
URL: https://issues.apache.org/jira/browse/PIG-2595
Project: Pig
Issue Type: Bug
Reporter: Daniel Dai
Fix For: 0.11
Not sure if we have a Jira for this before. This script does not work:
{code}
a = load '/user/pig/tests/data/singlefile/studenttab10k' using PigStorage() as
(name, age:int, gpa:double, instate:chararray);
b = foreach a generate name, instate=='true'?gpa:gpa+1;
dump b;
{code}
If we put bincond into parentheses, it works
{code}
a = load '/user/pig/tests/data/singlefile/studenttab10k' using PigStorage() as
(name, age:int, gpa:double, instate:chararray);
b = foreach a generate name, (instate=='true'?gpa:gpa+1);
dump b;
{code}
Exception:
ERROR 1200: <file 40.pig, line 2, column 36> mismatched input '==' expecting
SEMI_COLON
org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during
parsing. <file 40.pig, line 2, column 36> mismatched input '==' expecting
SEMI_COLON
at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1598)
at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1541)
at org.apache.pig.PigServer.registerQuery(PigServer.java:541)
at
org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:945)
at
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:392)
at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:190)
at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:166)
at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)
at org.apache.pig.Main.run(Main.java:599)
at org.apache.pig.Main.main(Main.java:153)
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:156)
Caused by: Failed to parse: <file 40.pig, line 2, column 36> mismatched input
'==' expecting SEMI_COLON
at
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:226)
at
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:168)
at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1590)
... 14 more
--
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