org.hibernate.dialect

Class MckoiDialect


public class MckoiDialect
extends Dialect

An SQL dialect compatible with McKoi SQL
Author:
Doug Currie, Gabe Hicks

Field Summary

Fields inherited from class org.hibernate.dialect.Dialect

CLOSED_QUOTE, DEFAULT_BATCH_SIZE, NO_BATCH, QUOTE

Constructor Summary

MckoiDialect()

Method Summary

CaseFragment
createCaseFragment()
Create a CaseFragment strategy responsible for handling this dialect's variations in how CASE statements are handled.
String
getAddColumnString()
The syntax used to add a column to a table (optional).
String
getCreateSequenceString(String sequenceName)
Typically dialects which support sequences can create a sequence with a single command.
String
getDropSequenceString(String sequenceName)
Typically dialects which support sequences can drop a sequence with a single command.
String
getForUpdateString()
Get the string to append to SELECT statements to acquire locks for this dialect.
LockingStrategy
getLockingStrategy(Lockable lockable, LockMode lockMode)
Get a strategy instance which knows how to acquire a database-level lock of the specified mode for this dialect.
String
getSelectSequenceNextValString(String sequenceName)
Generate the select expression fragment that will retreive the next value of a sequence as part of another (typically DML) statement.
String
getSequenceNextValString(String sequenceName)
Generate the appropriate select statement to to retreive the next value of a sequence.
boolean
supportsSequences()
Does this dialect support sequences?

Methods inherited from class org.hibernate.dialect.Dialect

appendIdentitySelectToInsert, appendLockHint, applyLocksToSql, areStringComparisonsCaseInsensitive, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildSQLExceptionConverter, closeQuote, createCaseFragment, createOuterJoinFragment, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, dropConstraints, dropTemporaryTableAfterUse, forUpdateOfColumns, generateTemporaryTableName, getAddColumnString, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getCascadeConstraintsString, getCastTypeName, getColumnComment, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getCurrentTimestampSQLFunctionName, getCurrentTimestampSelectString, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceString, getDropSequenceStrings, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentityColumnString, getIdentityInsertString, getIdentitySelectString, getIdentitySelectString, getKeywords, getLimitString, getLimitString, getLockingStrategy, getLowercaseFunction, getMaxAliasLength, getNativeIdentifierGeneratorClass, getNoColumnsInsertString, getNullColumnString, getQuerySequencesString, getResultSet, getSelectClauseNullString, getSelectGUIDString, getSelectSequenceNextValString, getSequenceNextValString, getTableComment, getTableTypeString, getTypeName, getTypeName, getViolatedConstraintNameExtracter, hasAlterTable, hasDataTypeInIdentityColumn, hasSelfReferentialForeignKeyBug, isCurrentTimestampSelectStringCallable, openQuote, performTemporaryTableDDLInIsolation, qualifyIndexName, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, registerResultSetOutParameter, supportsBindAsCallableArgument, supportsCascadeDelete, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsCurrentTimestampSelection, supportsEmptyInList, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsIdentityColumns, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsInsertSelectIdentity, supportsLimit, supportsLimitOffset, supportsLobValueChangePropogation, supportsNotNullUnique, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsPooledSequences, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSequences, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTemporaryTables, supportsUnboundedLobLocatorMaterialization, supportsUnionAll, supportsUnique, supportsUniqueConstraintInCreateAlterTable, supportsVariableLimit, toBooleanValueString, toString, transformSelectString, useInputStreamToInsertBlob, useMaxForLimit

Constructor Details

MckoiDialect

public MckoiDialect()

Method Details

createCaseFragment

public CaseFragment createCaseFragment()
Create a CaseFragment strategy responsible for handling this dialect's variations in how CASE statements are handled.
Overrides:
createCaseFragment in interface Dialect
Returns:
This dialect's CaseFragment strategy.

getAddColumnString

public String getAddColumnString()
The syntax used to add a column to a table (optional).
Overrides:
getAddColumnString in interface Dialect
Returns:
The "add column" fragment.

getCreateSequenceString

public String getCreateSequenceString(String sequenceName)
Typically dialects which support sequences can create a sequence with a single command. This is convenience form of getCreateSequenceStrings to help facilitate that.

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 instead override getCreateSequenceStrings.

Overrides:
getCreateSequenceString in interface Dialect
Parameters:
sequenceName - The name of the sequence
Returns:
The sequence creation command

getDropSequenceString

public String getDropSequenceString(String sequenceName)
Typically dialects which support sequences can drop a sequence with a single command. This is convenience form of Dialect.getDropSequenceStrings(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 Dialect.getDropSequenceStrings(String).

Overrides:
getDropSequenceString in interface Dialect
Parameters:
sequenceName - The name of the sequence
Returns:
The sequence drop commands

getForUpdateString

public String getForUpdateString()
Get the string to append to SELECT statements to acquire locks for this dialect.
Overrides:
getForUpdateString in interface Dialect
Returns:
The appropriate FOR UPDATE clause string.

getLockingStrategy

public LockingStrategy getLockingStrategy(Lockable lockable,
                                          LockMode lockMode)
Get a strategy instance which knows how to acquire a database-level lock of the specified mode for this dialect.
Overrides:
getLockingStrategy in interface Dialect
Parameters:
lockable - The persister for the entity to be locked.
lockMode - The type of lock to be acquired.
Returns:
The appropriate locking strategy.
Since:
3.2

getSelectSequenceNextValString

public String getSelectSequenceNextValString(String sequenceName)
Overrides:
getSelectSequenceNextValString in interface Dialect
Parameters:
sequenceName - the name of the sequence
Returns:
The "nextval" fragment.

getSequenceNextValString

public String getSequenceNextValString(String sequenceName)
Generate the appropriate select statement to to retreive the next value of a sequence.

This should be a "stand alone" select statement.

Overrides:
getSequenceNextValString in interface Dialect
Parameters:
sequenceName - the name of the sequence
Returns:
String The "nextval" select string.

supportsSequences

public boolean supportsSequences()
Does this dialect support sequences?
Overrides:
supportsSequences in interface Dialect
Returns:
True if sequences supported; false otherwise.