| Package | Description |
|---|---|
| org.apache.calcite.adapter.enumerable |
Query optimizer rules for Java calling convention.
|
| org.apache.calcite.rel.core |
Defines core relational expressions.
|
| org.apache.calcite.rel.metadata |
Defines metadata interfaces and utilities for relational
expressions.
|
| org.apache.calcite.rel.rules |
Provides a core set of planner rules.
|
| Modifier and Type | Class and Description |
|---|---|
class |
EnumerableSemiJoin
Implementation of
SemiJoin in
enumerable calling convention. |
| Modifier and Type | Method and Description |
|---|---|
SemiJoin |
EnumerableSemiJoin.copy(RelTraitSet traitSet,
RexNode condition,
RelNode left,
RelNode right,
JoinRelType joinType,
boolean semiJoinDone) |
| Modifier and Type | Method and Description |
|---|---|
SemiJoin |
SemiJoin.copy(RelTraitSet traitSet,
RexNode condition,
RelNode left,
RelNode right,
JoinRelType joinType,
boolean semiJoinDone) |
static SemiJoin |
SemiJoin.create(RelNode left,
RelNode right,
RexNode condition,
ImmutableIntList leftKeys,
ImmutableIntList rightKeys)
Creates a SemiJoin.
|
| Modifier and Type | Method and Description |
|---|---|
Boolean |
RelMdColumnUniqueness.areColumnsUnique(SemiJoin rel,
RelMetadataQuery mq,
ImmutableBitSet columns,
boolean ignoreNulls) |
List<Double> |
RelMdSize.averageColumnSizes(SemiJoin rel,
RelMetadataQuery mq) |
static double |
RelMdUtil.computeSemiJoinSelectivity(RelMetadataQuery mq,
RelNode factRel,
RelNode dimRel,
SemiJoin rel)
Computes the selectivity of a semijoin filter if it is applied on a fact
table.
|
static double |
RelMdUtil.computeSemiJoinSelectivity(RelMetadataQuery mq,
SemiJoin rel)
Computes the selectivity of a semijoin filter if it is applied on a fact
table.
|
Double |
RelMdDistinctRowCount.getDistinctRowCount(SemiJoin rel,
RelMetadataQuery mq,
ImmutableBitSet groupKey,
RexNode predicate) |
com.google.common.collect.Multimap<Class<? extends RelNode>,RelNode> |
RelMdNodeTypes.getNodeTypes(SemiJoin rel,
RelMetadataQuery mq) |
Double |
RelMdPopulationSize.getPopulationSize(SemiJoin rel,
RelMetadataQuery mq,
ImmutableBitSet groupKey) |
RelOptPredicateList |
RelMdPredicates.getPredicates(SemiJoin semiJoin,
RelMetadataQuery mq)
Infers predicates for a
SemiJoin. |
Double |
RelMdRowCount.getRowCount(SemiJoin rel,
RelMetadataQuery mq) |
Double |
RelMdSelectivity.getSelectivity(SemiJoin rel,
RelMetadataQuery mq,
RexNode predicate) |
Set<ImmutableBitSet> |
RelMdUniqueKeys.getUniqueKeys(SemiJoin rel,
RelMetadataQuery mq,
boolean ignoreNulls) |
static RexNode |
RelMdUtil.makeSemiJoinSelectivityRexNode(RelMetadataQuery mq,
SemiJoin rel)
Creates a RexNode that stores a selectivity value corresponding to the
selectivity of a semijoin.
|
| Modifier and Type | Field and Description |
|---|---|
(package private) SemiJoin[] |
LoptMultiJoin.joinRemovalSemiJoins
The semijoins that allow the join of a dimension table to be removed
|
| Modifier and Type | Field and Description |
|---|---|
private Map<Integer,Map<Integer,SemiJoin>> |
LoptSemiJoinOptimizer.possibleSemiJoins
Associates potential semijoins with each fact table factor.
|
| Modifier and Type | Method and Description |
|---|---|
private SemiJoin |
LoptSemiJoinOptimizer.findSemiJoinIndexByCost(LoptMultiJoin multiJoin,
List<RexNode> joinFilters,
int factIdx,
int dimIdx)
Given a list of possible filters on a fact table, determine if there is
an index that can be used, provided all the fact table keys originate
from the same underlying table.
|
SemiJoin |
LoptMultiJoin.getJoinRemovalSemiJoin(int dimIdx) |
| Modifier and Type | Method and Description |
|---|---|
private RexNode |
SemiJoinProjectTransposeRule.adjustCondition(LogicalProject project,
SemiJoin semiJoin)
Pulls the project above the semijoin and returns the resulting semijoin
condition.
|
private double |
LoptSemiJoinOptimizer.computeScore(RelNode factRel,
RelNode dimRel,
SemiJoin semiJoin)
Computes a score relevant to applying a set of semijoins on a fact table.
|
private void |
LoptSemiJoinOptimizer.removeJoin(LoptMultiJoin multiJoin,
SemiJoin semiJoin,
int factIdx,
int dimIdx)
Determines whether a join of the dimension table in a semijoin can be
removed.
|
void |
LoptMultiJoin.setJoinRemovalSemiJoin(int dimIdx,
SemiJoin semiJoin)
Indicates the semijoin that allows the join of a dimension table to be
removed
|
| Modifier and Type | Method and Description |
|---|---|
private void |
LoptSemiJoinOptimizer.removePossibleSemiJoin(Map<Integer,SemiJoin> possibleDimensions,
Integer factIdx,
Integer dimIdx)
Removes a dimension table from a fact table's list of possible semijoins
|
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.