[
https://issues.apache.org/jira/browse/PIG-2593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289662#comment-13289662
]
Jie Li commented on PIG-2593:
-----------------------------
Fixed case 4 in the sub-task PIG-2736.
For case 5, one alternative is to rewrite the expression "by instate" to "by
instate == true;" in QueryParser, but the downside is if instate is not a
boolean type, then the error messages would be confusing: "the left side is a
xxx type and the right side is a boolean type", as there is actually no right
side. Any means to customize the error message?
Another alternative is to create a BooleanExpression to handle this case, which
would involve more changes all the way from the parser to the physical operator.
> Filter by a boolean value does not work
> ---------------------------------------
>
> Key: PIG-2593
> URL: https://issues.apache.org/jira/browse/PIG-2593
> Project: Pig
> Issue Type: Bug
> Components: build
> Reporter: Daniel Dai
>
> The following script does not work:
> {code}
> a = load 'allscalar10k' as (name, age, gpa, instate);
> b = filter a by instate;
> explain b;
> {code}
> Exception:
> ERROR 1200: <file 18.pig, line 2, column 23> mismatched input ';' expecting
> IS
> org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during
> parsing. <file 18.pig, line 2, column 23> mismatched input ';' expecting IS
> 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)
> Caused by: Failed to parse: <file 18.pig, line 2, column 23> mismatched
> input ';' expecting IS
> at
> org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:222)
> at
> org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:164)
> at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1590)
> ... 9 more
> It works if we change the script into:
> {code}
> a = load 'allscalar10k' as (name, age, gpa, instate);
> b = filter a by instate==TRUE;
> explain b;
> {code}
--
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