Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-3411

Filter predicates on outer join overlapped on single alias is not handled properly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.10.0
    • 0.10.0
    • Query Processor
    • None
    • ubuntu 10.10

    • Reviewed

    Description

      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,

      100 40
      100 50
      100 60
      

      Query below has overlapped predicates on alias b, which is making all the values on b are tagged with true(filtered)

      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 
      

      but this should be

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

      Attachments

        1. HIVE-3411.1.patch.txt
          90 kB
          Navis Ryu
        2. HIVE-3411.2.patch.txt
          133 kB
          Navis Ryu
        3. HIVE-3411.D5169.5.patch
          89 kB
          Phabricator
        4. HIVE-3411.D5169.6.patch
          89 kB
          Phabricator

        Issue Links

          Activity

            People

              navis Navis Ryu
              navis Navis Ryu
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: