Interface FunctionalIndexInfo
public interface FunctionalIndexInfo
FunctionalIndexInfo is to collect Functional fields in IndexDescriptor, derive information needed for index plan,
 e.g. convert and rewrite filter, columns, and rowtype on index scan that involve functional index.
 In case different store might have different way to rename expression in index table, we allow storage plugin
- 
Method SummaryModifier and TypeMethodDescriptiongetNewPath(SchemaPath path) getNewPath: for an original path, return new rename '$N' path, notice there could be multiple renamed paths if the there are multiple functional indexes refer original path.return a plain field path if the incoming index expression 'expr' is replaced to be a plain fieldbooleanbooleanWhether this implementation( may be different per storage) support rewrite rewriting varchar equality expression, e.g.
- 
Method Details- 
hasFunctionalboolean hasFunctional()- Returns:
- if this index has functional indexed field, return true
 
- 
getIndexDescIndexDescriptor getIndexDesc()- Returns:
- the IndexDescriptor this IndexInfo built from
 
- 
getNewPathgetNewPath: for an original path, return new rename '$N' path, notice there could be multiple renamed paths if the there are multiple functional indexes refer original path.- Parameters:
- path-
- Returns:
 
- 
getNewPathFromExprreturn a plain field path if the incoming index expression 'expr' is replaced to be a plain field- Parameters:
- expr- suppose to be an indexed expression
- Returns:
- the renamed schemapath in index table for the indexed expression
 
- 
getPathsInFunctionExprMap<LogicalExpression,Set<SchemaPath>> getPathsInFunctionExpr()- Returns:
- the map of indexed expression --> the involved schema paths in a indexed expression
 
- 
getExprMapMap<LogicalExpression,LogicalExpression> getExprMap()- Returns:
- the map between indexed expression and to-be-converted target expression for scan in index e.g. cast(a.b as int) -> '$0'
 
- 
allNewSchemaPathsSet<SchemaPath> allNewSchemaPaths()- Returns:
- the set of all new field names for indexed functions in index
 
- 
allPathsInFunctionSet<SchemaPath> allPathsInFunction()- Returns:
- the set of all schemaPath exist in functional index fields
 
- 
supportEqualCharConvertToLikeboolean supportEqualCharConvertToLike()Whether this implementation( may be different per storage) support rewrite rewriting varchar equality expression, e.g. cast(a.b as varchar(2)) = 'ca' to LIKE expression: cast(a.b as varchar(2) LIKE 'ca%'
 
-