Package org.apache.calcite.plan
@DefaultQualifier(value=org.checkerframework.checker.nullness.qual.NonNull.class,locations=FIELD) @DefaultQualifier(value=org.checkerframework.checker.nullness.qual.NonNull.class,locations=PARAMETER) @DefaultQualifier(value=org.checkerframework.checker.nullness.qual.NonNull.class,locations=RETURN)
package org.apache.calcite.plan
Defines interfaces for constructing rule-based optimizers of
relational expressions.
-
ClassDescriptionAbstract base for implementations of the
RelOptPlannerinterface.A registry of common relational expressions for a given query.ACommonRelSubExprRuleis an abstract base class for rules that are fired only on relational expressions that appear more than once in a query tree.Rule configuration.Provides library users a way to store data within the planner session and access it within rules.Utilities forContext.Calling convention trait.Default implementation.Definition of the convention trait.The mode of trait derivation.Deprecated.MulticastRelOptListener implements theRelOptListenerinterface by forwarding events on to a collection of other listeners.Exception to catch when optimizing the plan produces a result that is too complex, either at the Rel or at the Rex level.The digest is the exact representation of the correspondingRelNode, at anytime, anywhere.Customize the propagation of theRelHints from the root relational expression of a rule callRelOptRuleCallto the new equivalent expression.This is a marker interface for a callback used to convert a tree ofrelational expressionsinto a plan.Trait for which a given relational expression can have multiple values.Partial implementation ofRelOptTable.An environment for related relational expressions during the optimization of a query.The planner's view of a connection to a database.RelOptCost defines an interface for optimizer cost in terms of number of rows processed, CPU cost, and I/O cost.Cost model for query planning.RelOptCostImpl provides a default implementation for theRelOptCostinterface.Use of a lattice by the query optimizer.RelOptListener defines an interface for listening to events which occur during the optimization process.Event indicating that a relational expression has been chosen.Event indicating that a relational expression has been discarded.Event indicating that a relational expression has been found to be equivalent to an equivalence class.Event class for abstract event dealing with a relational expression.Event indicating that a planner rule has been attempted.Event indicating that a planner rule has fired.Event indicating that a planner rule has produced a result.Records that a particular query is materialized by a particular table.Utility methods for using materialized views and lattices for queries.Node in a planner.ARelOptPlanneris 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.Thrown byRelOptPlanner.findBestExp().Deprecated.Predicates that are known to hold in the output of a particular relational expression.ARelOptQueryrepresents a set ofrelational expressionswhich derive from the sameselectstatement.ARelOptRuletransforms an expression into another.Operand to an instance of the converter rule.ARelOptRuleCallis an invocation of aRelOptRulewith a set ofrelational expressions as arguments.Operand that determines whether aRelOptRulecan be applied to a particular expression.Policy by which operands will be matched by relational expressions with any number of children.Deprecated.A utility class for organizing built-in rules and rule related methods.RelOptSamplingParameters represents the parameters necessary to produce a sample of a relation.ARelOptSchemais a set ofRelOptTableobjects.Extension toRelOptSchemawith support for sample data-sets.Represents a relational dataset in aRelOptSchema.Contains the context needed to convert a a table into a relational expression.Can expand a view into relational expressions.RelOptUtildefines static utility methods for use in optimizingRelNodes.Visitor which builds a bitmap of the inputs used by an expression.Shuttle that finds the set of inputs that are used.Policies for handling two- and three-valued boolean logic.Updates correlate references inRexNodeexpressions.Walks an expression tree, converting the index of RexInputRefs based on some adjustment factor.What kind of sub-query.Converts types to descriptive strings.Visitor that finds all variables used in an expression.RelRule<C extends RelRule.Config>Rule that is parameterized via a configuration.Rule configuration.Indicates that an operand is complete.RelRule.MatchHandler<R extends RelOptRule>Callback interface that helps you avoid creating sub-classes ofRelRulethat differ only in implementations ofRelOptRule.onMatch(RelOptRuleCall)method.Callback to create an operand.RelRule.OperandDetailBuilder<R extends RelNode>Add details about an operand, such as its inputs.Function that creates an operand.RelTrait represents the manifestation of a relational expression trait within a trait definition.RelTraitDef<T extends RelTrait>RelTraitDef represents a class ofRelTraits.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 orRelShuttledirectly.RelTraitSet represents an ordered set ofRelTraits.Checks whether one condition logically implies another.Listener for logging useful debugging information on certain rule events.Utilities for strong predicates.How whether an operator's operands are null affects whether a call to that operator evaluates to null.Substitutes part of a tree of relational expressions with another tree.Abstract base class for implementingSubstitutionVisitor.UnifyRule.Exception thrown to exit a matcher.Operand to aSubstitutionVisitor.UnifyRule.Result of an application of aSubstitutionVisitor.UnifyRuleindicating that the rule successfully matchedqueryagainsttargetand generated aresultthat is equivalent toqueryand containstarget.Rule that attempts to match a query relational expression against a target relational expression.Deprecated.As of 1.30.0, if you need to know how tables in a plan are accessed you are encouraged to implement your own logic (using a RelNode visitor or other).Access mode.Utilities forRelOptTable.ViewExpanderandRelOptTable.ToRelContext.DataContext for evaluating a RexExpression.
RexExecutor