public class FunctionalIndexHelper extends Object
Constructor and Description |
---|
FunctionalIndexHelper() |
Modifier and Type | Method and Description |
---|---|
static org.apache.calcite.rex.RexNode |
convertConditionForIndexScan(org.apache.calcite.rex.RexNode idxCondition,
org.apache.calcite.rel.RelNode origScan,
org.apache.calcite.rel.type.RelDataType idxRowType,
org.apache.calcite.rex.RexBuilder builder,
FunctionalIndexInfo functionInfo) |
static org.apache.calcite.rel.type.RelDataType |
convertRowTypeForIndexScan(DrillScanRelBase origScan,
IndexableExprMarker idxMarker,
IndexGroupScan idxScan,
FunctionalIndexInfo functionInfo)
For IndexScan in non-covering case, rowType to return contains only row_key('_id') of primary table.
|
static org.apache.calcite.rel.type.RelDataType |
rewriteFunctionalRowType(org.apache.calcite.rel.RelNode origScan,
IndexCallContext indexContext,
FunctionalIndexInfo functionInfo) |
static org.apache.calcite.rel.type.RelDataType |
rewriteFunctionalRowType(org.apache.calcite.rel.RelNode origScan,
IndexCallContext indexContext,
FunctionalIndexInfo functionInfo,
Collection<SchemaPath> addedPaths)
if a field in rowType serves only the to-be-replaced column(s), we should replace it with new name "$1",
otherwise we should keep this dataTypeField and add a new one for "$1"
|
public static org.apache.calcite.rel.type.RelDataType rewriteFunctionalRowType(org.apache.calcite.rel.RelNode origScan, IndexCallContext indexContext, FunctionalIndexInfo functionInfo)
public static org.apache.calcite.rel.type.RelDataType rewriteFunctionalRowType(org.apache.calcite.rel.RelNode origScan, IndexCallContext indexContext, FunctionalIndexInfo functionInfo, Collection<SchemaPath> addedPaths)
origScan
- the original scan whose rowtype is to be rewrittenindexContext
- the index plan contextfunctionInfo
- functional index information that may impact rewritepublic static org.apache.calcite.rel.type.RelDataType convertRowTypeForIndexScan(DrillScanRelBase origScan, IndexableExprMarker idxMarker, IndexGroupScan idxScan, FunctionalIndexInfo functionInfo)
origScan
- idxMarker
- the IndexableExprMarker that has analyzed original index condition on top of index scanidxScan
- public static org.apache.calcite.rex.RexNode convertConditionForIndexScan(org.apache.calcite.rex.RexNode idxCondition, org.apache.calcite.rel.RelNode origScan, org.apache.calcite.rel.type.RelDataType idxRowType, org.apache.calcite.rex.RexBuilder builder, FunctionalIndexInfo functionInfo)
Copyright © 1970 The Apache Software Foundation. All rights reserved.