Class FindPossibleIndexForAndPredicateRule


  • @API(EXPERIMENTAL)
    public class FindPossibleIndexForAndPredicateRule
    extends PlannerRule<LogicalFilterExpression>
    A rule that finds all indexes that could implement one of the ComponentWithComparison conjuncts of an AND filter, leaving all the other filters (of any type, including other fields) as a residual filter.
     
                                                         index 1:                                        index n:
          +----------------------------+                     +------------------------------+               +------------------------------+
          |                            |                     |                              |               |                              |
          |  LogicalFilterExpression   |                     |  LogicalFilterExpression     |               |  LogicalFilterExpression     |
          |          element <>= val   |                     |              residual preds  |               |              residual preds  |
          |                            |                     |                              |               |                              |
          +-------------+--------------+                     +---------------+--------------+               +---------------+--------------+
                        |                    +-------->                      |                    ...                       |
                        |  qun                                               |                                              |
                        |                                                    |                                              |
         +--------------+----------------+               +-------------------+-----------------+        +-------------------+-----------------+
         |                               |               |                                     |        |                                     |
         |  FullUnorderedScanExpression  |               |  IndexEntrySourceScanExpression     |        |  IndexEntrySourceScanExpression     |
         |                               |               |                        scan ranges  |        |                        scan ranges  |
         +-------------------------------+               |                                     |        |                                     |
                                                        +-------------------------------------+        +-------------------------------------+