Class OrToUnorderedUnionRule


  • @API(EXPERIMENTAL)
    public class OrToUnorderedUnionRule
    extends PlannerRule<SelectExpression>
    Convert a filter on an or expression into a plan on the union. In particular, this will produce a LogicalUnorderedUnionExpression with simple filter plans on each child.
     
         +----------------------------+                 +-----------------------------------+
         |                            |                 |                                   |
         |  SelectExpression          |                 |  LogicalUnorderedUnionExpression  |
         |       p1 v p2 v ... v pn   |                 |                                   |
         |                            |                 +-----------------------------------+
         +-------------+--------------+                        /        |               \
                       |                    +-->              /         |                \
                       | qun                                 /          |                 \
                       |                                    /           |                  \
                       |                                   /            |                   \
                       |                             +--------+    +--------+          +--------+
                       |                             |        |    |        |          |        |
                       |                             |  SEL   |    |  SEL   |          |  SEL   |
                       |                             |    p1' |    |    p2' |   ....   |    pn' |
                       |                             |        |    |        |          |        |
                       |                             +--------+    +--------+          +--------+
                       |                                /              /                   /
                       |                               / qun          / qun               / qun
                +------+------+  ---------------------+              /                   /
                |             |                                     /                   /
                |   any ref   |  ----------------------------------+                   /
                |             |                                                       /
                +-------------+  ----------------------------------------------------+
     
     
    Where p1, p2, ..., pn are the or terms of the predicate in the original SelectExpression.