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, supportsTupleDistinctCountsaddSqlHintOrComment, 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, supportsNoWait, supportsParametersInInsertSelect, supportsPartitionBy, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSkipLocked, supportsSubqueryOnMutatingTable, supportsTableCheck, supportsTupleCounts, supportsTuplesInSubqueries, supportsUnboundedLobLocatorMaterialization, supportsUnique, supportsUniqueConstraintInCreateAlterTable, supportsValuesList, toBooleanValueString, toString, transformSelectString, useFollowOnLocking, useFollowOnLocking, useInputStreamToInsertBlobprotected void registerDateTimeFunctions()
Register functions current_time, current_timestamp, current_date
protected void registerDateTimeColumnTypes()
Register column types date, time, timestamp
public boolean supportsOuterJoinForUpdate()
DialectDoes this dialect support <tt>FOR UPDATE</tt> in conjunction with outer joined rows?
supportsOuterJoinForUpdate in class Dialectpublic boolean forUpdateOfColumns()
DialectIs <tt>FOR UPDATE OF</tt> syntax supported?
forUpdateOfColumns in class Dialectpublic String getQuerySequencesString()
DialectGet the select command used retrieve the names of all sequences.
getQuerySequencesString in class IngresDialectSchemaUpdatepublic boolean supportsPooledSequences()
DialectDoes 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 DialectDialect.getCreateSequenceStrings(String, int, int),
Dialect.getCreateSequenceString(String, int, int)public boolean isCurrentTimestampSelectStringCallable()
DialectShould the value returned by Dialect.getCurrentTimestampSelectString()
be treated as callable. Typically this indicates that JDBC escape
syntax is being used…
isCurrentTimestampSelectStringCallable in class DialectDialect.getCurrentTimestampSelectString() return
is callable; false otherwise.public boolean supportsCurrentTimestampSelection()
DialectDoes this dialect support a way to retrieve the database’s current timestamp value?
supportsCurrentTimestampSelection in class Dialectpublic String getCurrentTimestampSelectString()
DialectRetrieve the command used to retrieve the current timestamp from the database.
getCurrentTimestampSelectString in class Dialectpublic String getCurrentTimestampSQLFunctionName()
DialectThe name of the database-specific SQL function for retrieving the current timestamp.
getCurrentTimestampSQLFunctionName in class IngresDialectpublic boolean supportsUnionAll()
DialectDoes this dialect support UNION ALL, which is generally a faster variant of UNION?
supportsUnionAll in class Dialectpublic boolean doesReadCommittedCauseWritersToBlockReaders()
DialectFor the underlying database, is READ_COMMITTED isolation implemented by forcing readers to wait for write locks to be released?
doesReadCommittedCauseWritersToBlockReaders in class Dialectpublic boolean doesRepeatableReadCauseReadersToBlockWriters()
DialectFor the underlying database, is REPEATABLE_READ isolation implemented by forcing writers to wait for read locks to be released?
doesRepeatableReadCauseReadersToBlockWriters in class Dialectpublic LimitHandler getDefaultLimitHandler()
getDefaultLimitHandler in class IngresDialectpublic boolean supportsLimitOffset()
DialectDoes this dialect’s LIMIT support (if any) additionally support specifying an offset?
supportsLimitOffset in class IngresDialectpublic boolean supportsVariableLimit()
DialectDoes this dialect support bind variables (i.e., prepared statement parameters) for its limit/offset?
supportsVariableLimit in class IngresDialectpublic boolean useMaxForLimit()
DialectDoes 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 IngresDialectpublic String getLimitString(String querySelect, int offset, int limit)
DialectGiven a limit and an offset, apply the limit clause to the query.
getLimitString in class IngresDialectquerySelect - The query to which to apply the limit.offset - The offset of the limitlimit - The limit of the limit ;)public IdentityColumnSupport getIdentityColumnSupport()
DialectGet the appropriate IdentityColumnSupport
getIdentityColumnSupport in class DialectCopyright © 2001-2018 Red Hat, Inc. All Rights Reserved.