public class Ingres9Dialect extends IngresDialect
A SQL dialect for Ingres 9.3 and later versions. <p/> Changes: <ul> <li>Support for the SQL functions current_time, current_timestamp and current_date added</li> <li>Type mapping of <code>Types.TIMESTAMP</code> changed from "timestamp with time zone" to "timestamp(9) with time zone"</li> <li>Improved handling of "SELECT…FOR UPDATE" statements</li> <li>Added support for pooled sequences</li> <li>Added support for SELECT queries with limit and offset</li> <li>Added getIdentitySelectString</li> <li>Modified concatination operator</li> </ul>
CLOSED_QUOTE, DEFAULT_BATCH_SIZE, LEGACY_LOB_MERGE_STRATEGY, NEW_LOCATOR_LOB_MERGE_STRATEGY, NO_BATCH, QUOTE, STANDARD_DEFAULT_BATCH_LOAD_SIZING_STRATEGY, STREAM_XFER_LOB_MERGE_STRATEGY
Constructor and Description |
---|
Ingres9Dialect()
Constructs a Ingres9Dialect
|
Modifier and Type | Method and Description |
---|---|
boolean |
doesReadCommittedCauseWritersToBlockReaders()
For the underlying database, is READ_COMMITTED isolation implemented by
forcing readers to wait for write locks to be released?
|
boolean |
doesRepeatableReadCauseReadersToBlockWriters()
For the underlying database, is REPEATABLE_READ isolation implemented by
forcing writers to wait for read locks to be released?
|
boolean |
forUpdateOfColumns()
Is <tt>FOR UPDATE OF</tt> syntax supported?
|
String |
getCurrentTimestampSelectString()
Retrieve the command used to retrieve the current timestamp from the
database.
|
String |
getCurrentTimestampSQLFunctionName()
The name of the database-specific SQL function for retrieving the
current timestamp.
|
LimitHandler |
getDefaultLimitHandler() |
IdentityColumnSupport |
getIdentityColumnSupport()
Get the appropriate
IdentityColumnSupport |
String |
getLimitString(String querySelect,
int offset,
int limit)
Given a limit and an offset, apply the limit clause to the query.
|
String |
getQuerySequencesString()
Get the select command used retrieve the names of all sequences.
|
boolean |
isCurrentTimestampSelectStringCallable()
Should the value returned by
Dialect.getCurrentTimestampSelectString()
be treated as callable. |
protected void |
registerDateTimeColumnTypes()
Register column types date, time, timestamp
|
protected void |
registerDateTimeFunctions()
Register functions current_time, current_timestamp, current_date
|
boolean |
supportsCurrentTimestampSelection()
Does this dialect support a way to retrieve the database’s current
timestamp value?
|
boolean |
supportsLimitOffset()
Does this dialect’s LIMIT support (if any) additionally
support specifying an offset?
|
boolean |
supportsOuterJoinForUpdate()
Does this dialect support <tt>FOR UPDATE</tt> in conjunction with
outer joined rows?
|
boolean |
supportsPooledSequences()
Does this dialect support "pooled" sequences.
|
boolean |
supportsUnionAll()
Does this dialect support UNION ALL, which is generally a faster
variant of UNION?
|
boolean |
supportsVariableLimit()
Does this dialect support bind variables (i.e., prepared statement
parameters) for its limit/offset?
|
boolean |
useMaxForLimit()
Does the <tt>LIMIT</tt> clause take a "maximum" row number instead
of a total number of returned rows?
<p/>
This is easiest understood via an example.
|
dropConstraints, getAddColumnString, getCreateSequenceString, getDefaultMultiTableBulkIdStrategy, getDropSequenceString, getLimitHandler, getLowercaseFunction, getNullColumnString, getSelectGUIDString, getSelectSequenceNextValString, getSequenceNextValString, supportsEmptyInList, supportsExpectedLobUsagePattern, supportsLimit, supportsSequences, supportsSubselectAsInPredicateLHS, supportsTupleDistinctCounts
addSqlHintOrComment, appendLockHint, appendLockHint, applyLocksToSql, areStringComparisonsCaseInsensitive, augmentRecognizedTableTypes, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildIdentifierHelper, buildSQLExceptionConversionDelegate, buildSQLExceptionConverter, canCreateCatalog, canCreateSchema, cast, cast, cast, closeQuote, contributeTypes, convertToFirstRowValue, createCaseFragment, createOuterJoinFragment, defaultScrollMode, escapeLiteral, forceLimitUsage, forceLobAsLastValue, getAddColumnSuffixString, getAddForeignKeyConstraintString, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getAddUniqueConstraintString, getAlterTableString, getAuxiliaryDatabaseObjectExporter, getCallableStatementSupport, getCascadeConstraintsString, getCaseInsensitiveLike, getCastTypeName, getColumnAliasExtractor, getColumnComment, getCreateCatalogCommand, getCreateMultisetTableString, getCreateSchemaCommand, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCrossJoinSeparator, getCurrentSchemaCommand, getDefaultBatchLoadSizingStrategy, getDefaultProperties, getDialect, getDialect, getDropCatalogCommand, getDropForeignKeyString, getDropSchemaCommand, getDropSequenceStrings, getDropTableString, getForeignKeyExporter, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateSkipLockedString, getForUpdateSkipLockedString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIndexExporter, getInExpressionCountLimit, getKeywords, getLimitString, getLobMergeStrategy, getLockingStrategy, getMaxAliasLength, getNameQualifierSupport, getNativeIdentifierGeneratorClass, getNativeIdentifierGeneratorStrategy, getNoColumnsInsertString, getNotExpression, getQueryHintString, getQueryHintString, getReadLockString, getReadLockString, getResultSet, getResultSet, getResultSet, getSchemaNameResolver, getSelectClauseNullString, getSequenceExporter, getSequenceInformationExtractor, getSqlTypeDescriptorOverride, getTableComment, getTableExporter, getTableTypeString, getTypeName, getTypeName, getUniqueDelegate, getUniqueKeyExporter, getViolatedConstraintNameExtracter, getWriteLockString, getWriteLockString, hasAlterTable, hasSelfReferentialForeignKeyBug, inlineLiteral, isJdbcLogWarningsEnabledByDefault, isLegacyLimitHandlerBehaviorEnabled, isLockTimeoutParameterized, isTypeNameRegistered, openQuote, prependComment, qualifyIndexName, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, registerResultSetOutParameter, registerResultSetOutParameter, remapSqlTypeDescriptor, renderOrderByElement, replaceResultVariableInOrderByClauseWithPosition, requiresCastingOfParametersInSelectClause, requiresParensForTupleDistinctCounts, supportsBindAsCallableArgument, supportsCascadeDelete, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsExistsInSelect, supportsIfExistsAfterAlterTable, supportsIfExistsAfterConstraintName, supportsIfExistsAfterTableName, supportsIfExistsBeforeConstraintName, supportsIfExistsBeforeTableName, supportsLobValueChangePropogation, supportsLockTimeouts, supportsNamedParameters, supportsNationalizedTypes, supportsNonQueryWithCTE, supportsNotNullUnique, supportsParametersInInsertSelect, supportsPartitionBy, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSkipLocked, supportsSubqueryOnMutatingTable, supportsTableCheck, supportsTupleCounts, supportsTuplesInSubqueries, supportsUnboundedLobLocatorMaterialization, supportsUnique, supportsUniqueConstraintInCreateAlterTable, supportsValuesList, toBooleanValueString, toString, transformSelectString, useFollowOnLocking, useFollowOnLocking, useInputStreamToInsertBlob
protected void registerDateTimeFunctions()
Register functions current_time, current_timestamp, current_date
protected void registerDateTimeColumnTypes()
Register column types date, time, timestamp
public boolean supportsOuterJoinForUpdate()
Dialect
Does this dialect support <tt>FOR UPDATE</tt> in conjunction with outer joined rows?
supportsOuterJoinForUpdate
in class Dialect
public boolean forUpdateOfColumns()
Dialect
Is <tt>FOR UPDATE OF</tt> syntax supported?
forUpdateOfColumns
in class Dialect
public String getQuerySequencesString()
Dialect
Get the select command used retrieve the names of all sequences.
getQuerySequencesString
in class IngresDialect
SchemaUpdate
public boolean supportsPooledSequences()
Dialect
Does this dialect support "pooled" sequences. Not aware of a better name for this. Essentially can we specify the initial and increment values?
supportsPooledSequences
in class Dialect
Dialect.getCreateSequenceStrings(String, int, int)
,
Dialect.getCreateSequenceString(String, int, int)
public boolean isCurrentTimestampSelectStringCallable()
Dialect
Should the value returned by Dialect.getCurrentTimestampSelectString()
be treated as callable. Typically this indicates that JDBC escape
syntax is being used…
isCurrentTimestampSelectStringCallable
in class Dialect
Dialect.getCurrentTimestampSelectString()
return
is callable; false otherwise.public boolean supportsCurrentTimestampSelection()
Dialect
Does this dialect support a way to retrieve the database’s current timestamp value?
supportsCurrentTimestampSelection
in class Dialect
public String getCurrentTimestampSelectString()
Dialect
Retrieve the command used to retrieve the current timestamp from the database.
getCurrentTimestampSelectString
in class Dialect
public String getCurrentTimestampSQLFunctionName()
Dialect
The name of the database-specific SQL function for retrieving the current timestamp.
getCurrentTimestampSQLFunctionName
in class IngresDialect
public boolean supportsUnionAll()
Dialect
Does this dialect support UNION ALL, which is generally a faster variant of UNION?
supportsUnionAll
in class Dialect
public boolean doesReadCommittedCauseWritersToBlockReaders()
Dialect
For the underlying database, is READ_COMMITTED isolation implemented by forcing readers to wait for write locks to be released?
doesReadCommittedCauseWritersToBlockReaders
in class Dialect
public boolean doesRepeatableReadCauseReadersToBlockWriters()
Dialect
For the underlying database, is REPEATABLE_READ isolation implemented by forcing writers to wait for read locks to be released?
doesRepeatableReadCauseReadersToBlockWriters
in class Dialect
public LimitHandler getDefaultLimitHandler()
getDefaultLimitHandler
in class IngresDialect
public boolean supportsLimitOffset()
Dialect
Does this dialect’s LIMIT support (if any) additionally support specifying an offset?
supportsLimitOffset
in class IngresDialect
public boolean supportsVariableLimit()
Dialect
Does this dialect support bind variables (i.e., prepared statement parameters) for its limit/offset?
supportsVariableLimit
in class IngresDialect
public boolean useMaxForLimit()
Dialect
Does the <tt>LIMIT</tt> clause take a "maximum" row number instead of a total number of returned rows? <p/> This is easiest understood via an example. Consider you have a table with 20 rows, but you only want to retrieve rows number 11 through 20. Generally, a limit with offset would say that the offset = 11 and the limit = 10 (we only want 10 rows at a time); this is specifying the total number of returned rows. Some dialects require that we instead specify offset = 11 and limit = 20, where 20 is the "last" row we want relative to offset (i.e. total number of rows = 20 - 11 = 9) <p/> So essentially, is limit relative from offset? Or is limit absolute?
useMaxForLimit
in class IngresDialect
public String getLimitString(String querySelect, int offset, int limit)
Dialect
Given a limit and an offset, apply the limit clause to the query.
getLimitString
in class IngresDialect
querySelect
- The query to which to apply the limit.offset
- The offset of the limitlimit
- The limit of the limit ;)public IdentityColumnSupport getIdentityColumnSupport()
Dialect
Get the appropriate IdentityColumnSupport
getIdentityColumnSupport
in class Dialect
Copyright © 2001-2018 Red Hat, Inc. All Rights Reserved.