Class PushTypeFilterBelowFilterRule


  • @API(EXPERIMENTAL)
    public class PushTypeFilterBelowFilterRule
    extends PlannerRule<RecordQueryTypeFilterPlan>
    A rule that moves a RecordQueryTypeFilterPlan below a RecordQueryFilterPlan. While this doesn't make a difference in terms of plan semantics it ensures that the generated plans have the same form as those produced by the RecordQueryPlanner.
     
                 +-----------------------------+                +----------------------------------+
                 |                             |                |                                  |
                 |  RecordQueryTypeFilterPlan  |                |  RecordQueryPredicateFilterPlan  |
                 |                             |                |                           pred'  |
                 +-------------+---------------+                |                                  |
                               |                                +-----------------+----------------+
                               |                      +----->                     |
                               |                                                  | newQun
               +---------------+------------------+                               |
               |                                  |             +-----------------+---------------+
               |  RecordQueryPredicateFilterPlan  |             |                                 |
               |                            pred  |             |  RecordQueryTypeFilterPlanPlan  |
               |                                  |             |                                 |
               +---------------+------------------+             +-----------------+---------------+
                               |                                                  /
                               | qun                                             /
                               |                                                /
                        +------+------+                                        /
                        |             |                                       /
                        |   any ref   | -------------------------------------+
                        |             |
                        +-------------+
     
     
    where pred' is rebased along the translation from qun to newQun.