| Package | Description |
|---|---|
| org.apache.calcite.adapter.enumerable |
Query optimizer rules for Java calling convention.
|
| org.apache.calcite.adapter.jdbc |
Query provider based on a JDBC data source.
|
| org.apache.calcite.interpreter |
Provides an implementation of relational expressions using an interpreter.
|
| org.apache.calcite.jdbc |
JDBC driver for Calcite.
|
| 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.tools |
Provides utility classes.
|
| Modifier and Type | Field and Description |
|---|---|
static RelOptRule |
EnumerableRules.ENUMERABLE_CORRELATE_RULE |
static RelOptRule |
EnumerableRules.ENUMERABLE_JOIN_RULE |
static RelOptRule |
EnumerableRules.ENUMERABLE_MERGE_JOIN_RULE |
static RelOptRule |
EnumerableRules.ENUMERABLE_SEMI_JOIN_RULE |
| Modifier and Type | Class and Description |
|---|---|
static class |
JdbcRules.JdbcTableModificationRule
Rule that converts a table-modification to JDBC.
|
static class |
JdbcRules.JdbcValuesRule
Rule that converts a values operator to JDBC.
|
class |
JdbcToEnumerableConverterRule
Rule to convert a relational expression from
JdbcConvention to
EnumerableConvention. |
| Modifier and Type | Method and Description |
|---|---|
static List<RelOptRule> |
JdbcRules.rules(JdbcConvention out) |
| Modifier and Type | Class and Description |
|---|---|
class |
NoneToBindableConverterRule
Rule to convert a relational expression from
Convention.NONE
to BindableConvention. |
| Modifier and Type | Field and Description |
|---|---|
static RelOptRule |
Bindables.BINDABLE_AGGREGATE_RULE |
static RelOptRule |
Bindables.BINDABLE_FILTER_RULE |
static RelOptRule |
Bindables.BINDABLE_JOIN_RULE |
static RelOptRule |
Bindables.BINDABLE_PROJECT_RULE |
static RelOptRule |
Bindables.BINDABLE_SORT_RULE |
static RelOptRule |
Bindables.BINDABLE_TABLE_SCAN_RULE |
static RelOptRule |
Bindables.BINDABLE_UNION_RULE |
static RelOptRule |
Bindables.BINDABLE_VALUES_RULE |
static RelOptRule |
Bindables.BINDABLE_WINDOW_RULE |
| Modifier and Type | Field and Description |
|---|---|
static com.google.common.collect.ImmutableList<RelOptRule> |
Bindables.RULES
All rules that convert logical relational expression to bindable.
|
| Modifier and Type | Method and Description |
|---|---|
void |
CalcitePrepare.SparkHandler.RuleSetBuilder.addRule(RelOptRule rule) |
void |
CalcitePrepare.SparkHandler.RuleSetBuilder.removeRule(RelOptRule rule) |
| Modifier and Type | Class and Description |
|---|---|
class |
CommonRelSubExprRule
A
CommonRelSubExprRule is an abstract base class for rules
that are fired only on relational expressions that appear more than once
in a query tree. |
static class |
SubstitutionVisitor.FilterOnProjectRule
Rule that converts a
LogicalFilter
on top of a LogicalProject into a
trivial filter (on a boolean column). |
| Modifier and Type | Field and Description |
|---|---|
RelOptRule |
RelOptRuleCall.rule |
| Modifier and Type | Method and Description |
|---|---|
RelOptRule |
RelOptRuleCall.getRule()
Returns the invoked planner rule.
|
RelOptRule |
RelOptRuleOperand.getRule()
Returns the rule this operand belongs to.
|
protected RelOptRule |
AbstractRelOptPlanner.getRuleByDescription(String description)
Returns the rule with a given description
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
RelOptPlanner.addRule(RelOptRule rule)
Registers a rule.
|
protected boolean |
RelOptRule.equals(RelOptRule that)
Returns whether this rule is equal to another rule.
|
boolean |
AbstractRelOptPlanner.isRuleExcluded(RelOptRule rule)
Determines whether a given rule is excluded by ruleDescExclusionFilter.
|
protected void |
AbstractRelOptPlanner.mapRuleDescription(RelOptRule rule)
Registers a rule's description.
|
boolean |
RelOptPlanner.removeRule(RelOptRule rule)
Removes a rule.
|
void |
RelOptRuleOperand.setRule(RelOptRule rule)
Sets the rule this operand belongs to
|
protected void |
AbstractRelOptPlanner.unmapRuleDescription(RelOptRule rule)
Removes the mapping between a rule and its description.
|
| Modifier and Type | Method and Description |
|---|---|
<R extends RelOptRule> |
HepProgramBuilder.addRuleClass(Class<R> ruleClass)
Adds an instruction to attempt to match any rules of a given class.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
HepPlanner.addRule(RelOptRule rule) |
HepProgramBuilder |
HepProgramBuilder.addRuleInstance(RelOptRule rule)
Adds an instruction to attempt to match a specific rule object.
|
boolean |
HepPlanner.removeRule(RelOptRule rule) |
| Modifier and Type | Method and Description |
|---|---|
HepProgramBuilder |
HepProgramBuilder.addRuleCollection(Collection<RelOptRule> rules)
Adds an instruction to attempt to match any rules in a given collection.
|
| Modifier and Type | Class and Description |
|---|---|
static class |
AbstractConverter.ExpandConversionRule
Rule which converts an
AbstractConverter into a chain of
converters from the source relation to the target traits. |
| Modifier and Type | Field and Description |
|---|---|
protected Set<RelOptRule> |
VolcanoPlanner.ruleSet
Set of all registered rules.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
VolcanoPlanner.addRule(RelOptRule rule) |
boolean |
VolcanoPlanner.removeRule(RelOptRule rule) |
| Modifier and Type | Class and Description |
|---|---|
class |
ConverterRule
Abstract base class for a rule which converts from one calling convention to
another without changing semantics.
|
class |
TraitMatchingRule
TraitMatchingRule adapts a converter rule, restricting it to fire only when
its input already matches the expected output trait.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AggregateExpandDistinctAggregatesRule
Planner rule that expands distinct aggregates
(such as
COUNT(DISTINCT x)) from a
LogicalAggregate. |
class |
AggregateFilterTransposeRule
|
class |
AggregateJoinTransposeRule
|
class |
AggregateProjectMergeRule
|
class |
AggregateProjectPullUpConstantsRule
Planner rule that removes constant expressions from the
group list of an
LogicalAggregate. |
class |
AggregateReduceFunctionsRule
Planner rule that reduces aggregate functions in
Aggregates to simpler forms. |
class |
AggregateRemoveRule
Planner rule that removes
a
LogicalAggregate
if it computes no aggregate functions
(that is, it is implementing SELECT DISTINCT)
and the underlying relational expression is already distinct. |
class |
AggregateStarTableRule
Planner rule that matches an
Aggregate on
top of a StarTable.StarTableScan. |
class |
AggregateUnionAggregateRule
|
class |
AggregateUnionTransposeRule
|
class |
CalcMergeRule
Planner rule that merges a
LogicalCalc onto a
LogicalCalc. |
class |
CalcRemoveRule
Planner rule that removes a trivial
LogicalCalc. |
class |
CalcSplitRule
|
class |
CoerceInputsRule
CoerceInputsRule precasts inputs to a particular type.
|
class |
FilterAggregateTransposeRule
|
class |
FilterCalcMergeRule
Planner rule that merges a
LogicalFilter and a
LogicalCalc. |
class |
FilterJoinRule
Planner rule that pushes filters above and
within a join node into the join node and/or its children nodes.
|
static class |
FilterJoinRule.FilterIntoJoinRule
Rule that tries to push filter expressions into a join
condition and into the inputs of the join.
|
static class |
FilterJoinRule.JoinConditionPushRule
Rule that pushes parts of the join condition to its inputs.
|
class |
FilterMergeRule
Planner rule that combines two
LogicalFilters. |
class |
FilterMultiJoinMergeRule
|
class |
FilterProjectTransposeRule
Planner rule that pushes
a
LogicalFilter
past a LogicalProject. |
class |
FilterRemoveIsNotDistinctFromRule
Planner rule that replaces
IS NOT DISTINCT FROM
in a LogicalFilter
with logically equivalent operations. |
class |
FilterSetOpTransposeRule
|
class |
FilterTableFunctionTransposeRule
Planner rule that pushes
a
LogicalFilter
past a LogicalTableFunctionScan. |
class |
FilterTableScanRule
Planner rule that converts
a
Filter
on a TableScan
of a FilterableTable
or a ProjectableFilterableTable
to a Bindables.BindableTableScan. |
class |
FilterToCalcRule
Planner rule that converts a
LogicalFilter to a
LogicalCalc. |
class |
JoinAddRedundantSemiJoinRule
Rule to add a semi-join into a join.
|
class |
JoinAssociateRule
Planner rule that changes a join based on the associativity rule.
|
class |
JoinCommuteRule
Planner rule that permutes the inputs to a
Join. |
class |
JoinExtractFilterRule
|
class |
JoinProjectTransposeRule
Planner rule that matches a
Join one of whose inputs is a
LogicalProject, and
pulls the project up. |
class |
JoinPushThroughJoinRule
Rule that pushes the right input of a join into through the left input of
the join, provided that the left input is also a join.
|
class |
JoinPushTransitivePredicatesRule
|
class |
JoinToCorrelateRule
Rule that converts a
LogicalJoin
into a LogicalCorrelate, which can
then be implemented using nested loops. |
class |
JoinToMultiJoinRule
Planner rule to flatten a tree of
LogicalJoins
into a single MultiJoin with N inputs. |
class |
JoinUnionTransposeRule
Planner rule that pushes a
LogicalJoin
past a non-distinct LogicalUnion. |
class |
LoptOptimizeJoinRule
Planner rule that implements the heuristic planner for determining optimal
join orderings.
|
class |
MultiJoinOptimizeBushyRule
Planner rule that finds an approximately optimal ordering for join operators
using a heuristic algorithm.
|
class |
MultiJoinProjectTransposeRule
MultiJoinProjectTransposeRule implements the rule for pulling
LogicalProjects that are on top of a
MultiJoin and beneath a
LogicalJoin so the
LogicalProject appears above the
LogicalJoin. |
class |
ProjectCalcMergeRule
Planner rule which merges a
LogicalProject and a
LogicalCalc. |
class |
ProjectFilterTransposeRule
|
class |
ProjectJoinTransposeRule
|
class |
ProjectMergeRule
|
class |
ProjectMultiJoinMergeRule
|
class |
ProjectRemoveRule
Planner rule that,
given a
Project node that
merely returns its input, converts the node into its child. |
class |
ProjectSetOpTransposeRule
Planner rule that pushes
a
LogicalProject
past a SetOp. |
class |
ProjectSortTransposeRule
Planner rule that pushes
a
LogicalProject
past a Sort. |
class |
ProjectTableScanRule
Planner rule that converts a
Project
on a TableScan
of a ProjectableFilterableTable
to a Bindables.BindableTableScan. |
class |
ProjectToCalcRule
Rule to convert a
LogicalProject to a
LogicalCalc |
class |
ProjectToWindowRule
Planner rule that slices a
Project
into sections which contain windowed
aggregate functions and sections which do not. |
class |
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).
|
class |
ReduceExpressionsRule
Collection of planner rules that apply various simplifying transformations on
RexNode trees.
|
class |
SemiJoinFilterTransposeRule
|
class |
SemiJoinJoinTransposeRule
|
class |
SemiJoinProjectTransposeRule
|
class |
SemiJoinRemoveRule
Planner rule that removes a
SemiJoins
from a join tree. |
class |
SemiJoinRule
|
class |
SortProjectTransposeRule
Planner rule that pushes
a
Sort
past a LogicalProject. |
class |
SortRemoveRule
Planner rule that removes
a
Sort if its input is already sorted. |
class |
TableScanRule
Planner rule that converts a
LogicalTableScan to the result
of calling RelOptTable.toRel(org.apache.calcite.plan.RelOptTable.ToRelContext). |
class |
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. |
class |
UnionMergeRule
|
class |
UnionToDistinctRule
|
class |
ValuesReduceRule
Planner rule that folds projections and filters into an underlying
LogicalValues. |
| Modifier and Type | Field and Description |
|---|---|
static RelOptRule |
PruneEmptyRules.AGGREGATE_INSTANCE
Rule that converts an
Aggregate
to empty if its child is empty. |
static RelOptRule |
PruneEmptyRules.FILTER_INSTANCE
Rule that converts a
LogicalFilter
to empty if its child is empty. |
static RelOptRule |
PruneEmptyRules.JOIN_LEFT_INSTANCE
Rule that converts a
Join
to empty if its left child is empty. |
static RelOptRule |
PruneEmptyRules.JOIN_RIGHT_INSTANCE
Rule that converts a
Join
to empty if its right child is empty. |
static RelOptRule |
JoinPushThroughJoinRule.LEFT
Instance of the rule that works on logical joins only, and pushes to the
left.
|
static RelOptRule |
PruneEmptyRules.PROJECT_INSTANCE
Rule that converts a
LogicalProject
to empty if its child is empty. |
static RelOptRule |
JoinPushThroughJoinRule.RIGHT
Instance of the rule that works on logical joins only, and pushes to the
right.
|
static RelOptRule |
PruneEmptyRules.SORT_FETCH_ZERO_INSTANCE
Rule that converts a
Sort
to empty if it has LIMIT 0. |
static RelOptRule |
PruneEmptyRules.SORT_INSTANCE
Rule that converts a
Sort
to empty if its child is empty. |
static RelOptRule |
PruneEmptyRules.UNION_INSTANCE
Rule that removes empty children of a
LogicalUnion. |
| Modifier and Type | Class and Description |
|---|---|
static class |
StreamRules.DeltaAggregateTransposeRule
|
static class |
StreamRules.DeltaFilterTransposeRule
|
static class |
StreamRules.DeltaProjectTransposeRule
|
static class |
StreamRules.DeltaSortTransposeRule
|
static class |
StreamRules.DeltaTableScanRule
|
static class |
StreamRules.DeltaUnionTransposeRule
|
| Modifier and Type | Field and Description |
|---|---|
static com.google.common.collect.ImmutableList<RelOptRule> |
StreamRules.RULES |
| Modifier and Type | Field and Description |
|---|---|
static com.google.common.collect.ImmutableList<RelOptRule> |
Programs.CALC_RULES |
static com.google.common.collect.ImmutableSet<RelOptRule> |
Programs.RULE_SET |
| Modifier and Type | Method and Description |
|---|---|
static RuleSet |
RuleSets.ofList(RelOptRule... rules)
Creates a rule set with a given array of rules.
|
static Program |
Programs.ofRules(RelOptRule... rules)
Creates a program from a list of rules.
|
| Modifier and Type | Method and Description |
|---|---|
static Program |
Programs.hep(com.google.common.collect.ImmutableList<RelOptRule> rules,
boolean noDag,
RelMetadataProvider metadataProvider)
Creates a program that executes a list of rules in a HEP planner.
|
static Program |
Programs.heuristicJoinOrder(Collection<RelOptRule> rules,
boolean bushy,
int minJoinCount)
Creates a program that invokes heuristic join-order optimization
(via
JoinToMultiJoinRule,
MultiJoin and
LoptOptimizeJoinRule)
if there are 6 or more joins (7 or more relations). |
static RuleSet |
RuleSets.ofList(Collection<RelOptRule> rules)
Creates a rule set with a given collection of rules.
|
static Program |
Programs.ofRules(Collection<RelOptRule> rules)
Creates a program from a list of rules.
|
Copyright © 2012–2015 The Apache Software Foundation. All rights reserved.