| Package | Description |
|---|---|
| org.apache.calcite.adapter.enumerable |
Query optimizer rules for Java calling convention.
|
| org.apache.calcite.interpreter |
Provides an implementation of relational expressions using an interpreter.
|
| org.apache.calcite.plan |
Defines interfaces for constructing rule-based optimizers of
relational expressions.
|
| org.apache.calcite.plan.hep |
Provides a heuristic planner implementation for the interfaces in
org.apache.calcite.plan. |
| org.apache.calcite.plan.volcano |
Optimizes relational expressions.
|
| org.apache.calcite.rel.convert |
Defines relational expressions and rules for converting between calling
conventions.
|
| org.apache.calcite.rel.rules |
Provides a core set of planner rules.
|
| org.apache.calcite.rel.stream |
Defines relational expressions for streaming.
|
| org.apache.calcite.sql2rel |
Translates a SQL parse tree to relational expression.
|
| Modifier and Type | Method and Description |
|---|---|
void |
EnumerableProjectToCalcRule.onMatch(RelOptRuleCall call) |
void |
EnumerableFilterToCalcRule.onMatch(RelOptRuleCall call) |
void |
EnumerableLimitRule.onMatch(RelOptRuleCall call) |
| Modifier and Type | Method and Description |
|---|---|
void |
Bindables.BindableTableScanRule.onMatch(RelOptRuleCall call) |
| Modifier and Type | Field and Description |
|---|---|
private RelOptRuleCall |
RelOptListener.RuleEvent.ruleCall |
| Modifier and Type | Method and Description |
|---|---|
RelOptRuleCall |
RelOptListener.RuleEvent.getRuleCall() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
AbstractRelOptPlanner.fireRule(RelOptRuleCall ruleCall)
Fires a rule, taking care of tracing and listener notification.
|
boolean |
RelOptRule.matches(RelOptRuleCall call)
Returns whether this rule could possibly match the given operands.
|
protected void |
AbstractRelOptPlanner.notifyTransformation(RelOptRuleCall ruleCall,
RelNode newRel,
boolean before)
Takes care of tracing and listener notification when a rule's
transformation is applied.
|
abstract void |
RelOptRule.onMatch(RelOptRuleCall call)
Receives notification about a rule match.
|
void |
SubstitutionVisitor.FilterOnProjectRule.onMatch(RelOptRuleCall call) |
| Constructor and Description |
|---|
RuleAttemptedEvent(Object eventSource,
RelNode rel,
RelOptRuleCall ruleCall,
boolean before) |
RuleEvent(Object eventSource,
RelNode rel,
RelOptRuleCall ruleCall) |
RuleProductionEvent(Object eventSource,
RelNode rel,
RelOptRuleCall ruleCall,
boolean before) |
| Modifier and Type | Class and Description |
|---|---|
class |
HepRuleCall
HepRuleCall implements
RelOptRuleCall for a HepPlanner. |
| Modifier and Type | Class and Description |
|---|---|
private static class |
VolcanoPlanner.DeferringRuleCall
A rule call which defers its actions.
|
class |
VolcanoRuleCall
VolcanoRuleCall implements the RelOptRuleCall interface
for VolcanoPlanner. |
(package private) class |
VolcanoRuleMatch
A match of a rule to a particular set of target relational expressions,
frozen in time.
|
| Modifier and Type | Method and Description |
|---|---|
void |
AbstractConverter.ExpandConversionRule.onMatch(RelOptRuleCall call) |
| Modifier and Type | Method and Description |
|---|---|
void |
TraitMatchingRule.onMatch(RelOptRuleCall call) |
void |
ConverterRule.onMatch(RelOptRuleCall call) |
| Modifier and Type | Method and Description |
|---|---|
static RelNode |
AggregateProjectMergeRule.apply(RelOptRuleCall call,
Aggregate aggregate,
Project project) |
protected void |
FilterTableScanRule.apply(RelOptRuleCall call,
Filter filter,
TableScan scan) |
protected void |
MaterializedViewFilterScanRule.apply(RelOptRuleCall call,
Filter filter,
TableScan scan) |
protected void |
ValuesReduceRule.apply(RelOptRuleCall call,
LogicalProject project,
LogicalFilter filter,
LogicalValues values)
Does the work.
|
protected void |
AggregateStarTableRule.apply(RelOptRuleCall call,
Project postProject,
Aggregate aggregate,
StarTable.StarTableScan scan) |
protected void |
ProjectTableScanRule.apply(RelOptRuleCall call,
Project project,
TableScan scan) |
protected RelNode |
ReduceExpressionsRule.CalcReduceExpressionsRule.createEmptyRelOrEquivalent(RelOptRuleCall call,
Calc input)
For static schema systems, a filter that is always false or null can be
replaced by a values operator that produces no rows, as the schema
information can just be taken from the input Rel.
|
protected RelNode |
ReduceExpressionsRule.FilterReduceExpressionsRule.createEmptyRelOrEquivalent(RelOptRuleCall call,
Filter input)
For static schema systems, a filter that is always false or null can be
replaced by a values operator that produces no rows, as the schema
information can just be taken from the input Rel.
|
private void |
LoptOptimizeJoinRule.findBestOrderings(RelMetadataQuery mq,
RelBuilder relBuilder,
LoptMultiJoin multiJoin,
LoptSemiJoinOptimizer semiJoinOpt,
RelOptRuleCall call)
Generates N optimal join orderings.
|
protected RelNode |
MultiJoinProjectTransposeRule.getProjectChild(RelOptRuleCall call,
LogicalProject project,
boolean leftChild) |
protected RelNode |
JoinProjectTransposeRule.getProjectChild(RelOptRuleCall call,
Project project,
boolean leftChild)
Returns the child of the project that will be used as input into the new
LogicalJoin once the projects are pulled above the LogicalJoin.
|
protected Project |
JoinProjectTransposeRule.getRightChild(RelOptRuleCall call) |
protected LogicalProject |
MultiJoinProjectTransposeRule.getRightChild(RelOptRuleCall call) |
protected boolean |
JoinProjectTransposeRule.hasLeftChild(RelOptRuleCall call) |
protected boolean |
MultiJoinProjectTransposeRule.hasLeftChild(RelOptRuleCall call) |
protected boolean |
JoinProjectTransposeRule.hasRightChild(RelOptRuleCall call) |
protected boolean |
MultiJoinProjectTransposeRule.hasRightChild(RelOptRuleCall call) |
boolean |
AggregateReduceFunctionsRule.matches(RelOptRuleCall call) |
boolean |
SortJoinTransposeRule.matches(RelOptRuleCall call) |
boolean |
JoinToCorrelateRule.matches(RelOptRuleCall call) |
boolean |
SortUnionTransposeRule.matches(RelOptRuleCall call) |
void |
ProjectSortTransposeRule.onMatch(RelOptRuleCall call) |
void |
ProjectFilterTransposeRule.onMatch(RelOptRuleCall call) |
void |
ProjectToCalcRule.onMatch(RelOptRuleCall call) |
void |
ReduceDecimalsRule.onMatch(RelOptRuleCall call) |
void |
UnionToDistinctRule.onMatch(RelOptRuleCall call) |
void |
CalcMergeRule.onMatch(RelOptRuleCall call) |
void |
AggregateExtractProjectRule.onMatch(RelOptRuleCall call) |
void |
ProjectMultiJoinMergeRule.onMatch(RelOptRuleCall call) |
void |
AggregateUnionAggregateRule.onMatch(RelOptRuleCall call) |
void |
JoinAddRedundantSemiJoinRule.onMatch(RelOptRuleCall call) |
void |
SemiJoinRemoveRule.onMatch(RelOptRuleCall call) |
void |
FilterToCalcRule.onMatch(RelOptRuleCall call) |
void |
PruneEmptyRules.RemoveEmptySingleRule.onMatch(RelOptRuleCall call) |
void |
FilterJoinRule.JoinConditionPushRule.onMatch(RelOptRuleCall call) |
void |
FilterJoinRule.FilterIntoJoinRule.onMatch(RelOptRuleCall call) |
void |
JoinPushExpressionsRule.onMatch(RelOptRuleCall call) |
void |
AggregateReduceFunctionsRule.onMatch(RelOptRuleCall ruleCall) |
void |
SemiJoinProjectTransposeRule.onMatch(RelOptRuleCall call) |
void |
ProjectJoinTransposeRule.onMatch(RelOptRuleCall call) |
void |
JoinPushThroughJoinRule.onMatch(RelOptRuleCall call) |
void |
ProjectRemoveRule.onMatch(RelOptRuleCall call) |
void |
JoinCommuteRule.onMatch(RelOptRuleCall call) |
void |
IntersectToDistinctRule.onMatch(RelOptRuleCall call) |
void |
JoinProjectTransposeRule.onMatch(RelOptRuleCall call) |
void |
FilterTableFunctionTransposeRule.onMatch(RelOptRuleCall call) |
void |
AbstractMaterializedViewRule.MaterializedViewProjectJoinRule.onMatch(RelOptRuleCall call) |
void |
AbstractMaterializedViewRule.MaterializedViewProjectFilterRule.onMatch(RelOptRuleCall call) |
void |
AbstractMaterializedViewRule.MaterializedViewOnlyJoinRule.onMatch(RelOptRuleCall call) |
void |
AbstractMaterializedViewRule.MaterializedViewOnlyFilterRule.onMatch(RelOptRuleCall call) |
void |
AbstractMaterializedViewRule.MaterializedViewProjectAggregateRule.onMatch(RelOptRuleCall call) |
void |
AbstractMaterializedViewRule.MaterializedViewOnlyAggregateRule.onMatch(RelOptRuleCall call) |
void |
JoinPushTransitivePredicatesRule.onMatch(RelOptRuleCall call) |
void |
AggregateStarTableRule.onMatch(RelOptRuleCall call) |
void |
AggregateProjectPullUpConstantsRule.onMatch(RelOptRuleCall call) |
void |
DateRangeRules.FilterDateRangeRule.onMatch(RelOptRuleCall call) |
void |
FilterSetOpTransposeRule.onMatch(RelOptRuleCall call) |
void |
FilterRemoveIsNotDistinctFromRule.onMatch(RelOptRuleCall call) |
void |
AggregateFilterTransposeRule.onMatch(RelOptRuleCall call) |
void |
FilterProjectTransposeRule.onMatch(RelOptRuleCall call) |
void |
FilterAggregateTransposeRule.onMatch(RelOptRuleCall call) |
void |
CalcSplitRule.onMatch(RelOptRuleCall call) |
void |
AggregateProjectMergeRule.onMatch(RelOptRuleCall call) |
void |
ReduceExpressionsRule.FilterReduceExpressionsRule.onMatch(RelOptRuleCall call) |
void |
ReduceExpressionsRule.ProjectReduceExpressionsRule.onMatch(RelOptRuleCall call) |
void |
ReduceExpressionsRule.JoinReduceExpressionsRule.onMatch(RelOptRuleCall call) |
void |
ReduceExpressionsRule.CalcReduceExpressionsRule.onMatch(RelOptRuleCall call) |
void |
SortRemoveRule.onMatch(RelOptRuleCall call) |
void |
SortJoinTransposeRule.onMatch(RelOptRuleCall call) |
void |
FilterMultiJoinMergeRule.onMatch(RelOptRuleCall call) |
void |
FilterCalcMergeRule.onMatch(RelOptRuleCall call) |
void |
AggregateJoinTransposeRule.onMatch(RelOptRuleCall call) |
void |
AggregateUnionTransposeRule.onMatch(RelOptRuleCall call) |
void |
CalcRemoveRule.onMatch(RelOptRuleCall call) |
void |
AggregateExpandDistinctAggregatesRule.onMatch(RelOptRuleCall call) |
void |
JoinToCorrelateRule.onMatch(RelOptRuleCall call) |
void |
MaterializedViewFilterScanRule.onMatch(RelOptRuleCall call) |
void |
TableScanRule.onMatch(RelOptRuleCall call) |
void |
AggregateValuesRule.onMatch(RelOptRuleCall call) |
void |
ProjectMergeRule.onMatch(RelOptRuleCall call) |
void |
JoinAssociateRule.onMatch(RelOptRuleCall call) |
void |
SemiJoinJoinTransposeRule.onMatch(RelOptRuleCall call) |
void |
JoinUnionTransposeRule.onMatch(RelOptRuleCall call) |
void |
MultiJoinOptimizeBushyRule.onMatch(RelOptRuleCall call) |
void |
ProjectToWindowRule.CalcToWindowRule.onMatch(RelOptRuleCall call) |
void |
ProjectToWindowRule.ProjectToLogicalProjectAndWindowRule.onMatch(RelOptRuleCall call) |
void |
UnionEliminatorRule.onMatch(RelOptRuleCall call) |
void |
JoinToMultiJoinRule.onMatch(RelOptRuleCall call) |
void |
UnionPullUpConstantsRule.onMatch(RelOptRuleCall call) |
void |
SemiJoinFilterTransposeRule.onMatch(RelOptRuleCall call) |
void |
SortProjectTransposeRule.onMatch(RelOptRuleCall call) |
void |
ProjectSetOpTransposeRule.onMatch(RelOptRuleCall call) |
void |
AbstractJoinExtractFilterRule.onMatch(RelOptRuleCall call) |
void |
ProjectCalcMergeRule.onMatch(RelOptRuleCall call) |
void |
ProjectWindowTransposeRule.onMatch(RelOptRuleCall call) |
void |
FilterMergeRule.onMatch(RelOptRuleCall call) |
void |
FilterCorrelateRule.onMatch(RelOptRuleCall call) |
void |
SortUnionTransposeRule.onMatch(RelOptRuleCall call) |
void |
SemiJoinRule.onMatch(RelOptRuleCall call) |
void |
SemiJoinRule.ProjectToSemiJoinRule.onMatch(RelOptRuleCall call) |
void |
CoerceInputsRule.onMatch(RelOptRuleCall call) |
void |
LoptOptimizeJoinRule.onMatch(RelOptRuleCall call) |
void |
UnionMergeRule.onMatch(RelOptRuleCall call) |
void |
AggregateRemoveRule.onMatch(RelOptRuleCall call) |
private void |
JoinPushThroughJoinRule.onMatchLeft(RelOptRuleCall call)
Similar to
JoinPushThroughJoinRule.onMatch(org.apache.calcite.plan.RelOptRuleCall), but swaps the upper sibling with the left
of the two lower siblings, rather than the right. |
private void |
JoinPushThroughJoinRule.onMatchRight(RelOptRuleCall call) |
protected void |
FilterJoinRule.perform(RelOptRuleCall call,
Filter filter,
Join join) |
protected void |
SemiJoinRule.perform(RelOptRuleCall call,
Project project,
Join join,
RelNode left,
Aggregate aggregate) |
protected void |
AbstractMaterializedViewRule.perform(RelOptRuleCall call,
Project topProject,
RelNode node)
Rewriting logic is based on "Optimizing Queries Using Materialized Views:
A Practical, Scalable Solution" by Goldstein and Larson.
|
private void |
AggregateReduceFunctionsRule.reduceAggs(RelOptRuleCall ruleCall,
Aggregate oldAggRel)
Reduces all calls to AVG, STDDEV_POP, STDDEV_SAMP, VAR_POP, VAR_SAMP in
the aggregates list to.
|
private void |
ReduceExpressionsRule.FilterReduceExpressionsRule.reduceNotNullableFilter(RelOptRuleCall call,
Filter filter,
RexNode rexNode,
boolean reverse) |
private void |
AggregateExpandDistinctAggregatesRule.rewriteUsingGroupingSets(RelOptRuleCall call,
Aggregate aggregate) |
| Modifier and Type | Method and Description |
|---|---|
void |
StreamRules.DeltaProjectTransposeRule.onMatch(RelOptRuleCall call) |
void |
StreamRules.DeltaFilterTransposeRule.onMatch(RelOptRuleCall call) |
void |
StreamRules.DeltaAggregateTransposeRule.onMatch(RelOptRuleCall call) |
void |
StreamRules.DeltaSortTransposeRule.onMatch(RelOptRuleCall call) |
void |
StreamRules.DeltaUnionTransposeRule.onMatch(RelOptRuleCall call) |
void |
StreamRules.DeltaTableScanRule.onMatch(RelOptRuleCall call) |
void |
StreamRules.DeltaTableScanToEmptyRule.onMatch(RelOptRuleCall call) |
void |
StreamRules.DeltaJoinTransposeRule.onMatch(RelOptRuleCall call) |
| Modifier and Type | Method and Description |
|---|---|
void |
RelDecorrelator.RemoveSingleAggregateRule.onMatch(RelOptRuleCall call) |
void |
RelDecorrelator.RemoveCorrelationForScalarProjectRule.onMatch(RelOptRuleCall call) |
void |
RelDecorrelator.RemoveCorrelationForScalarAggregateRule.onMatch(RelOptRuleCall call) |
void |
RelDecorrelator.AdjustProjectForCountAggregateRule.onMatch(RelOptRuleCall call) |
private void |
RelDecorrelator.AdjustProjectForCountAggregateRule.onMatch2(RelOptRuleCall call,
LogicalCorrelate correlate,
RelNode leftInput,
LogicalProject aggOutputProject,
LogicalAggregate aggregate) |
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.