Package org.apache.calcite.sql2rel
Interface InitializerExpressionFactory
- All Known Implementing Classes:
CountingFactory,NullInitializerExpressionFactory,VirtualColumnsExpressionFactory
public interface InitializerExpressionFactory
InitializerExpressionFactory supplies default values for INSERT, UPDATE, and NEW.
-
Method Summary
Modifier and TypeMethodDescriptiongenerationStrategy(RelOptTable table, int iColumn) Returns how a column is populated.booleanisGeneratedAlways(RelOptTable table, int iColumn) Deprecated.newAttributeInitializer(RelDataType type, SqlFunction constructor, int iAttribute, List<RexNode> constructorArgs, InitializerContext context) Creates an expression which evaluates to the initializer expression for a particular attribute of a structured type.newColumnDefaultValue(RelOptTable table, int iColumn, InitializerContext context) Creates an expression which evaluates to the default value for a particular column.@Nullable BiFunction<InitializerContext,RelNode, RelNode> Creates a hook function to customize the relational expression right after the column expressions are converted.
-
Method Details
-
isGeneratedAlways
Deprecated.Usec.generationStrategy(t, i) == VIRTUAL || c.generationStrategy(t, i) == STOREDWhether a column is always generated. If a column is always generated, then non-generated values cannot be inserted into the column.- See Also:
-
generationStrategy
Returns how a column is populated.- Parameters:
table- the table containing the columniColumn- the 0-based offset of the column in the table- Returns:
- generation strategy, never null
- See Also:
-
newColumnDefaultValue
Creates an expression which evaluates to the default value for a particular column.If the default value comes from a un-validated
SqlNode, make sure to invokeInitializerContext.validateExpression(org.apache.calcite.rel.type.RelDataType, org.apache.calcite.sql.SqlNode)first before you actually do the conversion with methodInitializerContext.convertExpression(org.apache.calcite.sql.SqlNode).- Parameters:
table- the table containing the columniColumn- the 0-based offset of the column in the tablecontext- Context for creating the expression- Returns:
- default value expression
-
postExpressionConversionHook
@Nullable BiFunction<InitializerContext,RelNode, postExpressionConversionHook()RelNode> Creates a hook function to customize the relational expression right after the column expressions are converted. Usually the relational expression is a projection above a table scan.- Returns:
- a hook function to transform the relational expression right after the column expression conversion to a customized one
- See Also:
-
newAttributeInitializer
RexNode newAttributeInitializer(RelDataType type, SqlFunction constructor, int iAttribute, List<RexNode> constructorArgs, InitializerContext context) Creates an expression which evaluates to the initializer expression for a particular attribute of a structured type.- Parameters:
type- the structured typeconstructor- the constructor invoked to initialize the typeiAttribute- the 0-based offset of the attribute in the typeconstructorArgs- arguments passed to the constructor invocationcontext- Context for creating the expression- Returns:
- default value expression
-
c.generationStrategy(t, i) == VIRTUAL || c.generationStrategy(t, i) == STORED