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

Alan Gates commented on PIG-1289:
---------------------------------

I think I'm missing something here.  It seems the criteria here should be that 
the filter is not pushed up a branch that will be producing nulls.  So, given a 
script like:

A = load 'foo' as (q, r, s);
B = load 'bar ' as (t, u, v);
C = join A on q outer, B on t;

D = filter C by q > 0; 

is pushable, but 

D = filter C by t > 0;

is not.  I think the test that at most one element of the join is outer and it 
is the one we are considering meets this criteria.  But I don't understand the 
need to check for null tests.



> PIG Join fails while doing a filter on joined data
> --------------------------------------------------
>
>                 Key: PIG-1289
>                 URL: https://issues.apache.org/jira/browse/PIG-1289
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.6.0
>            Reporter: Karim Saadah
>            Assignee: Daniel Dai
>            Priority: Minor
>             Fix For: 0.7.0
>
>         Attachments: PIG-1289-1.patch
>
>
> PIG Join fails while doing a filter on joined data
> Here are the steps to reproduce it:
> -bash-3.1$ pig -latest -x local
> grunt> a = load 'first.dat' using PigStorage('\u0001') as (f1:int, 
> f2:chararray);
> grunt> DUMP a;
> (1,A)
> (2,B)
> (3,C)
> (4,D)
> grunt> b = load 'second.dat' using PigStorage() as (f3:chararray);
> grunt> DUMP b;
> (A)
> (D)
> (E)
> grunt> c = join a by f2 LEFT OUTER, b by f3;
> grunt> DUMP c;
> (1,A,A)
> (2,B,)
> (3,C,)
> (4,D,D)
> grunt> describe c;
> c: {a::f1: int,a::f2: chararray,b::f3: chararray}
> grunt> d = filter c by (f3 is null or f3 =='');
> grunt> dump d;
> 2010-03-03 15:00:37,129 [main] INFO  
> org.apache.pig.impl.logicalLayer.optimizer.PruneColumns - No column pruned 
> for b
> 2010-03-03 15:00:37,129 [main] INFO  
> org.apache.pig.impl.logicalLayer.optimizer.PruneColumns - No map keys pruned 
> for b
> 2010-03-03 15:00:37,129 [main] INFO  
> org.apache.pig.impl.logicalLayer.optimizer.PruneColumns - No column pruned 
> for a
> 2010-03-03 15:00:37,130 [main] INFO  
> org.apache.pig.impl.logicalLayer.optimizer.PruneColumns - No map keys pruned 
> for a
> 2010-03-03 15:00:37,130 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 
> 1002: Unable to store alias d
> This one is failing too:
> grunt> d = filter c by (b::f3 is null or b::f3 =='');
> or this one not returning results as expected:
> grunt> d = foreach c generate f1 as f1, f2 as f2, f3 as f3;
> grunt> e = filter d by (f3 is null or f3 =='');
> grunt> DUMP e;
> (1,A,)
> (2,B,)
> (3,C,)
> (4,D,)
> while the expected result is
> (2,B,)
> (3,C,)

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