Package  Description 

org.apache.calcite.adapter.druid 
Query provider based on a Druid database.

org.apache.calcite.plan 
Defines interfaces for constructing rulebased optimizers of
relational expressions.

org.apache.calcite.rel.rules 
Provides a core set of planner rules.

Class and Description 

AggregateExtractProjectRule 
AggregateFilterTransposeRule 
FilterAggregateTransposeRule 
FilterProjectTransposeRule
Planner rule that pushes
a
LogicalFilter
past a LogicalProject . 
ProjectFilterTransposeRule 
ProjectSortTransposeRule 
SortProjectTransposeRule 
Class and Description 

MultiJoin
A MultiJoin represents a join of N inputs, whereas regular Joins
represent strictly binary joins.

Class and Description 

AbstractJoinExtractFilterRule 
AbstractMaterializedViewRule 
AbstractMaterializedViewRule.MaterializedViewOnlyAggregateRule
Rule that matches Aggregate.

AbstractMaterializedViewRule.MaterializedViewOnlyFilterRule
Rule that matches Filter.

AbstractMaterializedViewRule.MaterializedViewOnlyJoinRule
Rule that matches Join.

AbstractMaterializedViewRule.MaterializedViewProjectAggregateRule
Rule that matches Project on Aggregate.

AbstractMaterializedViewRule.MaterializedViewProjectFilterRule
Rule that matches Project on Filter.

AbstractMaterializedViewRule.MaterializedViewProjectJoinRule
Rule that matches Project on Join.

AggregateExpandDistinctAggregatesRule
Planner rule that expands distinct aggregates
(such as
COUNT(DISTINCT x) ) from a
Aggregate . 
AggregateFilterTransposeRule 
AggregateJoinTransposeRule 
AggregateProjectMergeRule 
AggregateProjectPullUpConstantsRule
Planner rule that removes constant keys from an
Aggregate . 
AggregateReduceFunctionsRule
Planner rule that reduces aggregate functions in
Aggregate s to simpler forms. 
AggregateRemoveRule
Planner rule that removes
a
Aggregate
if it computes no aggregate functions
(that is, it is implementing SELECT DISTINCT )
and the underlying relational expression is already distinct. 
AggregateStarTableRule
Planner rule that matches an
Aggregate on
top of a StarTable.StarTableScan . 
AggregateUnionAggregateRule 
AggregateUnionTransposeRule 
AggregateValuesRule 
CalcMergeRule
Planner rule that merges a
LogicalCalc onto a
LogicalCalc . 
CalcRemoveRule
Planner rule that removes a trivial
LogicalCalc . 
CalcSplitRule 
FilterAggregateTransposeRule 
FilterCalcMergeRule
Planner rule that merges a
LogicalFilter and a
LogicalCalc . 
FilterCorrelateRule 
FilterJoinRule
Planner rule that pushes filters above and
within a join node into the join node and/or its children nodes.

FilterJoinRule.Predicate
Predicate that returns whether a filter is valid in the ON clause of a
join for this particular kind of join.

FilterMergeRule
Planner rule that combines two
LogicalFilter s. 
FilterMultiJoinMergeRule 
FilterProjectTransposeRule
Planner rule that pushes
a
LogicalFilter
past a LogicalProject . 
FilterRemoveIsNotDistinctFromRule
Planner rule that replaces
IS NOT DISTINCT FROM
in a LogicalFilter
with logically equivalent operations. 
FilterSetOpTransposeRule 
FilterTableFunctionTransposeRule
Planner rule that pushes
a
LogicalFilter
past a LogicalTableFunctionScan . 
FilterTableScanRule
Planner rule that converts
a
Filter
on a TableScan
of a FilterableTable
or a ProjectableFilterableTable
to a Bindables.BindableTableScan . 
FilterToCalcRule
Planner rule that converts a
LogicalFilter to a
LogicalCalc . 
IntersectToDistinctRule 
JoinAddRedundantSemiJoinRule
Rule to add a semijoin into a join.

JoinAssociateRule
Planner rule that changes a join based on the associativity rule.

JoinCommuteRule
Planner rule that permutes the inputs to a
Join . 
JoinExtractFilterRule 
JoinProjectTransposeRule
Planner rule that matches a
Join one of whose inputs is a
LogicalProject , and
pulls the project up. 
JoinPushExpressionsRule
Planner rule that pushes down expressions in "equal" join condition.

JoinPushTransitivePredicatesRule 
JoinToCorrelateRule
Rule that converts a
LogicalJoin
into a LogicalCorrelate , which can
then be implemented using nested loops. 
JoinToMultiJoinRule
Planner rule to flatten a tree of
LogicalJoin s
into a single MultiJoin with N inputs. 
JoinUnionTransposeRule 
LoptJoinTree
Utility class used to store a
Join tree
and the factors that make up the tree. 
LoptJoinTree.BinaryTree
Simple binary tree class that stores an id in the leaf nodes and keeps
track of the parent LoptJoinTree object associated with the binary tree.

LoptMultiJoin
Utility class that keeps track of the join factors that
make up a
MultiJoin . 
LoptOptimizeJoinRule
Planner rule that implements the heuristic planner for determining optimal
join orderings.

MaterializedViewFilterScanRule 
MultiJoin
A MultiJoin represents a join of N inputs, whereas regular Joins
represent strictly binary joins.

MultiJoinOptimizeBushyRule
Planner rule that finds an approximately optimal ordering for join operators
using a heuristic algorithm.

MultiJoinProjectTransposeRule
MultiJoinProjectTransposeRule implements the rule for pulling
LogicalProject s that are on top of a
MultiJoin and beneath a
LogicalJoin so the
LogicalProject appears above the
LogicalJoin . 
ProjectCalcMergeRule
Planner rule which merges a
LogicalProject and a
LogicalCalc . 
ProjectFilterTransposeRule 
ProjectJoinTransposeRule 
ProjectMergeRule 
ProjectMultiJoinMergeRule 
ProjectRemoveRule
Planner rule that,
given a
Project node that
merely returns its input, converts the node into its child. 
ProjectSetOpTransposeRule
Planner rule that pushes
a
LogicalProject
past a SetOp . 
ProjectSortTransposeRule 
ProjectTableScanRule
Planner rule that converts a
Project
on a TableScan
of a ProjectableFilterableTable
to a Bindables.BindableTableScan . 
ProjectToCalcRule
Rule to convert a
LogicalProject to a
LogicalCalc 
ProjectToWindowRule
Planner rule that slices a
Project
into sections which contain windowed
aggregate functions and sections which do not. 
ProjectWindowTransposeRule
Planner rule that pushes
a
LogicalProject
past a LogicalWindow . 
PushProjector.ExprCondition
A functor that replies true or false for a given expression.

ReduceDecimalsRule
ReduceDecimalsRule is a rule which reduces decimal operations (such as casts
or arithmetic) into operations involving more primitive types (such as longs
and doubles).

ReduceExpressionsRule
Collection of planner rules that apply various simplifying transformations on
RexNode trees.

SemiJoinFilterTransposeRule 
SemiJoinJoinTransposeRule 
SemiJoinProjectTransposeRule 
SemiJoinRemoveRule
Planner rule that removes a
SemiJoin s
from a join tree. 
SemiJoinRule 
SortJoinTransposeRule 
SortProjectTransposeRule 
SortRemoveRule
Planner rule that removes
a
Sort if its input is already sorted. 
SortUnionTransposeRule 
SubQueryRemoveRule
Transform that converts IN, EXISTS and scalar subqueries into joins.

TableScanRule
Planner rule that converts a
LogicalTableScan to the result
of calling RelOptTable.toRel(org.apache.calcite.plan.RelOptTable.ToRelContext) . 
UnionEliminatorRule
UnionEliminatorRule checks to see if its possible to optimize a
Union call by eliminating the Union operator altogether in the case the call
consists of only one input. 
UnionMergeRule 
UnionPullUpConstantsRule
Planner rule that pulls up constants through a Union operator.

UnionToDistinctRule 
ValuesReduceRule
Planner rule that folds projections and filters into an underlying
LogicalValues . 
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.