[
https://issues.apache.org/jira/browse/PIG-3581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aniket Mokashi reassigned PIG-3581:
-----------------------------------
Assignee: Aniket Mokashi
> Incorrect scope resolution with nested foreach
> ----------------------------------------------
>
> Key: PIG-3581
> URL: https://issues.apache.org/jira/browse/PIG-3581
> Project: Pig
> Issue Type: Bug
> Reporter: Venu Satuluri
> Assignee: Aniket Mokashi
>
> Consider the following script:
> {code}
> A = LOAD 'test_data' AS (a: int, b: int);
> C = FOREACH A GENERATE *;
> B = FOREACH (GROUP A BY a) {
> C = FILTER A BY b % 2 == 0;
> D = FILTER A BY b % 2 == 1;
> GENERATE group AS a, A.b AS every, C.b AS even, D.b AS odd;
> };
> DESCRIBE B;
> {code}
> Notice that C is defined both inside the nested foreach as well as outside. I
> would expect that in the GENERATE inside the nested FOREACH, the C that is
> used will be the one that is defined inside. If that is not so, I think at
> least a warning is due.
> However, currently Pig silently assumes that the C you mean one is the one
> that is defined *outside* the nested FOREACH.
> Hence, the result of "DESCRIBE B" looks as follows:
> {code}
> B: {
> a: int,
> every: {
> (
> b: int
> )
> },
> even: int,
> odd: {
> (
> b: int
> )
> }
> }
> {code}
> If I remove the definition of C that is outside the foreach, then I get the
> following for "DESCRIBE B":
> {code}
> B: {
> a: int,
> every: {
> (
> b: int
> )
> },
> even: {
> (
> b: int
> )
> },
> odd: {
> (
> b: int
> )
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.1#6144)