Class AbstractIndexPlanGenerator
java.lang.Object
org.apache.drill.exec.planner.physical.SubsetTransformer<org.apache.calcite.rel.RelNode,org.apache.calcite.rel.InvalidRelException>
org.apache.drill.exec.planner.index.generators.AbstractIndexPlanGenerator
- Direct Known Subclasses:
CoveringIndexPlanGenerator,CoveringPlanNoFilterGenerator,IndexIntersectPlanGenerator,NonCoveringIndexPlanGenerator
public abstract class AbstractIndexPlanGenerator
extends SubsetTransformer<org.apache.calcite.rel.RelNode,org.apache.calcite.rel.InvalidRelException>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.apache.calcite.rex.RexBuilderprotected final org.apache.calcite.rex.RexNodeprotected final IndexCallContextprotected final DrillProjectRelBaseprotected final DrillScanRelBaseprotected final org.apache.calcite.rex.RexNodeprotected final PlannerSettingsprotected final DrillProjectRelBase -
Constructor Summary
ConstructorsConstructorDescriptionAbstractIndexPlanGenerator(IndexCallContext indexContext, org.apache.calcite.rex.RexNode indexCondition, org.apache.calcite.rex.RexNode remainderCondition, org.apache.calcite.rex.RexBuilder builder, PlannerSettings settings) -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancheckRowKey(List<SchemaPath> columns) abstract org.apache.calcite.rel.RelNodeconvertChild(org.apache.calcite.rel.RelNode current, org.apache.calcite.rel.RelNode child) protected org.apache.calcite.rel.type.RelDataTypeconvertRowType(org.apache.calcite.rel.type.RelDataType origRowType, org.apache.calcite.rel.type.RelDataTypeFactory typeFactory) protected org.apache.calcite.rel.RelNodecreateRangeDistRight(org.apache.calcite.rel.RelNode rightPrel, org.apache.calcite.rel.type.RelDataTypeField rightRowKeyField, DbGroupScan origDbGroupScan) booleanstatic org.apache.calcite.rel.RelNodegetExchange(org.apache.calcite.plan.RelOptCluster cluster, boolean isSingleton, boolean isExchangeRequired, org.apache.calcite.plan.RelTraitSet traits, DrillDistributionTrait distributionTrait, IndexCallContext indexContext, org.apache.calcite.rel.RelNode input) static intgetRowKeyIndex(org.apache.calcite.rel.type.RelDataType rowType, DrillScanRelBase origScan) static org.apache.calcite.rel.RelNodegetSortNode(IndexCallContext indexContext, org.apache.calcite.rel.RelNode newRel, boolean donotGenerateSort, boolean isSingleton, boolean isExchangeRequired) voidgo()org.apache.calcite.plan.RelTraitSetnewTraitSet(org.apache.calcite.plan.RelTrait... traits) protected static booleantoRemoveSort(org.apache.calcite.rel.RelCollation sortCollation, org.apache.calcite.rel.RelCollation inputCollation) Methods inherited from class org.apache.drill.exec.planner.physical.SubsetTransformer
go
-
Field Details
-
origProject
-
origScan
-
upperProject
-
indexCondition
protected final org.apache.calcite.rex.RexNode indexCondition -
remainderCondition
protected final org.apache.calcite.rex.RexNode remainderCondition -
builder
protected final org.apache.calcite.rex.RexBuilder builder -
indexContext
-
settings
-
-
Constructor Details
-
AbstractIndexPlanGenerator
public AbstractIndexPlanGenerator(IndexCallContext indexContext, org.apache.calcite.rex.RexNode indexCondition, org.apache.calcite.rex.RexNode remainderCondition, org.apache.calcite.rex.RexBuilder builder, PlannerSettings settings)
-
-
Method Details
-
getRowKeyIndex
public static int getRowKeyIndex(org.apache.calcite.rel.type.RelDataType rowType, DrillScanRelBase origScan) -
convertRowType
protected org.apache.calcite.rel.type.RelDataType convertRowType(org.apache.calcite.rel.type.RelDataType origRowType, org.apache.calcite.rel.type.RelDataTypeFactory typeFactory) -
checkRowKey
-
createRangeDistRight
protected org.apache.calcite.rel.RelNode createRangeDistRight(org.apache.calcite.rel.RelNode rightPrel, org.apache.calcite.rel.type.RelDataTypeField rightRowKeyField, DbGroupScan origDbGroupScan) -
newTraitSet
public org.apache.calcite.plan.RelTraitSet newTraitSet(org.apache.calcite.plan.RelTrait... traits) - Overrides:
newTraitSetin classSubsetTransformer<org.apache.calcite.rel.RelNode,org.apache.calcite.rel.InvalidRelException>
-
toRemoveSort
protected static boolean toRemoveSort(org.apache.calcite.rel.RelCollation sortCollation, org.apache.calcite.rel.RelCollation inputCollation) -
getExchange
public static org.apache.calcite.rel.RelNode getExchange(org.apache.calcite.plan.RelOptCluster cluster, boolean isSingleton, boolean isExchangeRequired, org.apache.calcite.plan.RelTraitSet traits, DrillDistributionTrait distributionTrait, IndexCallContext indexContext, org.apache.calcite.rel.RelNode input) -
getSortNode
public static org.apache.calcite.rel.RelNode getSortNode(IndexCallContext indexContext, org.apache.calcite.rel.RelNode newRel, boolean donotGenerateSort, boolean isSingleton, boolean isExchangeRequired) -
convertChild
public abstract org.apache.calcite.rel.RelNode convertChild(org.apache.calcite.rel.RelNode current, org.apache.calcite.rel.RelNode child) throws org.apache.calcite.rel.InvalidRelException - Specified by:
convertChildin classSubsetTransformer<org.apache.calcite.rel.RelNode,org.apache.calcite.rel.InvalidRelException> - Throws:
org.apache.calcite.rel.InvalidRelException
-
forceConvert
public boolean forceConvert()- Overrides:
forceConvertin classSubsetTransformer<org.apache.calcite.rel.RelNode,org.apache.calcite.rel.InvalidRelException>
-
go
public void go() throws org.apache.calcite.rel.InvalidRelException- Throws:
org.apache.calcite.rel.InvalidRelException
-