[ 
https://issues.apache.org/jira/browse/PIG-2021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13030889#comment-13030889
 ] 

Xuefu Zhang commented on PIG-2021:
----------------------------------

The above test case seems having a few problems:

1. LOWER() returns a string, so parsedurl is a string. However, it's later used 
as a map. Such conversion is invalid.

2. generate * will output input, so the nested commands in the second foreach 
is useless.

3. with latest in the trunk, the above query parses without problem.

grunt> A = load 'temp' as ( s, m, l );
grunt> B = foreach A generate *, LOWER((chararray) s#'url') as parsedurl;
2011-05-09 13:37:04,796 [main] WARN  org.apache.pig.PigServer - Encountered 
Warning IMPLICIT_CAST_TO_MAP 1 time(s).
grunt> C = foreach B {
>>   urlpath = (chararray) parsedurl#'path';
>>   lc_urlpath = 
>> org.apache.pig.piggybank.evaluation.string.Reverse((chararray) urlpath);
>>   generate *;
>> };
2011-05-09 13:37:06,315 [main] WARN  org.apache.pig.PigServer - Encountered 
Warning IMPLICIT_CAST_TO_MAP 1 time(s).
grunt> describe C;
2011-05-09 13:37:10,676 [main] WARN  org.apache.pig.PigServer - Encountered 
Warning IMPLICIT_CAST_TO_MAP 1 time(s).
C: {s: bytearray,m: bytearray,l: bytearray,parsedurl: chararray}

Please provide a valid case.

> Parser error while referring a map nested foreach
> -------------------------------------------------
>
>                 Key: PIG-2021
>                 URL: https://issues.apache.org/jira/browse/PIG-2021
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.9.0
>            Reporter: Vivek Padmanabhan
>            Assignee: Xuefu Zhang
>             Fix For: 0.9.0
>
>
> The below script is throwing parser errors
> {code}
> register string.jar;
> A = load 'test1'  using MapLoader() as ( s, m, l );                       
> B = foreach A generate *, string.URLPARSE((chararray) s#'url') as parsedurl;
> C = foreach B {
>   urlpath = (chararray) parsedurl#'path';
>   lc_urlpath = string.TOLOWERCASE((chararray) urlpath);
>   generate *;
> };
> {code}
> Error message;
> | Failed to generate logical plan.
> |Nested exception: org.apache.pig.impl.logicalLayer.FrontendException: ERROR 
> 2225: Projection with nothing to reference!
> PIG-2002 reports a similar issue, but when i tried with the patch of PIG-2002 
> i was getting the below exception;
>  ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <file repro.pig, line 
> 11, column 33>  mismatched input '(' expecting SEMI_COLON

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to