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

Pavel Fedyakov updated PIG-3434:
--------------------------------

    Description: 
According to docs, for bincond operator "If a Boolean subexpression results in 
null value, the resulting expression is null" 
(http://pig.apache.org/docs/r0.11.0/basic.html#nulls).

It works as described in plain foreach..generate expression:

{noformat}
in = load 'in';
out = FOREACH in GENERATE 1, ($0 > 0 ? 2 : 3);
dump out;
{noformat}

in (3 lines, 2nd is empty):
{noformat}
0

1
{noformat}

out:
{noformat}
(1,3)
(1,)
(1,2)
{noformat}

But if we wrap generated variables in tuple (or bag), we lose the whole 2nd 
line in output:

{noformat}
out = FOREACH in GENERATE (1, ($0 > 0 ? 2 : 3));
{noformat}

out:
{noformat}
((1,3))
()
((1,2))
{noformat}


  was:
According to docs, for bincond operator "If a Boolean subexpression results in 
null value, the resulting expression is null" 
(http://pig.apache.org/docs/r0.11.0/basic.html#nulls).

It works as described in plain foreach..generate expression:

{{in = load 'in';}}
{{out = FOREACH in GENERATE 1, ($0 > 0 ? 2 : 3);}}
{{dump out;}}


in (3 lines, 2nd is empty):
{{0}}

{{1}}

out:
{{(1,3)}}
{{(1,)}}
{{(1,2)}}

But if we wrap generated variables in tuple (or bag), we lose the whole 2nd 
line in output:

{{out = FOREACH in GENERATE (1, ($0 > 0 ? 2 : 3));}}

out:
{{((1,3))}}
{{()}}
{{((1,2))}}


    
> Null subexpression in bincond nullifies outer tuple (or bag)
> ------------------------------------------------------------
>
>                 Key: PIG-3434
>                 URL: https://issues.apache.org/jira/browse/PIG-3434
>             Project: Pig
>          Issue Type: Bug
>            Reporter: Pavel Fedyakov
>
> According to docs, for bincond operator "If a Boolean subexpression results 
> in null value, the resulting expression is null" 
> (http://pig.apache.org/docs/r0.11.0/basic.html#nulls).
> It works as described in plain foreach..generate expression:
> {noformat}
> in = load 'in';
> out = FOREACH in GENERATE 1, ($0 > 0 ? 2 : 3);
> dump out;
> {noformat}
> in (3 lines, 2nd is empty):
> {noformat}
> 0
> 1
> {noformat}
> out:
> {noformat}
> (1,3)
> (1,)
> (1,2)
> {noformat}
> But if we wrap generated variables in tuple (or bag), we lose the whole 2nd 
> line in output:
> {noformat}
> out = FOREACH in GENERATE (1, ($0 > 0 ? 2 : 3));
> {noformat}
> out:
> {noformat}
> ((1,3))
> ()
> ((1,2))
> {noformat}

--
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