Github user arina-ielchiieva commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1152#discussion_r175136589
  
    --- 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 --
    
    Done.


---

Reply via email to