Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Done
-
0.9.0
-
None
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
- is blocked by
-
DRILL-3855 Enable FilterSetOpTransposeRule, DrillProjectSetOpTransposeRule
-
- Closed
-