Class NumberSeriesGenerateSeriesFunction
java.lang.Object
org.hibernate.query.sqm.function.AbstractSqmSetReturningFunctionDescriptor
org.hibernate.query.sqm.function.AbstractSqmSelfRenderingSetReturningFunctionDescriptor
org.hibernate.dialect.function.GenerateSeriesFunction
org.hibernate.dialect.function.NumberSeriesGenerateSeriesFunction
- All Implemented Interfaces:
SetReturningFunctionRenderer, SqmSetReturningFunctionDescriptor
- Direct Known Subclasses:
CteGenerateSeriesFunction, H2GenerateSeriesFunction, HANAGenerateSeriesFunction, SQLServerGenerateSeriesFunction, SybaseASEGenerateSeriesFunction
The base for generate_series function implementations that use a static number source.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprotected static class -
Field Summary
FieldsFields inherited from class GenerateSeriesFunction
coerceToTimestamp -
Constructor Summary
ConstructorsConstructorDescriptionNumberSeriesGenerateSeriesFunction(@Nullable String defaultValueColumnName, String defaultIndexSelectionExpression, boolean coerceToTimestamp, TypeConfiguration typeConfiguration, int maxSeriesSize) NumberSeriesGenerateSeriesFunction(SetReturningFunctionTypeResolver setReturningFunctionTypeResolver, BasicType<Duration> durationType, boolean coerceToTimestamp, int maxSeriesSize) NumberSeriesGenerateSeriesFunction(SetReturningFunctionTypeResolver setReturningFunctionTypeResolver, BasicType<Duration> durationType, int maxSeriesSize) -
Method Summary
Modifier and TypeMethodDescriptionstatic Expressionadd(Expression left, Expression right, SqmToSqlAstConverter converter) static Expressionmultiply(Expression left, int multiplier, BasicType<Integer> integerType) static Expressionmultiply(Expression left, Expression multiplier) protected static booleanneedsVariable(Expression expression) Returns whether a variable (e.g.protected abstract voidrenderGenerateSeries(SqlAppender sqlAppender, Expression start, Expression stop, @Nullable Expression step, org.hibernate.query.sqm.tuple.internal.AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstTranslator<?> walker) Methods inherited from class GenerateSeriesFunction
renderMethods inherited from class AbstractSqmSelfRenderingSetReturningFunctionDescriptor
generateSqmSetReturningFunctionExpressionMethods inherited from class AbstractSqmSetReturningFunctionDescriptor
generateSqmExpression, getArgumentListSignature, getArgumentsValidator, getArgumentTypeResolver, getName, getSetReturningTypeResolver, getSignatureMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface SetReturningFunctionRenderer
rendersIdentifierVariable
-
Field Details
-
maxSeriesSize
protected final int maxSeriesSize
-
-
Constructor Details
-
NumberSeriesGenerateSeriesFunction
public NumberSeriesGenerateSeriesFunction(@Nullable String defaultValueColumnName, String defaultIndexSelectionExpression, boolean coerceToTimestamp, TypeConfiguration typeConfiguration, int maxSeriesSize) -
NumberSeriesGenerateSeriesFunction
public NumberSeriesGenerateSeriesFunction(SetReturningFunctionTypeResolver setReturningFunctionTypeResolver, BasicType<Duration> durationType, int maxSeriesSize) -
NumberSeriesGenerateSeriesFunction
public NumberSeriesGenerateSeriesFunction(SetReturningFunctionTypeResolver setReturningFunctionTypeResolver, BasicType<Duration> durationType, boolean coerceToTimestamp, int maxSeriesSize)
-
-
Method Details
-
renderGenerateSeries
protected abstract void renderGenerateSeries(SqlAppender sqlAppender, Expression start, Expression stop, @Nullable Expression step, org.hibernate.query.sqm.tuple.internal.AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstTranslator<?> walker) - Overrides:
renderGenerateSeriesin classGenerateSeriesFunction
-
needsVariable
Returns whether a variable (e.g. through values clause) shall be introduced for an expression, which is passed as argument to thegenerate_seriesfunction. Since the selection expression of the value column that this function returns must be transformed to the formstart + step * ( iterationVariable - 1 ), it is vital thatstartandstepcan be rendered to aStringduring SQL AST build time forSelectableMapping.getSelectionExpression(). If that isn't possible because the expression is too complex, a variable needs to be introduced which is then used instead of the original expression. -
add
-
multiply
-
multiply
-