Package org.hibernate.dialect
Class AbstractTransactSQLDialect
java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.dialect.AbstractTransactSQLDialect
- All Implemented Interfaces:
FunctionContributor
,TypeContributor
,ConversionContext
- Direct Known Subclasses:
SQLServerDialect
,SybaseDialect
An abstract base class for Sybase and MS SQL Server dialects.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.hibernate.dialect.Dialect
Dialect.SizeStrategy, Dialect.SizeStrategyImpl
-
Field Summary
Fields inherited from class org.hibernate.dialect.Dialect
CLOSED_QUOTE, LEGACY_LOB_MERGE_STRATEGY, LOG_BASE2OF10, NEW_LOCATOR_LOB_MERGE_STRATEGY, QUOTE, STANDARD_MULTI_KEY_LOAD_SIZING_STRATEGY, STREAM_XFER_LOB_MERGE_STRATEGY
-
Constructor Summary
ConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptionvoid
appendBinaryLiteral
(SqlAppender appender, byte[] bytes) Append a binary literal to the givenSqlAppender
.appendLockHint
(LockOptions lockOptions, String tableName) Some dialects support an alternative means toSELECT FOR UPDATE
, whereby a "lock hint" is appended to the table name in thefrom
clause.applyLocksToSql
(String sql, LockOptions aliasedLockOptions, Map<String, String[]> keyColumnNames) Modifies the given SQL, applying the appropriate updates for the specified lock modes and key columns.protected String
columnType
(int sqlTypeCode) boolean
For the underlying database, isREAD_COMMITTED
isolation implemented by forcing readers to wait for write locks to be released?boolean
For the underlying database, isREPEATABLE_READ
isolation implemented by forcing writers to wait for read locks to be released?The subcommand of thealter table
command used to add a column to a table, usuallyadd column
oradd
.The command used to retrieve the current timestamp from the database.int
The default value to use for the configuration property "hibernate.jdbc.batch_size".getFallbackSqmInsertStrategy
(EntityMappingType entityDescriptor, RuntimeModelCreationContext runtimeModelCreationContext) TheSqmMultiTableInsertStrategy
to use when not specified byQueryEngineOptions.getCustomSqmMultiTableInsertStrategy()
.getFallbackSqmMutationStrategy
(EntityMappingType entityDescriptor, RuntimeModelCreationContext runtimeModelCreationContext) TheSqmMultiTableMutationStrategy
to use when not specified byQueryEngineOptions.getCustomSqmMultiTableMutationStrategy()
.Get the string to append toSELECT
statements to acquire pessimistic UPGRADE locks for this dialect.Get the appropriateIdentityColumnSupport
for this dialect.Returns the default ordering of null.int
The JDBC type code to use for mapping properties of Java typeboolean
.Given a callable statement previously processed byDialect.registerResultSetOutParameter(java.sql.CallableStatement, int)
, extract theResultSet
from theOUT
parameter.Get the command used to select a GUID from the database.The kind of temporary tables that are supported on this database.The action to take after finishing use of a temporary table.The action to take before beginning use of a temporary table.The command to create a temporary table.The row lock strategy to use for write locks.void
initializeFunctionRegistry
(FunctionContributions functionContributions) Initialize the given registry with any dialect-specific functions.boolean
Is the command returned byDialect.getCurrentTimestampSelectString()
treated as callable?boolean
Do we need to qualify index names with the schema name?int
registerResultSetOutParameter
(CallableStatement statement, int col) Registers a parameter capable of returning aResultSet
by position, either anOUT
parameter, or aREF_CURSOR
parameter as defined in Java 8.static String
replaceLtrimRtrim
(TrimSpec specification, boolean isWhitespace) static String
replaceLtrimRtrim
(TrimSpec specification, char character) Deprecated, for removal: This API element is subject to removal in a future version.boolean
Does this dialect/database require casting of non-string arguments in theconcat()
function?resolveSqlTypeDescriptor
(String columnTypeName, int jdbcTypeCode, int precision, int scale, JdbcTypeRegistry jdbcTypeRegistry) Assigns an appropriateJdbcType
to a column of a JDBC result set based on the column type name, JDBC type code, precision, and scale.boolean
Does this dialect support some way to retrieve the current timestamp value from the database?boolean
Does the dialect support an exists statement in the select clause?boolean
Does is dialect supportpartition by
?boolean
Does this dialect supportcount(distinct a,b)
?trimPattern
(TrimSpec specification, boolean isWhitespace) Obtain a pattern for the SQL equivalent to atrim()
function call.Methods inherited from class org.hibernate.dialect.Dialect
addSqlHintOrComment, appendArrayLiteral, appendBooleanValueString, appendDatetimeFormat, appendDateTimeLiteral, appendDateTimeLiteral, appendDateTimeLiteral, appendIntervalLiteral, appendLiteral, appendUUIDLiteral, augmentPhysicalTableTypes, augmentRecognizedTableTypes, buildIdentifierHelper, buildSQLExceptionConversionDelegate, canBatchTruncate, canCreateCatalog, canCreateSchema, canDisableConstraints, castPattern, castType, checkVersion, closeQuote, contribute, contributeFunctions, contributeTypes, createOptionalTableUpdateOperation, currentDate, currentLocalTime, currentLocalTimestamp, currentTime, currentTimestamp, currentTimestampWithTimeZone, defaultScrollMode, doesRoundTemporalOnOverflow, dropConstraints, equivalentTypes, escapeComment, extractPattern, forceLobAsLastValue, generatedAs, getAddColumnSuffixString, getAddForeignKeyConstraintString, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getAggregateSupport, getAlterColumnTypeString, getAlterTableString, getArrayTypeName, getAuxiliaryDatabaseObjectExporter, getBatchLoadSizingStrategy, getBeforeDropStatement, getCallableStatementSupport, getCascadeConstraintsString, getCaseInsensitiveLike, getCheckCondition, getCheckCondition, getCheckCondition, getCheckCondition, getCheckCondition, getColumnAliasExtractor, getColumnComment, getCreateCatalogCommand, getCreateEnumTypeCommand, getCreateEnumTypeCommand, getCreateIndexString, getCreateIndexTail, getCreateMultisetTableString, getCreateSchemaCommand, getCreateTableString, getCreateTemporaryTableColumnAnnotation, getCreateUserDefinedTypeExtensionsString, getCreateUserDefinedTypeKindString, getCrossReferenceParentTableFilter, getCurrentSchemaCommand, getDefaultDecimalPrecision, getDefaultIntervalSecondScale, getDefaultLobLength, getDefaultNonContextualLobCreation, getDefaultProperties, getDefaultTimestampPrecision, getDefaultUseGetGeneratedKeys, getDisableConstraintsStatement, getDisableConstraintStatement, getDmlTargetColumnQualifierSupport, getDoublePrecision, getDropCatalogCommand, getDropEnumTypeCommand, getDropEnumTypeCommand, getDropForeignKeyString, getDropSchemaCommand, getDropTableString, getDropUniqueKeyString, getEnableConstraintsStatement, getEnableConstraintStatement, getEnumTypeDeclaration, getEnumTypeDeclaration, getFallbackSchemaManagementTool, getFloatPrecision, getForeignKeyExporter, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateSkipLockedString, getForUpdateSkipLockedString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFractionalSecondPrecisionInNanos, getFunctionalDependencyAnalysisSupport, getGroupBySelectItemReferenceStrategy, getHqlTranslator, getIndexExporter, getInExpressionCountLimit, getKeywords, getLimitHandler, getLobMergeStrategy, getLockingStrategy, getLockRowIdentifier, getLowercaseFunction, getMaxAliasLength, getMaxIdentifierLength, getMaxNVarcharCapacity, getMaxNVarcharLength, getMaxVarbinaryCapacity, getMaxVarbinaryLength, getMaxVarcharCapacity, getMaxVarcharLength, getMinimumSupportedVersion, getMultiKeyLoadSizingStrategy, getNameQualifierSupport, getNationalizationSupport, getNativeIdentifierGeneratorStrategy, getNativeParameterMarkerStrategy, getNoColumnsInsertString, getNullColumnString, getNullColumnString, getParameterCountLimit, getPreferredSqlTypeCodeForArray, getQueryHintString, getQueryHintString, getQuerySequencesString, getReadLockString, getReadLockString, getReadRowLockStrategy, getResultSet, getResultSet, getRowIdColumnString, getSchemaNameResolver, getSelectClauseNullString, getSequenceExporter, getSequenceInformationExtractor, getSequenceSupport, getSizeStrategy, getSqlAstTranslatorFactory, getSqmTranslatorFactory, getTableCleaner, getTableComment, getTableExporter, getTableMigrator, getTableTypeString, getTemporaryTableCreateOptions, getTemporaryTableDdlTransactionHandling, getTemporaryTableDropCommand, getTemporaryTableExporter, getTemporaryTableTruncateCommand, getTimeoutInSeconds, getTimeZoneSupport, getTruncateTableStatement, getTruncateTableStatements, getUniqueDelegate, getUniqueKeyExporter, getUserDefinedTypeComment, getUserDefinedTypeExporter, getVersion, getViolatedConstraintNameExtractor, getWriteLockString, getWriteLockString, hasAlterTable, hasDataTypeBeforeGeneratedAs, hasSelfReferentialForeignKeyBug, initDefaultProperties, inlineLiteral, isAnsiNullOn, isEmptyStringTreatedAsNull, isJdbcLogWarningsEnabledByDefault, isLob, isLockTimeoutParameterized, openQuote, ordinal, prependComment, quote, quoteCollation, registerColumnTypes, registerDefaultKeywords, registerKeyword, registerKeywords, registerResultSetOutParameter, requiresFloatCastingOfIntegerDivision, requiresParensForTupleCounts, requiresParensForTupleDistinctCounts, resolveSqlTypeCode, resolveSqlTypeCode, resolveSqlTypeLength, rowId, rowIdSqlType, supportsAlterColumnType, supportsBatchUpdates, supportsBindAsCallableArgument, supportsBitType, supportsCascadeDelete, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsConflictClauseForInsertCTE, supportsDistinctFromPredicate, supportsExpectedLobUsagePattern, supportsFetchClause, supportsFractionalTimestampArithmetic, supportsFromClauseInUpdate, supportsIfExistsAfterAlterTable, supportsIfExistsAfterConstraintName, supportsIfExistsAfterTableName, supportsIfExistsAfterTypeName, supportsIfExistsBeforeConstraintName, supportsIfExistsBeforeTableName, supportsIfExistsBeforeTypeName, supportsInsertReturning, supportsInsertReturningGeneratedKeys, supportsInsertReturningRowId, supportsIsTrue, supportsJdbcConnectionLobCreation, supportsLateral, supportsLobValueChangePropagation, supportsLockTimeouts, supportsMaterializedLobAccess, supportsNamedParameters, supportsNationalizedMethods, supportsNoColumnsInsert, supportsNonQueryWithCTE, supportsNoWait, supportsNullPrecedence, supportsOffsetInSubquery, supportsOrderByInSubquery, supportsOrdinalSelectItemReference, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsPredicateAsExpression, supportsRecursiveCTE, supportsRefCursors, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsSkipLocked, supportsStandardArrays, supportsStandardCurrentTimestampFunction, supportsSubqueryInSelect, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTemporalLiteralOffset, supportsTemporaryTablePrimaryKey, supportsTemporaryTables, supportsTruncateWithCast, supportsTupleCounts, supportsUnboundedLobLocatorMaterialization, supportsUnionAll, supportsUnionInSubquery, supportsUpdateReturning, supportsValuesList, supportsValuesListForInsert, supportsWait, supportsWindowFunctions, timestampaddPattern, timestampdiffPattern, toBooleanValueString, toQuotedIdentifier, toString, transformSelectString, translateDurationField, translateExtractField, trimPattern, unquoteGetGeneratedKeys, useArrayForMultiValuedParameters, useConnectionToCreateLob, useCrossReferenceForeignKeys, useFollowOnLocking, useInputStreamToInsertBlob, useMaterializedLobWhenCapacityExceeded
-
Constructor Details
-
AbstractTransactSQLDialect
-
AbstractTransactSQLDialect
-
-
Method Details
-
columnType
Description copied from class:Dialect
The database column type name for a given JDBC type code defined inTypes
orSqlTypes
. This default implementation returns the ANSI-standard type name.This method may be overridden by concrete
Dialect
s as an alternative toDialect.registerColumnTypes(TypeContributions, ServiceRegistry)
for simple registrations.Note that:
- Implementations of this method are expected to define a
sensible mapping for
Types.NCLOB
Types.NCHAR
, andTypes.NVARCHAR
. On some database, these types are simply remapped toCLOB
,CHAR
, andVARCHAR
. - Mappings for
Types.TIMESTAMP
andTypes.TIMESTAMP_WITH_TIMEZONE
should support explicit specification of precision if possible. - As specified by
DdlTypeRegistry.getDescriptor(int)
, this method never receivesTypes.LONGVARCHAR
,Types.LONGNVARCHAR
, norTypes.LONGVARBINARY
, which are considered synonyms for their non-LONG
counterparts. - On the other hand, the types
SqlTypes.LONG32VARCHAR
,SqlTypes.LONG32NVARCHAR
, andSqlTypes.LONG32VARBINARY
are not synonyms, and implementations of this method must define sensible mappings, for example to database-nativeTEXT
orCLOB
types.
- Overrides:
columnType
in classDialect
- Parameters:
sqlTypeCode
- a SQLtype code
- Returns:
- a column type name, with
$l
,$p
,$s
placeholders for length, precision, scale - See Also:
- Implementations of this method are expected to define a
sensible mapping for
-
getDefaultStatementBatchSize
public int getDefaultStatementBatchSize()Description copied from class:Dialect
The default value to use for the configuration property "hibernate.jdbc.batch_size".- Overrides:
getDefaultStatementBatchSize
in classDialect
-
resolveSqlTypeDescriptor
public JdbcType resolveSqlTypeDescriptor(String columnTypeName, int jdbcTypeCode, int precision, int scale, JdbcTypeRegistry jdbcTypeRegistry) Description copied from class:Dialect
Assigns an appropriateJdbcType
to a column of a JDBC result set based on the column type name, JDBC type code, precision, and scale.- Overrides:
resolveSqlTypeDescriptor
in classDialect
- Parameters:
columnTypeName
- the column type namejdbcTypeCode
- thetype code
precision
- the precision or 0scale
- the scale or 0- Returns:
- an appropriate instance of
JdbcType
-
getPreferredSqlTypeCodeForBoolean
public int getPreferredSqlTypeCodeForBoolean()Description copied from class:Dialect
The JDBC type code to use for mapping properties of Java typeboolean
.Usually
Types.BOOLEAN
orTypes.BIT
.- Overrides:
getPreferredSqlTypeCodeForBoolean
in classDialect
- Returns:
- one of the type codes defined by
Types
.
-
initializeFunctionRegistry
Description copied from class:Dialect
Initialize the given registry with any dialect-specific functions.Support for certain SQL functions is required, and if the database does not support a required function, then the dialect must define a way to emulate it.
These required functions include the functions defined by the JPA query language specification:
-
avg(arg)
- aggregate function -
count([distinct ]arg)
- aggregate function -
max(arg)
- aggregate function -
min(arg)
- aggregate function -
sum(arg)
- aggregate function
-
coalesce(arg0, arg1, ...)
-
nullif(arg0, arg1)
-
lower(arg)
-
upper(arg)
-
length(arg)
-
concat(arg0, arg1, ...)
-
locate(pattern, string[, start])
-
substring(string, start[, length])
-
trim([[spec ][character ]from] string)
-
abs(arg)
-
mod(arg0, arg1)
-
sqrt(arg)
-
current date
-
current time
-
current timestamp
-
any(arg)
- aggregate function -
every(arg)
- aggregate function
-
var_samp(arg)
- aggregate function -
var_pop(arg)
- aggregate function -
stddev_samp(arg)
- aggregate function -
stddev_pop(arg)
- aggregate function
-
cast(arg as Type)
-
extract(field from arg)
-
ln(arg)
-
exp(arg)
-
power(arg0, arg1)
-
floor(arg)
-
ceiling(arg)
-
position(pattern in string)
-
substring(string from start[ for length])
-
overlay(string placing replacement from start[ for length])
java.time
types:-
local date
-
local time
-
local datetime
-
offset datetime
-
instant
-
left(string, length)
-
right(string, length)
-
replace(string, pattern, replacement)
-
pad(string with length spec[ character])
-
repeat(string, times)
-
pi
-
log10(arg)
-
log(base, arg)
-
sign(arg)
-
sin(arg)
-
cos(arg)
-
tan(arg)
-
asin(arg)
-
acos(arg)
-
atan(arg)
-
atan2(arg0, arg1)
-
round(arg0[, arg1])
-
truncate(arg0[, arg1])
-
sinh(arg)
-
tanh(arg)
-
cosh(arg)
-
least(arg0, arg1, ...)
-
greatest(arg0, arg1, ...)
-
degrees(arg)
-
radians(arg)
-
bitand(arg1, arg1)
-
bitor(arg1, arg1)
-
bitxor(arg1, arg1)
-
format(datetime as pattern)
-
collate(string as collation)
-
str(arg)
- synonym ofcast(a as String)
-
ifnull(arg0, arg1)
- synonym ofcoalesce(a, b)
extract()
, and desugared by the parser:-
second(arg)
- synonym ofextract(second from a)
-
minute(arg)
- synonym ofextract(minute from a)
-
hour(arg)
- synonym ofextract(hour from a)
-
day(arg)
- synonym ofextract(day from a)
-
month(arg)
- synonym ofextract(month from a)
-
year(arg)
- synonym ofextract(year from a)
second()
function returns a floating point value, contrary to the integer type returned by the native function with this name on many databases. Thus, we don't just naively map these HQL functions to the native SQL functions with the same names.- Overrides:
initializeFunctionRegistry
in classDialect
-
-
trimPattern
Description copied from class:Dialect
Obtain a pattern for the SQL equivalent to atrim()
function call. The resulting pattern must contain a ?1 placeholder for the argument of typeString
and a ?2 placeholder for the trim character ifisWhitespace
was false.- Overrides:
trimPattern
in classDialect
- Parameters:
specification
- leading, trailing or bothisWhitespace
-true
if the trim character is a whitespace and can be omitted,false
if it must be explicit and a ?2 placeholder should be included in the pattern
-
replaceLtrimRtrim
@Deprecated(forRemoval=true) public static String replaceLtrimRtrim(TrimSpec specification, char character) Deprecated, for removal: This API element is subject to removal in a future version.UsereplaceLtrimRtrim(TrimSpec, boolean)
instead. -
replaceLtrimRtrim
-
getAddColumnString
Description copied from class:Dialect
The subcommand of thealter table
command used to add a column to a table, usuallyadd column
oradd
.- Overrides:
getAddColumnString
in classDialect
- Returns:
- The
add column
fragment.
-
qualifyIndexName
public boolean qualifyIndexName()Description copied from class:Dialect
Do we need to qualify index names with the schema name?- Overrides:
qualifyIndexName
in classDialect
- Returns:
true
if we do
-
getForUpdateString
Description copied from class:Dialect
Get the string to append toSELECT
statements to acquire pessimistic UPGRADE locks for this dialect.- Overrides:
getForUpdateString
in classDialect
- Returns:
- The appropriate
FOR UPDATE
clause string.
-
getWriteRowLockStrategy
Description copied from class:Dialect
The row lock strategy to use for write locks.- Overrides:
getWriteRowLockStrategy
in classDialect
-
appendLockHint
Description copied from class:Dialect
Some dialects support an alternative means toSELECT FOR UPDATE
, whereby a "lock hint" is appended to the table name in thefrom
clause.- Overrides:
appendLockHint
in classDialect
- Parameters:
lockOptions
- The lock options to applytableName
- The name of the table to which to apply the lock hint.- Returns:
- The table with any required lock hints.
-
applyLocksToSql
public String applyLocksToSql(String sql, LockOptions aliasedLockOptions, Map<String, String[]> keyColumnNames) Description copied from class:Dialect
Modifies the given SQL, applying the appropriate updates for the specified lock modes and key columns.This allows emulation of
SELECT FOR UPDATE
for dialects which do not support the standard syntax.- Overrides:
applyLocksToSql
in classDialect
- Parameters:
sql
- the SQL string to modifyaliasedLockOptions
- lock options indexed by aliased table names.keyColumnNames
- a map of key columns indexed by aliased table names.- Returns:
- the modified SQL string.
-
registerResultSetOutParameter
Description copied from class:Dialect
Registers a parameter capable of returning aResultSet
by position, either anOUT
parameter, or aREF_CURSOR
parameter as defined in Java 8.- Overrides:
registerResultSetOutParameter
in classDialect
- Parameters:
statement
- The callable statement.col
- The bind position at which to register the output param.- Returns:
- The number of (contiguous) bind positions used.
- Throws:
SQLException
- Indicates problems registering the param.
-
getResultSet
Description copied from class:Dialect
Given a callable statement previously processed byDialect.registerResultSetOutParameter(java.sql.CallableStatement, int)
, extract theResultSet
from theOUT
parameter.- Overrides:
getResultSet
in classDialect
- Parameters:
ps
- The callable statement.- Returns:
- The extracted result set.
- Throws:
SQLException
- Indicates problems extracting the result set.
-
supportsCurrentTimestampSelection
public boolean supportsCurrentTimestampSelection()Description copied from class:Dialect
Does this dialect support some way to retrieve the current timestamp value from the database?- Overrides:
supportsCurrentTimestampSelection
in classDialect
- Returns:
- True if the current timestamp can be retrieved; false otherwise.
-
isCurrentTimestampSelectStringCallable
public boolean isCurrentTimestampSelectStringCallable()Description copied from class:Dialect
Is the command returned byDialect.getCurrentTimestampSelectString()
treated as callable?Typically, this indicates the use of the JDBC escape syntax.
- Overrides:
isCurrentTimestampSelectStringCallable
in classDialect
- Returns:
- if the
Dialect.getCurrentTimestampSelectString()
is treated as callable; false otherwise.
-
getCurrentTimestampSelectString
Description copied from class:Dialect
The command used to retrieve the current timestamp from the database.- Overrides:
getCurrentTimestampSelectString
in classDialect
-
getNullOrdering
Description copied from class:Dialect
Returns the default ordering of null.- Overrides:
getNullOrdering
in classDialect
-
requiresCastForConcatenatingNonStrings
public boolean requiresCastForConcatenatingNonStrings()Description copied from class:Dialect
Does this dialect/database require casting of non-string arguments in theconcat()
function?- Overrides:
requiresCastForConcatenatingNonStrings
in classDialect
- Returns:
true
if casting usingcast()
is required
-
getFallbackSqmMutationStrategy
public SqmMultiTableMutationStrategy getFallbackSqmMutationStrategy(EntityMappingType entityDescriptor, RuntimeModelCreationContext runtimeModelCreationContext) Description copied from class:Dialect
TheSqmMultiTableMutationStrategy
to use when not specified byQueryEngineOptions.getCustomSqmMultiTableMutationStrategy()
. -
getFallbackSqmInsertStrategy
public SqmMultiTableInsertStrategy getFallbackSqmInsertStrategy(EntityMappingType entityDescriptor, RuntimeModelCreationContext runtimeModelCreationContext) Description copied from class:Dialect
TheSqmMultiTableInsertStrategy
to use when not specified byQueryEngineOptions.getCustomSqmMultiTableInsertStrategy()
. -
getSupportedTemporaryTableKind
Description copied from class:Dialect
The kind of temporary tables that are supported on this database.- Overrides:
getSupportedTemporaryTableKind
in classDialect
-
getTemporaryTableCreateCommand
Description copied from class:Dialect
The command to create a temporary table.- Overrides:
getTemporaryTableCreateCommand
in classDialect
-
getTemporaryTableAfterUseAction
Description copied from class:Dialect
The action to take after finishing use of a temporary table.- Overrides:
getTemporaryTableAfterUseAction
in classDialect
-
getTemporaryTableBeforeUseAction
Description copied from class:Dialect
The action to take before beginning use of a temporary table.- Overrides:
getTemporaryTableBeforeUseAction
in classDialect
-
getSelectGUIDString
Description copied from class:Dialect
Get the command used to select a GUID from the database.Optional operation.
- Overrides:
getSelectGUIDString
in classDialect
- Returns:
- The appropriate command.
-
supportsExistsInSelect
public boolean supportsExistsInSelect()Description copied from class:Dialect
Does the dialect support an exists statement in the select clause?- Overrides:
supportsExistsInSelect
in classDialect
- Returns:
- True if exists checks are allowed in the select clause; false otherwise.
-
doesReadCommittedCauseWritersToBlockReaders
public boolean doesReadCommittedCauseWritersToBlockReaders()Description copied from class:Dialect
For the underlying database, isREAD_COMMITTED
isolation implemented by forcing readers to wait for write locks to be released?- Overrides:
doesReadCommittedCauseWritersToBlockReaders
in classDialect
- Returns:
- True if writers block readers to achieve
READ_COMMITTED
; false otherwise.
-
doesRepeatableReadCauseReadersToBlockWriters
public boolean doesRepeatableReadCauseReadersToBlockWriters()Description copied from class:Dialect
For the underlying database, isREPEATABLE_READ
isolation implemented by forcing writers to wait for read locks to be released?- Overrides:
doesRepeatableReadCauseReadersToBlockWriters
in classDialect
- Returns:
- True if readers block writers to achieve
REPEATABLE_READ
; false otherwise.
-
supportsTupleDistinctCounts
public boolean supportsTupleDistinctCounts()Description copied from class:Dialect
Does this dialect supportcount(distinct a,b)
?- Overrides:
supportsTupleDistinctCounts
in classDialect
- Returns:
- True if the database supports counting distinct tuples; false otherwise.
-
getIdentityColumnSupport
Description copied from class:Dialect
Get the appropriateIdentityColumnSupport
for this dialect.- Overrides:
getIdentityColumnSupport
in classDialect
- Returns:
- the IdentityColumnSupport
-
supportsPartitionBy
public boolean supportsPartitionBy()Description copied from class:Dialect
Does is dialect supportpartition by
?- Overrides:
supportsPartitionBy
in classDialect
-
appendBinaryLiteral
Description copied from class:Dialect
Append a binary literal to the givenSqlAppender
.- Overrides:
appendBinaryLiteral
in classDialect
-
replaceLtrimRtrim(TrimSpec, boolean)
instead.