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

Extend Join merging logic to merge 2 Joins when one Join expression list is a subset of the other.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Query Processor
    • None

    Description

      As pointed out by ashutoshc here: https://reviews.apache.org/r/14953/

      For the following query

      select p1.name, p2.name, p3.name
      from part p1 join p2 on p1.name = p2.name and p1.key = p2.key join 
      part p3 on p1.name = p3.name
      

      2 jobs are generated:

      • p1 join p2 on name, key
      • join p3 on name

      This can be done as:

      • 1 3-way join of p1,p2,p3 on name
      • followed by a Filter on p1.key = p2.key

      This is valid only for inner joins.
      This can be done by extending the Merge Join logic to check for a subset relation between 2 QBJoinTree expression lists.

      Attachments

        Activity

          People

            Unassigned Unassigned
            rhbutani Harish Butani
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: