| Package | Description |
|---|---|
| org.apache.calcite.adapter.elasticsearch |
Base classes for a query provider based on an Elasticsearch DB.
|
| 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.plan |
Defines interfaces for constructing rule-based optimizers of
relational expressions.
|
| org.apache.calcite.rel.core |
Defines core relational expressions.
|
| org.apache.calcite.rel.logical |
Defines logical relational expressions.
|
| org.apache.calcite.rel.metadata |
Defines metadata interfaces and utilities for relational
expressions.
|
| org.apache.calcite.rel.rel2sql |
Translates a relational expression to SQL parse tree.
|
| org.apache.calcite.rel.rules |
Provides a core set of planner rules.
|
| org.apache.calcite.rex |
Provides a language for representing row-expressions.
|
| org.apache.calcite.sql2rel |
Translates a SQL parse tree to relational expression.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ElasticsearchProject
Implementation of
Project
relational expression in Elasticsearch. |
| Modifier and Type | Method and Description |
|---|---|
Project |
ElasticsearchProject.copy(RelTraitSet relTraitSet,
RelNode input,
List<RexNode> projects,
RelDataType relDataType) |
| Modifier and Type | Class and Description |
|---|---|
class |
EnumerableProject
Implementation of
Project in
enumerable calling convention. |
| Modifier and Type | Class and Description |
|---|---|
static class |
JdbcRules.JdbcProject
Implementation of
Project in
jdbc calling convention. |
| Modifier and Type | Class and Description |
|---|---|
static class |
Bindables.BindableProject
Implementation of
Project in
bindable calling convention. |
| Modifier and Type | Method and Description |
|---|---|
void |
Nodes.CoreCompiler.visit(Project project) |
| Constructor and Description |
|---|
ProjectNode(Compiler compiler,
Project rel) |
| Modifier and Type | Field and Description |
|---|---|
static com.google.common.base.Predicate<Project> |
RelOptUtil.PROJECT_PREDICATE
Predicate for whether a project contains multisets or windowed
aggregates.
|
| Modifier and Type | Method and Description |
|---|---|
static boolean |
RelOptUtil.checkProjAndChildInputs(Project project,
boolean checkNames)
Deprecated.
|
static RexNode |
RelOptUtil.pushFilterPastProject(RexNode filter,
Project projRel)
Deprecated.
|
static List<RexNode> |
RelOptUtil.pushPastProject(List<? extends RexNode> nodes,
Project project)
Converts a list of expressions that are based on the output fields of a
Project to equivalent expressions on the Project's
input fields. |
static RexNode |
RelOptUtil.pushPastProject(RexNode node,
Project project)
Converts an expression that is based on the output fields of a
Project to an equivalent expression on the Project's
input fields. |
private static RexShuttle |
RelOptUtil.pushShuttle(Project project) |
| Modifier and Type | Method and Description |
|---|---|
abstract Project |
Project.copy(RelTraitSet traitSet,
RelNode input,
List<RexNode> projects,
RelDataType rowType)
Copies a project.
|
Project |
Project.copy(RelTraitSet traitSet,
RelNode input,
List<RexNode> projects,
RelDataType rowType,
int flags)
Deprecated.
|
| Modifier and Type | Class and Description |
|---|---|
class |
LogicalProject
Sub-class of
Project not
targeted at any particular engine or calling convention. |
| Modifier and Type | Field and Description |
|---|---|
private Project |
RelMdUtil.CardOfProjExpr.rel |
| Modifier and Type | Method and Description |
|---|---|
Boolean |
RelMdColumnUniqueness.areColumnsUnique(Project rel,
RelMetadataQuery mq,
ImmutableBitSet columns,
boolean ignoreNulls) |
List<Double> |
RelMdSize.averageColumnSizes(Project rel,
RelMetadataQuery mq) |
static Double |
RelMdUtil.cardOfProjExpr(RelMetadataQuery mq,
Project rel,
RexNode expr)
Computes the cardinality of a particular expression from the projection
list.
|
com.google.common.collect.ImmutableList<RelCollation> |
RelMdCollation.collations(Project project,
RelMetadataQuery mq) |
RelDistribution |
RelMdDistribution.distribution(Project project,
RelMetadataQuery mq) |
RelOptPredicateList |
RelMdAllPredicates.getAllPredicates(Project project,
RelMetadataQuery mq)
Extract predicates for a project.
|
Set<RelColumnOrigin> |
RelMdColumnOrigins.getColumnOrigins(Project rel,
RelMetadataQuery mq,
int iOutputColumn) |
Double |
RelMdDistinctRowCount.getDistinctRowCount(Project rel,
RelMetadataQuery mq,
ImmutableBitSet groupKey,
RexNode predicate) |
Set<RexNode> |
RelMdExpressionLineage.getExpressionLineage(Project rel,
RelMetadataQuery mq,
RexNode outputExpression)
Expression lineage from Project.
|
Double |
RelMdMaxRowCount.getMaxRowCount(Project rel,
RelMetadataQuery mq) |
Double |
RelMdMinRowCount.getMinRowCount(Project rel,
RelMetadataQuery mq) |
com.google.common.collect.Multimap<Class<? extends RelNode>,RelNode> |
RelMdNodeTypes.getNodeTypes(Project rel,
RelMetadataQuery mq) |
Double |
RelMdPopulationSize.getPopulationSize(Project rel,
RelMetadataQuery mq,
ImmutableBitSet groupKey) |
RelOptPredicateList |
RelMdPredicates.getPredicates(Project project,
RelMetadataQuery mq)
Infers predicates for a project.
|
Double |
RelMdRowCount.getRowCount(Project rel,
RelMetadataQuery mq) |
Double |
RelMdSelectivity.getSelectivity(Project rel,
RelMetadataQuery mq,
RexNode predicate) |
Set<RexTableInputRef.RelTableRef> |
RelMdTableReferences.getTableReferences(Project rel,
RelMetadataQuery mq)
Table references from Project.
|
Set<ImmutableBitSet> |
RelMdUniqueKeys.getUniqueKeys(Project rel,
RelMetadataQuery mq,
boolean ignoreNulls) |
| Constructor and Description |
|---|
CardOfProjExpr(RelMetadataQuery mq,
Project rel) |
| Modifier and Type | Method and Description |
|---|---|
SqlImplementor.Result |
RelToSqlConverter.visit(Project e) |
| Modifier and Type | Field and Description |
|---|---|
private Project |
AbstractMaterializedViewRule.ViewPartialRewriting.newTopViewProject |
private Project |
PushProjector.origProj |
| Modifier and Type | Field and Description |
|---|---|
private static com.google.common.base.Predicate<Project> |
ProjectRemoveRule.PREDICATE |
private static com.google.common.base.Predicate<Project> |
ProjectToWindowRule.PREDICATE2 |
| Modifier and Type | Method and Description |
|---|---|
Project |
PushProjector.createProjectRefsAndExprs(RelNode projChild,
boolean adjust,
boolean rightSide)
Creates a projection based on the inputs specified in a bitmap and the
expressions that need to be preserved.
|
protected Project |
JoinProjectTransposeRule.getRightChild(RelOptRuleCall call) |
| Modifier and Type | Method and Description |
|---|---|
static RelNode |
AggregateProjectMergeRule.apply(RelOptRuleCall call,
Aggregate aggregate,
Project project) |
protected void |
AggregateStarTableRule.apply(RelOptRuleCall call,
Project postProject,
Aggregate aggregate,
StarTable.StarTableScan scan) |
protected void |
ProjectTableScanRule.apply(RelOptRuleCall call,
Project project,
TableScan scan) |
protected abstract AbstractMaterializedViewRule.ViewPartialRewriting |
AbstractMaterializedViewRule.compensateViewPartial(RelBuilder relBuilder,
RexBuilder rexBuilder,
RelMetadataQuery mq,
RelNode input,
Project topProject,
RelNode node,
Set<RexTableInputRef.RelTableRef> queryTableRefs,
AbstractMaterializedViewRule.EquivalenceClasses queryEC,
Project topViewProject,
RelNode viewNode,
Set<RexTableInputRef.RelTableRef> viewTableRefs)
It checks whether the query can be rewritten using the view even though the
query uses additional tables.
|
protected AbstractMaterializedViewRule.ViewPartialRewriting |
AbstractMaterializedViewRule.MaterializedViewJoinRule.compensateViewPartial(RelBuilder relBuilder,
RexBuilder rexBuilder,
RelMetadataQuery mq,
RelNode input,
Project topProject,
RelNode node,
Set<RexTableInputRef.RelTableRef> queryTableRefs,
AbstractMaterializedViewRule.EquivalenceClasses queryEC,
Project topViewProject,
RelNode viewNode,
Set<RexTableInputRef.RelTableRef> viewTableRefs) |
protected AbstractMaterializedViewRule.ViewPartialRewriting |
AbstractMaterializedViewRule.MaterializedViewAggregateRule.compensateViewPartial(RelBuilder relBuilder,
RexBuilder rexBuilder,
RelMetadataQuery mq,
RelNode input,
Project topProject,
RelNode node,
Set<RexTableInputRef.RelTableRef> queryTableRefs,
AbstractMaterializedViewRule.EquivalenceClasses queryEC,
Project topViewProject,
RelNode viewNode,
Set<RexTableInputRef.RelTableRef> viewTableRefs) |
protected void |
JoinProjectTransposeRule.createProjectExprs(Project projRel,
RelNode joinChild,
int adjustmentAmount,
RexBuilder rexBuilder,
List<RelDataTypeField> joinChildrenFields,
List<Pair<RexNode,String>> projects)
Creates projection expressions corresponding to one of the inputs into
the join
|
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.
|
static boolean |
ProjectRemoveRule.isTrivial(Project project) |
protected abstract boolean |
AbstractMaterializedViewRule.isValidPlan(Project topProject,
RelNode node,
RelMetadataQuery mq) |
protected boolean |
AbstractMaterializedViewRule.MaterializedViewJoinRule.isValidPlan(Project topProject,
RelNode node,
RelMetadataQuery mq) |
protected boolean |
AbstractMaterializedViewRule.MaterializedViewAggregateRule.isValidPlan(Project topProject,
RelNode node,
RelMetadataQuery mq) |
protected static AbstractMaterializedViewRule.ViewPartialRewriting |
AbstractMaterializedViewRule.ViewPartialRewriting.of(RelNode newView,
Project newTopViewProject,
RelNode newViewNode) |
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.
|
protected abstract RelNode |
AbstractMaterializedViewRule.rewriteQuery(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
RexNode compensationColumnsEquiPred,
RexNode otherCompensationPred,
Project topProject,
RelNode node,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> viewToQueryTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses viewEC,
AbstractMaterializedViewRule.EquivalenceClasses queryEC)
If the view will be used in a union rewriting, this method is responsible for
rewriting the query branch of the union using the given compensation predicate.
|
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewJoinRule.rewriteQuery(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
RexNode compensationColumnsEquiPred,
RexNode otherCompensationPred,
Project topProject,
RelNode node,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> viewToQueryTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses viewEC,
AbstractMaterializedViewRule.EquivalenceClasses queryEC) |
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewAggregateRule.rewriteQuery(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
RexNode compensationColumnsEquiPred,
RexNode otherCompensationPred,
Project topProject,
RelNode node,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> queryToViewTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses viewEC,
AbstractMaterializedViewRule.EquivalenceClasses queryEC) |
protected abstract RelNode |
AbstractMaterializedViewRule.rewriteView(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
AbstractMaterializedViewRule.MatchModality matchModality,
boolean unionRewriting,
RelNode input,
Project topProject,
RelNode node,
Project topViewProject,
RelNode viewNode,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> queryToViewTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses queryEC)
This method is responsible for rewriting the query using the given view query.
|
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewJoinRule.rewriteView(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
AbstractMaterializedViewRule.MatchModality matchModality,
boolean unionRewriting,
RelNode input,
Project topProject,
RelNode node,
Project topViewProject,
RelNode viewNode,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> queryToViewTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses queryEC) |
protected RelNode |
AbstractMaterializedViewRule.MaterializedViewAggregateRule.rewriteView(RelBuilder relBuilder,
RexBuilder rexBuilder,
RexSimplify simplify,
RelMetadataQuery mq,
AbstractMaterializedViewRule.MatchModality matchModality,
boolean unionRewriting,
RelNode input,
Project topProject,
RelNode node,
Project topViewProject,
RelNode viewNode,
com.google.common.collect.BiMap<RexTableInputRef.RelTableRef,RexTableInputRef.RelTableRef> queryToViewTableMapping,
AbstractMaterializedViewRule.EquivalenceClasses queryEC) |
static RelNode |
ProjectRemoveRule.strip(Project project)
Returns the child of a project if the project is trivial, otherwise
the project itself.
|
| Constructor and Description |
|---|
PushProjector(Project origProj,
RexNode origFilter,
RelNode childRel,
PushProjector.ExprCondition preserveExprCondition,
RelBuilder relBuilder)
Creates a PushProjector object for pushing projects past a RelNode.
|
ViewPartialRewriting(RelNode newView,
Project newTopViewProject,
RelNode newViewNode) |
| Constructor and Description |
|---|
AggregateProjectMergeRule(Class<? extends Aggregate> aggregateClass,
Class<? extends Project> projectClass,
RelBuilderFactory relBuilderFactory) |
FilterProjectTransposeRule(Class<? extends Filter> filterClass,
Class<? extends Project> projectClass,
boolean copyFilter,
boolean copyProject,
RelBuilderFactory relBuilderFactory)
Creates a FilterProjectTransposeRule.
|
FilterProjectTransposeRule(Class<? extends Filter> filterClass,
RelFactories.FilterFactory filterFactory,
Class<? extends Project> projectClass,
RelFactories.ProjectFactory projectFactory)
Deprecated.
|
ProjectFilterTransposeRule(Class<? extends Project> projectClass,
Class<? extends Filter> filterClass,
RelBuilderFactory relBuilderFactory,
PushProjector.ExprCondition preserveExprCondition)
Creates a ProjectFilterTransposeRule.
|
ProjectReduceExpressionsRule(Class<? extends Project> projectClass,
boolean matchNullability,
RelBuilderFactory relBuilderFactory) |
ProjectReduceExpressionsRule(Class<? extends Project> projectClass,
RelBuilderFactory relBuilderFactory)
Deprecated.
|
ProjectSortTransposeRule(Class<Project> projectClass,
Class<Sort> sortClass,
RelBuilderFactory relBuilderFactory)
Creates a ProjectSortTransposeRule.
|
ProjectToSemiJoinRule(Class<Project> projectClass,
Class<Join> joinClass,
Class<Aggregate> aggregateClass,
RelBuilderFactory relBuilderFactory,
String description)
Creates a ProjectToSemiJoinRule.
|
SemiJoinRule(Class<Project> projectClass,
Class<Join> joinClass,
Class<Aggregate> aggregateClass,
RelBuilderFactory relBuilderFactory,
String description) |
SortProjectTransposeRule(Class<? extends Sort> sortClass,
Class<? extends Project> projectClass)
Deprecated.
|
SortProjectTransposeRule(Class<? extends Sort> sortClass,
Class<? extends Project> projectClass,
RelBuilderFactory relBuilderFactory,
String description)
Creates a SortProjectTransposeRule.
|
SortProjectTransposeRule(Class<? extends Sort> sortClass,
Class<? extends Project> projectClass,
String description)
Deprecated.
|
| Modifier and Type | Field and Description |
|---|---|
static com.google.common.base.Predicate<Project> |
RexUtil.SubQueryFinder.PROJECT_PREDICATE
Returns whether a
Project contains a sub-query. |
| Modifier and Type | Method and Description |
|---|---|
RelFieldTrimmer.TrimResult |
RelFieldTrimmer.trimFields(Project project,
ImmutableBitSet fieldsUsed,
Set<RelDataTypeField> extraFields)
|
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.