Hive
  1. Hive
  2. HIVE-5555

Support alternate join syntax: joining conditions in where clause; also pushdown qualifying join conditions

    Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Query Processor
    • Labels:
      None

      Description

      Certain tools still generate `old style' Join queries where the join
      condition is in the Where clause. A related set of issues that can
      be addressed is that of pushing forward joining conditions;
      in a manner similar to the Predicate Pushdown feature of Hive.

      For e.g. these queries can have join conditions pushed down:

      - query 1, push join predicate from 2nd join to 1st
      explain select *
      from part p1 join part p2 join part p3 on p1.p_name = p2.p_name and p2.p_name = p3.p_name;
      
      - query 2
      explain select *
      from part p1 join part p2 join part p3 
      where p1.p_name = p2.p_name and p2.p_name = p3.p_name;
      

        Issue Links

          Activity

          Hide
          Matt Tucker added a comment -

          It's a nice to have. Just wanted to make sure that syntax was covered since it's similar to the other examples.

          Show
          Matt Tucker added a comment - It's a nice to have. Just wanted to make sure that syntax was covered since it's similar to the other examples.
          Hide
          Harish Butani added a comment -

          Had filed HIVE-5558 to address this. Haven't gotten around to doing it yet.
          Do you need this urgently?

          Show
          Harish Butani added a comment - Had filed HIVE-5558 to address this. Haven't gotten around to doing it yet. Do you need this urgently?
          Hide
          Matt Tucker added a comment -

          Does this also allow for SQL-89 style joins?

          explain select *
          from part p1, part p2, part p3 
          where p1.p_name = p2.p_name and p2.p_name = p3.p_name;
          
          Show
          Matt Tucker added a comment - Does this also allow for SQL-89 style joins? explain select * from part p1, part p2, part p3 where p1.p_name = p2.p_name and p2.p_name = p3.p_name;

            People

            • Assignee:
              Harish Butani
              Reporter:
              Harish Butani
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:

                Development