[ https://issues.apache.org/jira/browse/DRILL-6199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16399008#comment-16399008 ]
ASF GitHub Bot commented on DRILL-6199: --------------------------------------- Github user HanumathRao commented on a diff in the pull request: https://github.com/apache/drill/pull/1152#discussion_r174558063 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillFilterItemStarReWriterRule.java --- @@ -54,83 +44,189 @@ import static org.apache.drill.exec.planner.logical.FieldsReWriterUtil.FieldsReWriter; /** - * Rule will transform filter -> project -> scan call with item star fields in filter - * into project -> filter -> project -> scan where item star fields are pushed into scan - * and replaced with actual field references. + * Rule will transform item star fields in filter and replaced with actual field references. * * This will help partition pruning and push down rules to detect fields that can be pruned or push downed. * Item star operator appears when sub-select or cte with star are used as source. */ -public class DrillFilterItemStarReWriterRule extends RelOptRule { +public class DrillFilterItemStarReWriterRule { - public static final DrillFilterItemStarReWriterRule INSTANCE = new DrillFilterItemStarReWriterRule( - RelOptHelper.some(Filter.class, RelOptHelper.some(Project.class, RelOptHelper.any( TableScan.class))), - "DrillFilterItemStarReWriterRule"); + public static final DrillFilterItemStarReWriterRule.ProjectOnScan PROJECT_ON_SCAN = new ProjectOnScan( + RelOptHelper.some(DrillProjectRel.class, RelOptHelper.any(DrillScanRel.class)), + "DrillFilterItemStarReWriterRule.ProjectOnScan"); - private DrillFilterItemStarReWriterRule(RelOptRuleOperand operand, String id) { - super(operand, id); - } + public static final DrillFilterItemStarReWriterRule.FilterOnScan FILTER_ON_SCAN = new FilterOnScan( + RelOptHelper.some(DrillFilterRel.class, RelOptHelper.any(DrillScanRel.class)), + "DrillFilterItemStarReWriterRule.FilterOnScan"); - @Override - public void onMatch(RelOptRuleCall call) { - Filter filterRel = call.rel(0); - Project projectRel = call.rel(1); - TableScan scanRel = call.rel(2); + public static final DrillFilterItemStarReWriterRule.FilterOnProject FILTER_ON_PROJECT = new FilterOnProject( --- End diff -- Would it be good to rename this as FILTER_PROJECT_SCAN? > Filter push down doesn't work with more than one nested subqueries > ------------------------------------------------------------------ > > Key: DRILL-6199 > URL: https://issues.apache.org/jira/browse/DRILL-6199 > Project: Apache Drill > Issue Type: Bug > Affects Versions: 1.13.0 > Reporter: Anton Gozhiy > Assignee: Arina Ielchiieva > Priority: Major > Fix For: 1.14.0 > > Attachments: DRILL_6118_data_source.csv > > > *Data set:* > The data is generated used the attached file: *DRILL_6118_data_source.csv* > Data gen commands: > {code:sql} > create table dfs.tmp.`DRILL_6118_parquet_partitioned_by_folders/d1` (c1, c2, > c3, c4, c5) as select cast(columns[0] as int) c1, columns[1] c2, columns[2] > c3, columns[3] c4, columns[4] c5 from dfs.tmp.`DRILL_6118_data_source.csv` > where columns[0] in (1, 3); > create table dfs.tmp.`DRILL_6118_parquet_partitioned_by_folders/d2` (c1, c2, > c3, c4, c5) as select cast(columns[0] as int) c1, columns[1] c2, columns[2] > c3, columns[3] c4, columns[4] c5 from dfs.tmp.`DRILL_6118_data_source.csv` > where columns[0]=2; > create table dfs.tmp.`DRILL_6118_parquet_partitioned_by_folders/d3` (c1, c2, > c3, c4, c5) as select cast(columns[0] as int) c1, columns[1] c2, columns[2] > c3, columns[3] c4, columns[4] c5 from dfs.tmp.`DRILL_6118_data_source.csv` > where columns[0]>3; > {code} > *Steps:* > # Execute the following query: > {code:sql} > explain plan for select * from (select * from (select * from > dfs.tmp.`DRILL_6118_parquet_partitioned_by_folders`)) where c1<3 > {code} > *Expected result:* > numFiles=2, numRowGroups=2, only files from the folders d1 and d2 should be > scanned. > *Actual result:* > Filter push down doesn't work: > numFiles=3, numRowGroups=3, scanning from all files -- This message was sent by Atlassian JIRA (v7.6.3#76005)