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

Filter is not pushed into subquery past UNION ALL

    Details

      Description

      I expected to see filter pushed to at least left side of UNION ALL, instead it is applied after UNION ALL

      0: jdbc:drill:schema=dfs> explain plan for select * from (select a1, b1, c1 from t1 union all select a2, b2, c2 from t2 )  where a1 = 10;
      +------------+------------+
      |    text    |    json    |
      +------------+------------+
      | 00-00    Screen
      00-01      Project(a1=[$0], b1=[$1], c1=[$2])
      00-02        SelectionVectorRemover
      00-03          Filter(condition=[=($0, 10)])
      00-04            UnionAll(all=[true])
      00-06              Project(a1=[$2], b1=[$1], c1=[$0])
      00-08                Scan(groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath [path=maprfs:/drill/testdata/predicates/t1]], selectionRoot=/drill/testdata/predicates/t1, numFiles=1, columns=[`a1`, `b1`, `c1`]]])
      00-05              Project(a2=[$1], b2=[$0], c2=[$2])
      00-07                Scan(groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath [path=maprfs:/drill/testdata/predicates/t2]], selectionRoot=/drill/testdata/predicates/t2, numFiles=1, columns=[`a2`, `b2`, `c2`]]])
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                vitalii Vitalii Diravka
                Reporter:
                vicky Victoria Markman
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: