[ 
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

        

Reply via email to