Navis created HIVE-3411:
---------------------------

             Summary: Filter predicates on outer join overlapped on single 
alias is not handled properly
                 Key: HIVE-3411
                 URL: https://issues.apache.org/jira/browse/HIVE-3411
             Project: Hive
          Issue Type: Sub-task
          Components: Query Processor
    Affects Versions: 0.10.0
         Environment: ubuntu 10.10
            Reporter: Navis
            Assignee: Navis
            Priority: Minor


Currently, join predicates on outer join are evaluated in join operator (or 
HashSink for MapJoin) and the result value is tagged to end of each values(as a 
boolean), which is used for joining values. But when predicates are overlapped 
on single alias, all the predicates are evaluated with AND conjunction, which 
makes invalid result. 

For example with table a with values,
{noformat}
100 40
100 50
100 60
{noformat}

Query below has overlapped predicates on alias b, which is making all the 
values on b are tagged with true(filtered)
{noformat}
select * from a right outer join a b on (a.key=b.key AND a.value=50 AND 
b.value=50) left outer join a c on (b.key=c.key AND b.value=60 AND c.value=60);

NULL    NULL    100     40      NULL    NULL
NULL    NULL    100     50      NULL    NULL
NULL    NULL    100     60      NULL    NULL

-- Join predicate
Join Operator
  condition map:
       Right Outer Join0 to 1
       Left Outer Join1 to 2
  condition expressions:
    0 {VALUE._col0} {VALUE._col1}
    1 {VALUE._col0} {VALUE._col1}
    2 {VALUE._col0} {VALUE._col1}
  filter predicates:
    0 
    1 {(VALUE._col1 = 50)} {(VALUE._col1 = 60)}
    2 
{noformat}

but this should be 

{noformat}
NULL    NULL    100     40      NULL    NULL
100     50      100     50      NULL    NULL
NULL    NULL    100     60      100     60
{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