org.hibernate.dialect
Class IngresDialect
java.lang.Object
   org.hibernate.dialect.Dialect
org.hibernate.dialect.Dialect
       org.hibernate.dialect.IngresDialect
org.hibernate.dialect.IngresDialect
- Direct Known Subclasses: 
- Ingres9Dialect
- public class IngresDialect 
- extends Dialect
An SQL dialect for Ingres 9.2.
 
 Known limitations:
 
 -  Only supports simple constants or columns on the left side of an IN, making (1,2,3) in (...) or (<subselect>) in (...) non-supported.
 
-  Supports only 39 digits in decimal.
 
-  Explicitly set USE_GET_GENERATED_KEYS property to false.
 
-  Perform string casts to varchar; removes space padding.
 
- Author:
- Ian Booth, Bruce Lunsford, Max Rydahl Andersen, Raymond Fan
 
 
 
| Method Summary | 
|  boolean | dropConstraints()Do we need to drop constraints before dropping tables in this dialect?
 | 
|  String | generateTemporaryTableName(String baseTableName)Generate a temporary table name given the base table.
 | 
|  String | getAddColumnString()The syntax used to add a column to a table (optional).
 | 
|  String | getCreateSequenceString(String sequenceName)The syntax used to create a sequence, if sequences are supported.
 | 
|  String | getCreateTemporaryTablePostfix()Get any fragments needing to be postfixed to the command for
 temporary table creation.
 | 
|  String | getCreateTemporaryTableString()Command used to create a temporary table.
 | 
|  String | getCurrentTimestampSQLFunctionName()Expression for current_timestamp
 | 
|  String | getDropSequenceString(String sequenceName)The syntax used to drop a sequence, if sequences are supported.
 | 
|  String | getLimitString(String querySelect,
               int offset,
               int limit)Add a LIMIT clause to the given SQL SELECT
 | 
|  String | getLowercaseFunction()The name of the SQL function that transforms a string to
 lowercase
 | 
|  String | getNullColumnString()The keyword used to specify a nullable column.
 | 
|  String | getQuerySequencesString()A query used to find all sequences
 | 
|  String | getSelectGUIDString()Expression for created UUID string
 | 
|  String | getSelectSequenceNextValString(String sequenceName)Generate the select expression fragment that will retrieve the next
 value of a sequence as part of another (typically DML) statement.
 | 
|  String | getSequenceNextValString(String sequenceName)The syntax that fetches the next value of a sequence, if sequences are supported.
 | 
|  boolean | supportsEmptyInList()Does this dialect support empty IN lists?
 
 For example, is [where XYZ in ()] a supported construct?
 | 
|  boolean | supportsExpectedLobUsagePattern()Expected LOB usage pattern is such that I can perform an insert
 via prepared statement with a parameter binding for a LOB value
 without crazy casting to JDBC driver implementation-specific classes...
 | 
|  boolean | supportsForUpdateOf()Does this dialect support FOR UPDATE OF, allowing
 particular rows to be locked?
 | 
|  boolean | supportsLimit()Does this Dialect have some kind of LIMIT syntax?
 | 
|  boolean | supportsLimitOffset()Does this dialect support an offset?
 | 
|  boolean | supportsNotNullUnique()Ingres explicitly needs "unique not null", because "with null" is default
 | 
|  boolean | supportsSequences()Does this dialect support sequences?
 | 
|  boolean | supportsSubselectAsInPredicateLHS()Are subselects supported as the left-hand-side (LHS) of
 IN-predicates.
 | 
|  boolean | supportsTemporaryTables()Does this dialect support temporary tables?
 | 
|  boolean | supportsTupleDistinctCounts()Ingres does not support the syntax `count(distinct a,b)`?
 | 
|  boolean | supportsVariableLimit()Does this dialect support bind variables (i.e., prepared statement
 parameters) for its limit/offset?
 | 
|  boolean | useMaxForLimit()Does the LIMIT clause take a "maximum" row number instead
 of a total number of returned rows?
 | 
 
| Methods inherited from class org.hibernate.dialect.Dialect | 
| addTypeOverride, appendIdentitySelectToInsert, appendLockHint, applyLocksToSql, areStringComparisonsCaseInsensitive, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildSQLExceptionConverter, closeQuote, convertToFirstRowValue, createCaseFragment, createOuterJoinFragment, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, dropTemporaryTableAfterUse, forceLimitUsage, forUpdateOfColumns, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getCascadeConstraintsString, getCastTypeName, getColumnAliasExtractor, getColumnComment, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCrossJoinSeparator, getCurrentTimestampSelectString, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceStrings, getDropTemporaryTableString, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentityColumnString, getIdentityInsertString, getIdentitySelectString, getIdentitySelectString, getKeywords, getLimitString, getLockingStrategy, getMaxAliasLength, getNativeIdentifierGeneratorClass, getNoColumnsInsertString, getReadLockString, getResultSet, getSelectClauseNullString, getTableComment, getTableTypeString, getTypeName, getTypeName, getTypeOverrides, getViolatedConstraintNameExtracter, getWriteLockString, hasAlterTable, hasDataTypeInIdentityColumn, hasSelfReferentialForeignKeyBug, isCurrentTimestampSelectStringCallable, isLockTimeoutParameterized, openQuote, performTemporaryTableDDLInIsolation, qualifyIndexName, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, registerResultSetOutParameter, replaceResultVariableInOrderByClauseWithPosition, requiresCastingOfParametersInSelectClause, supportsBindAsCallableArgument, supportsCascadeDelete, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsCurrentTimestampSelection, supportsExistsInSelect, supportsIdentityColumns, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsInsertSelectIdentity, supportsLobValueChangePropogation, supportsLockTimeouts, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsPooledSequences, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSubqueryOnMutatingTable, supportsTableCheck, supportsTupleCounts, supportsUnboundedLobLocatorMaterialization, supportsUnionAll, supportsUnique, supportsUniqueConstraintInCreateAlterTable, toBooleanValueString, toString, transformSelectString, useInputStreamToInsertBlob | 
 
 
IngresDialect
public IngresDialect()
getSelectGUIDString
public String getSelectGUIDString()
- Expression for created UUID string
 
- 
- Overrides:
- getSelectGUIDStringin class- Dialect
 
- 
- Returns:
- The appropriate command.
 
dropConstraints
public boolean dropConstraints()
- Do we need to drop constraints before dropping tables in this dialect?
 
- 
- Overrides:
- dropConstraintsin class- Dialect
 
- 
- Returns:
- boolean
 
supportsForUpdateOf
public boolean supportsForUpdateOf()
- Does this dialect support FOR UPDATE OF, allowing
 particular rows to be locked?
 
- 
- Returns:
- True (Ingres does support "for update of" syntax...)
 
getAddColumnString
public String getAddColumnString()
- The syntax used to add a column to a table (optional).
 
- 
- Overrides:
- getAddColumnStringin class- Dialect
 
- 
- Returns:
- The "add column" fragment.
 
getNullColumnString
public String getNullColumnString()
- The keyword used to specify a nullable column.
 
- 
- Overrides:
- getNullColumnStringin class- Dialect
 
- 
- Returns:
- String
 
supportsSequences
public boolean supportsSequences()
- Does this dialect support sequences?
 
- 
- Overrides:
- supportsSequencesin class- Dialect
 
- 
- Returns:
- boolean
 
getSequenceNextValString
public String getSequenceNextValString(String sequenceName)
- The syntax that fetches the next value of a sequence, if sequences are supported.
 
- 
- Overrides:
- getSequenceNextValStringin class- Dialect
 
- 
- Parameters:
- sequenceName- the name of the sequence
- Returns:
- String
 
getSelectSequenceNextValString
public String getSelectSequenceNextValString(String sequenceName)
- Description copied from class: Dialect
- Generate the select expression fragment that will retrieve the next
 value of a sequence as part of another (typically DML) statement.
 
 This differs from Dialect.getSequenceNextValString(String)in that this
 should return an expression usable within another statement.
 
- 
- Overrides:
- getSelectSequenceNextValStringin class- Dialect
 
- 
- Parameters:
- sequenceName- the name of the sequence
- Returns:
- The "nextval" fragment.
 
getCreateSequenceString
public String getCreateSequenceString(String sequenceName)
- The syntax used to create a sequence, if sequences are supported.
 
- 
- Overrides:
- getCreateSequenceStringin class- Dialect
 
- 
- Parameters:
- sequenceName- the name of the sequence
- Returns:
- String
 
getDropSequenceString
public String getDropSequenceString(String sequenceName)
- The syntax used to drop a sequence, if sequences are supported.
 
- 
- Overrides:
- getDropSequenceStringin class- Dialect
 
- 
- Parameters:
- sequenceName- the name of the sequence
- Returns:
- String
 
getQuerySequencesString
public String getQuerySequencesString()
- A query used to find all sequences
 
- 
- Overrides:
- getQuerySequencesStringin class- Dialect
 
- 
- Returns:
- The select command; or null if sequences are not supported.
- See Also:
- SchemaUpdate
 
getLowercaseFunction
public String getLowercaseFunction()
- The name of the SQL function that transforms a string to
 lowercase
 
- 
- Overrides:
- getLowercaseFunctionin class- Dialect
 
- 
- Returns:
- String
 
supportsLimit
public boolean supportsLimit()
- Does this Dialect have some kind of LIMIT syntax?
 
- 
- Overrides:
- supportsLimitin class- Dialect
 
- 
- Returns:
- True if this dialect supports some form of LIMIT.
 
supportsLimitOffset
public boolean supportsLimitOffset()
- Does this dialect support an offset?
 
- 
- Overrides:
- supportsLimitOffsetin class- Dialect
 
- 
- Returns:
- True if the dialect supports an offset within the limit support.
 
getLimitString
public String getLimitString(String querySelect,
                             int offset,
                             int limit)
- Add a LIMIT clause to the given SQL SELECT
 
- 
- Overrides:
- getLimitStringin class- Dialect
 
- 
- Parameters:
- querySelect- The query to which to apply the limit.
- offset- The offset of the limit
- limit- The limit of the limit ;)
- Returns:
- the modified SQL
 
supportsVariableLimit
public boolean supportsVariableLimit()
- Description copied from class: Dialect
- Does this dialect support bind variables (i.e., prepared statement
 parameters) for its limit/offset?
 
- 
- Overrides:
- supportsVariableLimitin class- Dialect
 
- 
- Returns:
- True if bind variables can be used; false otherwise.
 
useMaxForLimit
public boolean useMaxForLimit()
- Does the LIMIT clause take a "maximum" row number instead
 of a total number of returned rows?
 
- 
- Overrides:
- useMaxForLimitin class- Dialect
 
- 
- Returns:
- True if limit is relative from offset; false otherwise.
 
supportsNotNullUnique
public boolean supportsNotNullUnique()
- Ingres explicitly needs "unique not null", because "with null" is default
 
- 
- Overrides:
- supportsNotNullUniquein class- Dialect
 
- 
 
supportsTemporaryTables
public boolean supportsTemporaryTables()
- Does this dialect support temporary tables?
 
- 
- Overrides:
- supportsTemporaryTablesin class- Dialect
 
- 
- Returns:
- True if temp tables are supported; false otherwise.
 
getCreateTemporaryTableString
public String getCreateTemporaryTableString()
- Description copied from class: Dialect
- Command used to create a temporary table.
 
- 
- Overrides:
- getCreateTemporaryTableStringin class- Dialect
 
- 
- Returns:
- The command used to create a temporary table.
 
getCreateTemporaryTablePostfix
public String getCreateTemporaryTablePostfix()
- Description copied from class: Dialect
- Get any fragments needing to be postfixed to the command for
 temporary table creation.
 
- 
- Overrides:
- getCreateTemporaryTablePostfixin class- Dialect
 
- 
- Returns:
- Any required postfix.
 
generateTemporaryTableName
public String generateTemporaryTableName(String baseTableName)
- Description copied from class: Dialect
- Generate a temporary table name given the base table.
 
- 
- Overrides:
- generateTemporaryTableNamein class- Dialect
 
- 
- Parameters:
- baseTableName- The table name from which to base the temp table name.
- Returns:
- The generated temp table name.
 
getCurrentTimestampSQLFunctionName
public String getCurrentTimestampSQLFunctionName()
- Expression for current_timestamp
 
- 
- Overrides:
- getCurrentTimestampSQLFunctionNamein class- Dialect
 
- 
- Returns:
- The function name.
 
supportsSubselectAsInPredicateLHS
public boolean supportsSubselectAsInPredicateLHS()
- Description copied from class: Dialect
- Are subselects supported as the left-hand-side (LHS) of
 IN-predicates.
 
 In other words, is syntax like "...  IN (1, 2, 3) ..." supported?
 
- 
- Overrides:
- supportsSubselectAsInPredicateLHSin class- Dialect
 
- 
- Returns:
- True if subselects can appear as the LHS of an in-predicate;
 false otherwise.
 
supportsEmptyInList
public boolean supportsEmptyInList()
- Description copied from class: Dialect
- Does this dialect support empty IN lists?
 
 For example, is [where XYZ in ()] a supported construct?
 
- 
- Overrides:
- supportsEmptyInListin class- Dialect
 
- 
- Returns:
- True if empty in lists are supported; false otherwise.
 
supportsExpectedLobUsagePattern
public boolean supportsExpectedLobUsagePattern()
- Description copied from class: Dialect
- Expected LOB usage pattern is such that I can perform an insert
 via prepared statement with a parameter binding for a LOB value
 without crazy casting to JDBC driver implementation-specific classes...
 
 Part of the trickiness here is the fact that this is largely
 driver dependent.  For example, Oracle (which is notoriously bad with
 LOB support in their drivers historically) actually does a pretty good
 job with LOB support as of the 10.2.x versions of their drivers...
 
- 
- Overrides:
- supportsExpectedLobUsagePatternin class- Dialect
 
- 
- Returns:
- True if normal LOB usage patterns can be used with this driver;
 false if driver-specific hookiness needs to be applied.
 
supportsTupleDistinctCounts
public boolean supportsTupleDistinctCounts()
- Ingres does not support the syntax `count(distinct a,b)`?
 
- 
- Overrides:
- supportsTupleDistinctCountsin class- Dialect
 
- 
- Returns:
- False, not supported.
 
Copyright © 2001-2010 Red Hat, Inc.  All Rights Reserved.