[ 
https://issues.apache.org/jira/browse/PIG-656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Milind Bhandarkar updated PIG-656:
----------------------------------

    Attachment: reserved.patch

This patch allows the use of reserved words in function names. To avoid parsing 
ambiguity, the first part of the fully qualified function name (i.e. test 
before the first ".") cannot be a reserved word. But the rest of the parts in 
fully qualified function names can be any identifier, including a reserved word.

So, for example, with this patch, the statement:

{code}
define X com.yahoo.load();
{code}

or

{code}
modules = FOREACH my_src GENERATE FLATTEN(mypackage.eval.TOKENIZE(mlist));
{code}

Now compiles and runs perfectly well.

> Use of eval or any other keyword in the package hierarchy of a UDF causes 
> parse exception
> -----------------------------------------------------------------------------------------
>
>                 Key: PIG-656
>                 URL: https://issues.apache.org/jira/browse/PIG-656
>             Project: Pig
>          Issue Type: Bug
>          Components: documentation, grunt
>    Affects Versions: 0.2.1
>            Reporter: Viraj Bhat
>            Assignee: Milind Bhandarkar
>             Fix For: 0.3.0
>
>         Attachments: mywordcount.txt, reserved.patch, TOKENIZE.jar
>
>
> Consider a Pig script which does something similar to a word count. It uses 
> the built-in TOKENIZE function, but packages it inside a class hierarchy such 
> as "mypackage.eval"
> {code}
> register TOKENIZE.jar
> my_src  = LOAD '/user/viraj/mywordcount.txt' USING PigStorage('\t')  AS 
> (mlist: chararray);
> modules = FOREACH my_src GENERATE FLATTEN(mypackage.eval.TOKENIZE(mlist));
> describe modules;
> grouped = GROUP modules BY $0;
> describe grouped;
> counts  = FOREACH grouped GENERATE COUNT(modules), group;
> ordered = ORDER counts BY $0;
> dump ordered;
> {code}
> The parser complains:
> ===========================================================================================================================
> 2009-02-05 01:17:29,231 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 
> 1000: Error during parsing. Invalid alias: mypackage in {mlist: chararray}
> ===========================================================================================================================
> I looked at the following source code at 
> (src/org/apache/pig/impl/logicalLayer/parser/QueryParser.jjt) and it seems 
> that : EVAL is a keyword in Pig. Here are some clarifications:
> 1) Is there documentation on what the EVAL keyword actually is?
> 2) Is EVAL keyword actually implemented?
> Viraj

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to