Defines interfaces for constructing rule-based optimizers of relational expressions.
Interface Summary Interface Description CommonRelSubExprRule.ConfigRule configuration. ContextProvides library users a way to store data within the planner session and access it within rules. ConventionCalling convention trait. RelDigestThe digest is the exact representation of the corresponding
RelNode, at anytime, anywhere.
RelHintsPropagator RelImplementorThis is a marker interface for a callback used to convert a tree of
relational expressionsinto a plan.
RelMultipleTraitTrait for which a given relational expression can have multiple values. RelOptConnectionThe planner's view of a connection to a database. RelOptCostRelOptCost defines an interface for optimizer cost in terms of number of rows processed, CPU cost, and I/O cost. RelOptCostFactoryCost model for query planning. RelOptListenerRelOptListener defines an interface for listening to events which occur during the optimization process. RelOptNodeNode in a planner. RelOptPlannerA
RelOptPlanneris a query optimizer: it transforms a relational expression into a semantically equivalent relational expression, according to a given set of rules and a cost model.
RelOptSchemais a set of
RelOptSchemawith support for sample data-sets.
RelOptTableRepresents a relational dataset in a
RelOptTable.ToRelContextContains the context needed to convert a a table into a relational expression. RelOptTable.ViewExpanderCan expand a view into relational expressions. RelRule.ConfigRule configuration. RelRule.DoneIndicates that an operand is complete. RelRule.MatchHandler<R extends RelOptRule> RelRule.OperandBuilderCallback to create an operand. RelRule.OperandDetailBuilder<R extends RelNode>Add details about an operand, such as its inputs. RelRule.OperandTransformFunction that creates an operand. RelTraitRelTrait represents the manifestation of a relational expression trait within a trait definition.
Class Summary Class Description AbstractRelOptPlannerAbstract base for implementations of the
CommonRelSubExprRuleis an abstract base class for rules that are fired only on relational expressions that appear more than once in a query tree.
Convention.ImplDefault implementation. ConventionTraitDefDefinition of the convention trait. MaterializedViewSubstitutionVisitor Deprecated. MulticastRelOptListenerMulticastRelOptListener implements the
RelOptListenerinterface by forwarding events on to a collection of other listeners.
RelOptAbstractTablePartial implementation of
RelOptClusterAn environment for related relational expressions during the optimization of a query. RelOptCostImplRelOptCostImpl provides a default implementation for the
RelOptLatticeUse of a lattice by the query optimizer. RelOptListener.RelChosenEventEvent indicating that a relational expression has been chosen. RelOptListener.RelDiscardedEventEvent indicating that a relational expression has been discarded. RelOptListener.RelEquivalenceEventEvent indicating that a relational expression has been found to be equivalent to an equivalence class. RelOptListener.RelEventEvent class for abstract event dealing with a relational expression. RelOptListener.RuleAttemptedEventEvent indicating that a planner rule has been attempted. RelOptListener.RuleEventEvent indicating that a planner rule has fired. RelOptListener.RuleProductionEventEvent indicating that a planner rule has produced a result. RelOptMaterializationRecords that a particular query is materialized by a particular table. RelOptMaterializationsUtility methods for using materialized views and lattices for queries. RelOptPredicateListPredicates that are known to hold in the output of a particular relational expression. RelOptQueryA
RelOptQueryrepresents a set of
relational expressionswhich derive from the same
RelOptRuletransforms an expression into another.
RelOptRule.ConverterRelOptRuleOperandOperand to an instance of the converter rule. RelOptRuleCall RelOptRuleOperandOperand that determines whether a
RelOptRulecan be applied to a particular expression.
RelOptRuleOperandChildren Deprecated. RelOptRulesA utility class for organizing built-in rules and rule related methods. RelOptSamplingParametersRelOptSamplingParameters represents the parameters necessary to produce a sample of a relation. RelOptUtil
RelOptUtildefines static utility methods for use in optimizing
RelOptUtil.Exists RelOptUtil.InputFinderVisitor which builds a bitmap of the inputs used by an expression. RelOptUtil.InputReferencedVisitorShuttle that finds the set of inputs that are used. RelOptUtil.RexInputConverterWalks an expression tree, converting the index of RexInputRefs based on some adjustment factor. RelOptUtil.TypeDumperConverts types to descriptive strings. RelOptUtil.VariableUsedVisitorVisitor that finds all variables used in an expression. RelRule<C extends RelRule.Config>Rule that is parameterized via a configuration. RelTraitDef<T extends RelTrait>RelTraitDef represents a class of
RelTraitPropagationVisitor Deprecated.As of 1.19, if you need to perform certain assertions regarding a RelNode tree and the contained traits you are encouraged to implement your own RelVisitor or
RelTraitSetRelTraitSet represents an ordered set of
RexImplicationCheckerChecks whether one condition logically implies another. StrongUtilities for strong predicates. SubstitutionVisitorSubstitutes part of a tree of relational expressions with another tree. SubstitutionVisitor.AbstractUnifyRuleAbstract base class for implementing
SubstitutionVisitor.OperandOperand to a
SubstitutionVisitor.UnifyResultResult of an application of a
SubstitutionVisitor.UnifyRuleindicating that the rule successfully matched
targetand generated a
resultthat is equivalent to
SubstitutionVisitor.UnifyRuleRule that attempts to match a query relational expression against a target relational expression. TableAccessMap
TableAccessMaprepresents the tables accessed by a query plan, with READ/WRITE information.
ViewExpanders VisitorDataContextDataContext for evaluating a RexExpression.
Enum Summary Enum Description DeriveModeThe mode of trait derivation. RelOptRuleOperandChildPolicyPolicy by which operands will be matched by relational expressions with any number of children. RelOptUtil.LogicPolicies for handling two- and three-valued boolean logic. RelOptUtil.SubQueryTypeWhat kind of sub-query. Strong.PolicyHow whether an operator's operands are null affects whether a call to that operator evaluates to null. TableAccessMap.ModeAccess mode.