Class SpannerSequenceSupport
- All Implemented Interfaces:
SequenceSupport
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetCreateSequenceString(String sequenceName) Typically, dialects which support sequences can create a sequence with a single command.getCreateSequenceString(String sequenceName, int initialValue, int incrementSize) Typically, dialects which support sequences can create a sequence with a single command.protected StringgetCreateSequenceString(String sequenceName, int initialValue, String additionalOptions) String[]getCreateSequenceStrings(String sequenceName, int initialValue, int incrementSize, String options) An optional multi-line form for databases whichSequenceSupport.supportsPooledSequences().getDropSequenceString(String sequenceName) Typically, dialects which support sequences can drop a sequence with a single command.getRestartSequenceString(String sequenceName, long startWith) A DDL statement to restart a sequence with a given value.getSelectSequenceNextValString(String sequenceName) Generate the select expression fragment that will retrieve the next value of a sequence as part of another (typically DML) statement.getSequenceNextValString(String sequenceName) Generate the appropriate select statement to to retrieve the next value of a sequence.booleanDoes this dialect support "pooled" sequences.
-
Constructor Details
-
SpannerSequenceSupport
-
-
Method Details
-
getCreateSequenceString
Description copied from interface:SequenceSupportTypically, dialects which support sequences can create a sequence with a single command. This method is a convenience making it easier to implementSequenceSupport.getCreateSequenceStrings(String,int,int)for these dialects.The default definition is to return
create sequence sequenceNamefor 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
SequenceSupport.getCreateSequenceStrings(String,int,int)instead.- Specified by:
getCreateSequenceStringin interfaceSequenceSupport- Parameters:
sequenceName- The name of the sequence- Returns:
- The sequence creation command
- Throws:
MappingException- If sequences are not supported.
-
getCreateSequenceString
public String getCreateSequenceString(String sequenceName, int initialValue, int incrementSize) throws MappingException Description copied from interface:SequenceSupportTypically, dialects which support sequences can create a sequence with a single command. This method is a convenience making it easier to implementSequenceSupport.getCreateSequenceStrings(String,int,int)for these dialects.Overloaded form of
The default definition is to suffixSequenceSupport.getCreateSequenceString(String), additionally taking the initial value and increment size to be applied to the sequence definition.SequenceSupport.getCreateSequenceString(String)with the string:start with initialValue increment by incrementSizefor the argumentsinitialValueandincrementSize. Dialects need to override this method if different key phrases are used to apply the allocation information.- Specified by:
getCreateSequenceStringin interfaceSequenceSupport- 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.
-
getCreateSequenceStrings
public String[] getCreateSequenceStrings(String sequenceName, int initialValue, int incrementSize, String options) throws MappingException Description copied from interface:SequenceSupportAn optional multi-line form for databases whichSequenceSupport.supportsPooledSequences().- Specified by:
getCreateSequenceStringsin interfaceSequenceSupport- Parameters:
sequenceName- The name of the sequenceinitialValue- The initial value to apply to 'create sequence' statementincrementSize- The increment value to apply to 'create sequence' statementoptions- A SQL fragment appended to the generated DDL.- Returns:
- The sequence creation commands
- Throws:
MappingException- If sequences are not supported.
-
getCreateSequenceString
-
getDropSequenceString
Description copied from interface:SequenceSupportTypically, dialects which support sequences can drop a sequence with a single command. This is a convenience form ofSequenceSupport.getDropSequenceStrings(String)which facilitates 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
SequenceSupport.getDropSequenceStrings(String).- Specified by:
getDropSequenceStringin interfaceSequenceSupport- Parameters:
sequenceName- The name of the sequence- Returns:
- The sequence drop commands
-
getRestartSequenceString
Description copied from interface:SequenceSupportA DDL statement to restart a sequence with a given value.- Specified by:
getRestartSequenceStringin interfaceSequenceSupport- Parameters:
sequenceName- The name of the sequencestartWith- The value to restart at- Returns:
- The
alter sequence ... restartcommand
-
getSequenceNextValString
Description copied from interface:SequenceSupportGenerate the appropriate select statement to to retrieve the next value of a sequence.This should be a stand alone select statement.
- Specified by:
getSequenceNextValStringin interfaceSequenceSupport- Parameters:
sequenceName- the name of the sequence- Returns:
- String The select "next value" statement.
-
getSelectSequenceNextValString
Description copied from interface:SequenceSupportGenerate the select expression fragment that will retrieve the next value of a sequence as part of another (typically DML) statement.This differs from
SequenceSupport.getSequenceNextValString(String)in that it must return an expression usable within another statement.- Specified by:
getSelectSequenceNextValStringin interfaceSequenceSupport- Parameters:
sequenceName- the name of the sequence- Returns:
- The "next value" fragment.
-
supportsPooledSequences
public boolean supportsPooledSequences()Description copied from interface:SequenceSupportDoes this dialect support "pooled" sequences. Not aware of a better name for this. Essentially can we specify the initial and increment values?- Specified by:
supportsPooledSequencesin interfaceSequenceSupport- Returns:
- True if such "pooled" sequences are supported; false otherwise.
- See Also:
-