Class VolcanoRuleCall

    • Field Detail

      • generatedRelList

        private java.util.List<RelNode> generatedRelList
        List of RelNode generated by this call. For debugging purposes.
    • Constructor Detail

      • VolcanoRuleCall

        protected VolcanoRuleCall​(VolcanoPlanner planner,
                                  RelOptRuleOperand operand,
                                  RelNode[] rels,
                                  java.util.Map<RelNode,​java.util.List<RelNode>> nodeInputs)
        Creates a rule call, internal, with array to hold bindings.
        Parameters:
        planner - Planner
        operand - First operand of the rule
        rels - Array which will hold the matched relational expressions
        nodeInputs - For each node which matched with matchAnyChildren = true, a list of the node's inputs
      • VolcanoRuleCall

        VolcanoRuleCall​(VolcanoPlanner planner,
                        RelOptRuleOperand operand)
        Creates a rule call.
        Parameters:
        planner - Planner
        operand - First operand of the rule
    • Method Detail

      • transformTo

        public void transformTo​(RelNode rel,
                                java.util.Map<RelNode,​RelNode> equiv)
        Description copied from class: RelOptRuleCall
        Registers that a rule has produced an equivalent relational expression.

        Called by the rule whenever it finds a match. The implementation of this method guarantees that the original relational expression (that is, this.rels[0]) has its traits propagated to the new relational expression (rel) and its unregistered children. Any trait not specifically set in the RelTraitSet returned by rel.getTraits() will be copied from this.rels[0].getTraitSet().

        Specified by:
        transformTo in class RelOptRuleCall
        Parameters:
        rel - Relational expression equivalent to the root relational expression of the rule call, call.rels(0)
        equiv - Map of other equivalences
      • onMatch

        protected void onMatch()
        Called when all operands have matched.
      • match

        void match​(RelNode rel)
        Applies this rule, with a given relational expression in the first slot.
      • matchRecurse

        private void matchRecurse​(int solve)
        Recursively matches operands above a given solve order.
        Parameters:
        solve - Solve order of operand (> 0 and ≤ the operand count)