Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-6173

Support transitive closure during filter push down and partition pruning

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      There is Calcite rule JoinPushTransitivePredicatesRule but it does not work in Drill.
      Applying it in Drill will allow for equi-join queries to push filter condition from one table to another:

      select * 
      from A, B 
      where
      A.id = B.id and 
      B.id = 100
      

      In that case it is possible that Scan operator for A table will not scan all data.
      For table A it can lead for applying:
      1. Partition pruning for Hive tables and partiotion/directory pruning for file system tables
      2. Parquet filter pushdown

       

      Note: transitive closure doesn't work for some cases, these Calcite issues can resolve them:
      CALCITE-1048, CALCITE-2274, CALCITE-2275, CALCITE-2241. They are tracked by DRILL-6350

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            vitalii Vitalii Diravka
            vitalii Vitalii Diravka
            Aman Sinha Aman Sinha
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment