Interface SequenceSupport
-
- All Known Implementing Classes:
ANSISequenceSupport
,DB2iSequenceSupport
,DB2SequenceSupport
,DB2zSequenceSupport
,DerbySequenceSupport
,H2V1SequenceSupport
,H2V2SequenceSupport
,HANASequenceSupport
,HSQLSequenceSupport
,LegacyDB2SequenceSupport
,MariaDBSequenceSupport
,NextvalSequenceSupport
,NoSequenceSupport
,OracleSequenceSupport
,PostgreSQLSequenceSupport
,SQLServer16SequenceSupport
,SQLServerSequenceSupport
,TiDBSequenceSupport
public interface SequenceSupport
A set of operations providing support for sequences in a certainSQL dialect
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default String
getCreateSequenceString(String sequenceName)
Typically dialects which support sequences can create a sequence with a single command.default String
getCreateSequenceString(String sequenceName, int initialValue, int incrementSize)
Typically dialects which support sequences can create a sequence with a single command.default String[]
getCreateSequenceStrings(String sequenceName, int initialValue, int incrementSize)
An optional multi-line form for databases whichsupportsPooledSequences()
.default String
getDropSequenceString(String sequenceName)
Typically dialects which support sequences can drop a sequence with a single command.default String[]
getDropSequenceStrings(String sequenceName)
The multiline script used to drop a sequence.default String
getFromDual()
String
getSelectSequenceNextValString(String sequenceName)
Generate the select expression fragment that will retrieve the next value of a sequence as part of another (typically DML) statement.default String
getSelectSequencePreviousValString(String sequenceName)
Generate the select expression fragment that will retrieve the previous value of a sequence as part of another (typically DML) statement.default String
getSequenceNextValString(String sequenceName)
Generate the appropriate select statement to to retrieve the next value of a sequence.default String
getSequenceNextValString(String sequenceName, int increment)
Generate the appropriate select statement to to retrieve the next value of a sequence.default String
getSequencePreviousValString(String sequenceName)
Generate the appropriate select statement to to retrieve the previous value of a sequence.default boolean
sometimesNeedsStartingValue()
Do we need to explicitly specifyminvalue
ormaxvalue
when the initial value doesn't have the same sign as the increment?default String
startingValue(int initialValue, int incrementSize)
default boolean
supportsPooledSequences()
Does this dialect support "pooled" sequences.default boolean
supportsSequences()
Does this dialect support sequences?
-
-
-
Method Detail
-
supportsSequences
default boolean supportsSequences()
Does this dialect support sequences?- Returns:
- True if sequences supported; false otherwise.
-
supportsPooledSequences
default boolean supportsPooledSequences()
Does this dialect support "pooled" sequences. Not aware of a better name for this. Essentially can we specify the initial and increment values?- Returns:
- True if such "pooled" sequences are supported; false otherwise.
- See Also:
getCreateSequenceStrings(String, int, int)
,getCreateSequenceString(String, int, int)
-
getSelectSequenceNextValString
String getSelectSequenceNextValString(String sequenceName) throws MappingException
Generate the select expression fragment that will retrieve the next value of a sequence as part of another (typically DML) statement.This differs from
getSequenceNextValString(String)
in that it must return an expression usable within another statement.- Parameters:
sequenceName
- the name of the sequence- Returns:
- The "next value" fragment.
- Throws:
MappingException
- If sequences are not supported.
-
getSelectSequencePreviousValString
default String getSelectSequencePreviousValString(String sequenceName) throws MappingException
Generate the select expression fragment that will retrieve the previous value of a sequence as part of another (typically DML) statement.This differs from
getSequencePreviousValString(String)
in that it must return an expression usable within another statement.- Parameters:
sequenceName
- the name of the sequence- Returns:
- The "previous value" fragment.
- Throws:
MappingException
- If sequences are not supported.
-
getSequenceNextValString
default String getSequenceNextValString(String sequenceName) throws MappingException
Generate the appropriate select statement to to retrieve the next value of a sequence.This should be a stand alone select statement.
- Parameters:
sequenceName
- the name of the sequence- Returns:
- String The select "next value" statement.
- Throws:
MappingException
- If sequences are not supported.
-
getSequencePreviousValString
default String getSequencePreviousValString(String sequenceName) throws MappingException
Generate the appropriate select statement to to retrieve the previous value of a sequence.This should be a stand alone select statement.
- Parameters:
sequenceName
- the name of the sequence- Returns:
- String The select "previous value" statement.
- Throws:
MappingException
- If sequences are not supported.
-
getFromDual
default String getFromDual()
-
getSequenceNextValString
default String getSequenceNextValString(String sequenceName, int increment) throws MappingException
Generate the appropriate select statement to to retrieve the next value of a sequence.This should be a stand alone select statement.
- Parameters:
sequenceName
- the name of the sequenceincrement
- the increment, in case it needs to be passed explicitly- Returns:
- String The select "next value" statement.
- Throws:
MappingException
- If sequences are not supported.
-
getCreateSequenceStrings
default String[] getCreateSequenceStrings(String sequenceName, int initialValue, int incrementSize) throws MappingException
An optional multi-line form for databases whichsupportsPooledSequences()
.- Parameters:
sequenceName
- The name of the sequenceinitialValue
- The initial value to apply to 'create sequence' statementincrementSize
- The increment value to apply to 'create sequence' statement- Returns:
- The sequence creation commands
- Throws:
MappingException
- If sequences are not supported.
-
getCreateSequenceString
default String getCreateSequenceString(String sequenceName) throws MappingException
Typically dialects which support sequences can create a sequence with a single command. This method is a convenience making it easier to implementgetCreateSequenceStrings(String,int,int)
for these dialects.The default definition is to return
create sequence sequenceName
for the argumentsequenceName
. Dialects need to override this method if a sequence created in this manner does not start at 1, or if the syntax is nonstandard.Dialects which support sequences and can create a sequence in a single command need *only* override this method. Dialects which support sequences but require multiple commands to create a sequence should override
getCreateSequenceStrings(String,int,int)
instead.- Parameters:
sequenceName
- The name of the sequence- Returns:
- The sequence creation command
- Throws:
MappingException
- If sequences are not supported.
-
getCreateSequenceString
default String getCreateSequenceString(String sequenceName, int initialValue, int incrementSize) throws MappingException
Typically dialects which support sequences can create a sequence with a single command. This method is a convenience making it easier to implementgetCreateSequenceStrings(String,int,int)
for these dialects.Overloaded form of
The default definition is to suffixgetCreateSequenceString(String)
, additionally taking the initial value and increment size to be applied to the sequence definition.getCreateSequenceString(String)
with the string:start with initialValue increment by incrementSize
for the argumentsinitialValue
andincrementSize
. Dialects need to override this method if different key phrases are used to apply the allocation information.- Parameters:
sequenceName
- The name of the sequenceinitialValue
- The initial value to apply to 'create sequence' statementincrementSize
- The increment value to apply to 'create sequence' statement- Returns:
- The sequence creation command
- Throws:
MappingException
- If sequences are not supported.
-
getDropSequenceStrings
default String[] getDropSequenceStrings(String sequenceName) throws MappingException
The multiline script used to drop a sequence.- Parameters:
sequenceName
- The name of the sequence- Returns:
- The sequence drop commands
- Throws:
MappingException
- If sequences are not supported.
-
getDropSequenceString
default String getDropSequenceString(String sequenceName) throws MappingException
Typically dialects which support sequences can drop a sequence with a single command. This is convenience form ofgetDropSequenceStrings(java.lang.String)
to help facilitate that.Dialects which support sequences and can drop a sequence in a single command need *only* override this method. Dialects which support sequences but require multiple commands to drop a sequence should instead override
getDropSequenceStrings(java.lang.String)
.- Parameters:
sequenceName
- The name of the sequence- Returns:
- The sequence drop commands
- Throws:
MappingException
- If sequences are not supported.
-
sometimesNeedsStartingValue
default boolean sometimesNeedsStartingValue()
Do we need to explicitly specifyminvalue
ormaxvalue
when the initial value doesn't have the same sign as the increment?
-
startingValue
default String startingValue(int initialValue, int incrementSize)
-
-