[
https://issues.apache.org/jira/browse/PIG-3581?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13855959#comment-13855959
]
Cheolsoo Park commented on PIG-3581:
------------------------------------
{quote}
It is going to store the word 'bar' in a file on HDFS and read it back.
{quote}
Plus, I don't think this is true. See the explain output in 0.11. There is no
hdfs reading for 'bar'. It's a constant-
{code}
c: Store(fakefile:org.apache.pig.builtin.PigStorage) - scope-20
|
|---c: New For Each(false)[bag] - scope-19
| |
| POUserFunc(org.apache.pig.builtin.COUNT)[long] - scope-13
| |
| |---RelationToExpressionProject[bag][*] - scope-12
| |
| |---filtered: Filter[bag] - scope-15
| | |
| | Equal To[boolean] - scope-18
| | |
| | |---Project[chararray][1] - scope-16
| | |
| | |---Constant(bar) - scope-17
| |
| |---Project[bag][1] - scope-14
|
|---b: Package[tuple]{int} - scope-9--------
{code}
> 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
> Fix For: 0.13.0
>
> Attachments: PIG-3581-1.patch, PIG-3581-2.patch
>
>
> 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.5#6160)