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

Daniel Dai commented on PIG-2248:
---------------------------------

I tried a simple query with the patch:
{code}
define ACOUNT(in_relation, min_gpa) returns c {
                           b = filter $in_relation by gpa >= $min_gpa;
                           $c = foreach b generate age, name;
                       }

a = load '1.txt' as (name, age, gpa);
x = ACOUNT(a, 3);
dump x;
{code}

I did a dry-run and hit the exception:
ERROR 2999: Unexpected internal error. Index: 0, Size: 0

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.RangeCheck(ArrayList.java:547)
        at java.util.ArrayList.get(ArrayList.java:322)
        at 
org.apache.pig.parser.PigMacro.checkMacroNameMasking(PigMacro.java:440)
        at org.apache.pig.parser.PigMacro.macroInline(PigMacro.java:509)
        at 
org.apache.pig.parser.QueryParserDriver.inlineMacro(QueryParserDriver.java:290)
        at 
org.apache.pig.parser.QueryParserDriver.expandMacro(QueryParserDriver.java:279)
        at 
org.apache.pig.parser.DryRunGruntParser.processPig(DryRunGruntParser.java:292)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:499)
        at 
org.apache.pig.parser.DryRunGruntParser.parseStopOnError(DryRunGruntParser.java:67)
        at org.apache.pig.Main.dryrun(Main.java:680)
        at org.apache.pig.Main.run(Main.java:575)
        at org.apache.pig.Main.main(Main.java:157)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

Am I missing something here?
                
> Pig parser does not detect when a macro name masks a UDF name
> -------------------------------------------------------------
>
>                 Key: PIG-2248
>                 URL: https://issues.apache.org/jira/browse/PIG-2248
>             Project: Pig
>          Issue Type: Bug
>          Components: parser
>    Affects Versions: 0.9.0
>            Reporter: Alan Gates
>            Assignee: Johnny Zhang
>            Priority: Minor
>         Attachments: PIG-2248.patch.txt, PIG-2248.patch.txt, 
> PIG-2248.patch.txt
>
>
> Pig accepts a macro like:
> {code}
> define COUNT(in_relation, min_gpa) returns c {
>                            b = filter $in_relation by gpa >= $min_gpa;
>                            $c = foreach b generate age, name;
>                        }
> {code}
> This should produce a warning that it is masking a UDF.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to