Class RuleCopyCriteria

  • All Implemented Interfaces:
    OptimizerRule

    public final class RuleCopyCriteria
    extends Object
    implements OptimizerRule
    For each join node this rule will find the set of criteria allowed to influence the join (the join criteria, and inner side criteria on non full outer joins) and builds new criteria based upon the equality relationships found. Equality relationships look like element symbol = expression regardless of whether they are from select or join criteria Upon successfully changing a multi group join criteria into another expression with fewer groups, the original criteria will be replace with the new criteria in the on clause. RulePushNonJoinCriteia and CopyCriteria will be run again after this rule if any new join criteria is created. This rule is not allowed to run exhaustively by the setting of the copied property on criteria nodes. It also will not discover all possible relationships, only those that can be discovered quickly.