[
https://issues.apache.org/jira/browse/PIG-2593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13287596#comment-13287596
]
Jie Li commented on PIG-2593:
-----------------------------
I got slightly different results:
||Case||Description||Query||Result||
|1|declare as boolean and filter as boolean|a = load 'allscalar10k' as (name,
age, gpa, instate:boolean);
b = filter a by instate==TRUE;
dump b;|successful|
|2|explicitly cast to boolean|a = load 'allscalar10k' as (name, age, gpa,
instate);
b = filter a by (boolean) instate == TRUE;
dump b;|successful|
|3|implicitly conversion to string|a = load 'allscalar10k' as (name, age, gpa,
instate);
b = filter a by instate == 'true';
dump b;|successful|
|4|implicitly conversion to boolean|a = load 'allscalar10k' as (name, age, gpa,
instate);
b = filter a by instate==TRUE;
dump b;|Error:In alias b, incompatible types in Equal Operator left hand
side:bytearray right hand side:boolean|
|5|declare as boolean and filter| a = load 'allscalar10k' as (name, age, gpa,
instate:boolean);
b = filter a by instate;
dump b;|Error: <file 2.pig, line 2, column 23> mismatched input ';' expecting
IS|
So we have two cases not working here. We want to make Case 4 work by
supporting implicit conversion of boolean, as we've already supported implicit
conversion of chararray in Case 3. Also it makes sense that Case 5 should work
as boolean is a valid conditional expression.
> 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