Package org.hibernate.dialect.function
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 class
protected static class
-
Field Summary
FieldsFields inherited from class org.hibernate.dialect.function.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 Expression
add
(Expression left, Expression right, SqmToSqlAstConverter converter) static Expression
multiply
(Expression left, int multiplier, BasicType<Integer> integerType) static Expression
multiply
(Expression left, Expression multiplier) protected static boolean
needsVariable
(Expression expression) Returns whether a variable (e.g.protected abstract void
renderGenerateSeries
(SqlAppender sqlAppender, Expression start, Expression stop, @Nullable Expression step, AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstTranslator<?> walker) Methods inherited from class org.hibernate.dialect.function.GenerateSeriesFunction
render
Methods inherited from class org.hibernate.query.sqm.function.AbstractSqmSelfRenderingSetReturningFunctionDescriptor
generateSqmSetReturningFunctionExpression
Methods inherited from class org.hibernate.query.sqm.function.AbstractSqmSetReturningFunctionDescriptor
generateSqmExpression, getArgumentListSignature, getArgumentsValidator, getArgumentTypeResolver, getName, getSetReturningTypeResolver, getSignature
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.hibernate.query.sqm.function.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, AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstTranslator<?> walker) - Overrides:
renderGenerateSeries
in classGenerateSeriesFunction
-
needsVariable
Returns whether a variable (e.g. through values clause) shall be introduced for an expression, which is passed as argument to thegenerate_series
function. Since the selection expression of the value column that this function returns must be transformed to the formstart + step * ( iterationVariable - 1 )
, it is vital thatstart
andstep
can be rendered to aString
during 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
-