## org.hibernate.dialect
Class InformixDialect

    java.lang.Object
      org.hibernate.dialect.Dialect
          org.hibernate.dialect.InformixDialect

All Implemented Interfaces:
  ConversionContext

    public class InformixDialect

extends Dialect

Informix dialect.
Seems to work with Informix Dynamic Server Version 7.31.UD3, Informix JDBC driver version 2.21JC3.

Field Summary

Fields inherited from class org.hibernate.dialect.Dialect
`CLOSED_QUOTE, DEFAULT_BATCH_SIZE, LEGACY_LOB_MERGE_STRATEGY, NEW_LOCATOR_LOB_MERGE_STRATEGY, NO_BATCH, QUOTE, STREAM_XFER_LOB_MERGE_STRATEGY`

Constructor Summary
`InformixDialect()` Creates new `InformixDialect` instance.

Method Summary
`String` `getAddColumnString()` The syntax used to add a column to a table (optional).
`String` `getAddForeignKeyConstraintString(String constraintName, String[] foreignKey, String referencedTable, String[] primaryKey, boolean referencesPrimaryKey)` The syntax used to add a foreign key constraint to a table.
`String` `getAddPrimaryKeyConstraintString(String constraintName)` The syntax used to add a primary key constraint to a table.
`String` `getCreateSequenceString(String sequenceName)` Typically dialects which support sequences can create a sequence with a single command.
`String` `getCreateTemporaryTablePostfix()` Overrides `Dialect.getCreateTemporaryTablePostfix()` to return "`with no log`" when invoked.
`String` `getCreateTemporaryTableString()` Overrides `Dialect.getCreateTemporaryTableString()` to return "`create temp table`" when invoked.
`String` `getCurrentTimestampSelectString()` Retrieve the command used to retrieve the current timestamp from the database.
`String` `getDropSequenceString(String sequenceName)` Typically dialects which support sequences can drop a sequence with a single command.
`String` `getIdentityColumnString(int type)` The syntax used during DDL to define a column as being an IDENTITY of a particular type.
`String` `getIdentitySelectString(String table, String column, int type)` Get the select command to use to retrieve the last generated IDENTITY value for a particular table
`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.
`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)` Generate the appropriate select statement to to retrieve the next value of a sequence.
`ViolatedConstraintNameExtracter` `getViolatedConstraintNameExtracter()`
`boolean` `hasDataTypeInIdentityColumn()` Whether this dialect have an Identity clause added to the data type or a completely separate identity data type
`boolean` `isCurrentTimestampSelectStringCallable()` Should the value returned by `Dialect.getCurrentTimestampSelectString()` be treated as callable.
`boolean` `supportsCurrentTimestampSelection()` Does this dialect support a way to retrieve the database's current timestamp value?
`boolean` `supportsIdentityColumns()` Does this dialect support identity column key generation?
`boolean` `supportsLimit()` Does this dialect support some form of limiting query results via a SQL clause?
`boolean` `supportsLimitOffset()` Does this dialect's LIMIT support (if any) additionally support specifying an offset?
`boolean` `supportsPooledSequences()` Does this dialect support "pooled" sequences.
`boolean` `supportsSequences()` Does this dialect support sequences?
`boolean` `supportsTemporaryTables()` Overrides `Dialect.supportsTemporaryTables()` to return `true` when invoked.
`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? This is easiest understood via an example.

Methods inherited from class org.hibernate.dialect.Dialect

`appendIdentitySelectToInsert, appendLockHint, applyLocksToSql, areStringComparisonsCaseInsensitive, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildSQLExceptionConversionDelegate, buildSQLExceptionConverter, closeQuote, convertToFirstRowValue, createCaseFragment, createOuterJoinFragment, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, dropConstraints, dropTemporaryTableAfterUse, forceLimitUsage, forUpdateOfColumns, generateTemporaryTableName, getAddUniqueConstraintString, getCascadeConstraintsString, getCaseInsensitiveLike, getCastTypeName, getColumnAliasExtractor, getColumnComment, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCrossJoinSeparator, getCurrentTimestampSQLFunctionName, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceStrings, getDropTemporaryTableString, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentityInsertString, getIdentitySelectString, getKeywords, getLimitString, getLobMergeStrategy, getLockingStrategy, getLowercaseFunction, getMaxAliasLength, getNativeIdentifierGeneratorClass, getNoColumnsInsertString, getNullColumnString, getReadLockString, getResultSet, getSelectClauseNullString, getSelectGUIDString, getSqlTypeDescriptorOverride, getTableComment, getTableTypeString, getTypeName, getTypeName, getWriteLockString, hasAlterTable, hasSelfReferentialForeignKeyBug, isLockTimeoutParameterized, openQuote, performTemporaryTableDDLInIsolation, qualifyIndexName, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, registerResultSetOutParameter, remapSqlTypeDescriptor, replaceResultVariableInOrderByClauseWithPosition, requiresCastingOfParametersInSelectClause, supportsBindAsCallableArgument, supportsCascadeDelete, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsEmptyInList, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsInsertSelectIdentity, supportsLobValueChangePropogation, supportsLockTimeouts, supportsNotNullUnique, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTupleCounts, supportsTupleDistinctCounts, supportsUnboundedLobLocatorMaterialization, supportsUnionAll, supportsUnique, supportsUniqueConstraintInCreateAlterTable, toBooleanValueString, toString, transformSelectString, useInputStreamToInsertBlob`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### InformixDialect

    public InformixDialect()

  Creates new `InformixDialect` instance. Sets up the JDBC / Informix type mappings.

Method Detail

### getAddColumnString

    public String getAddColumnString()

  Description copied from class: `Dialect`
  The syntax used to add a column to a table (optional).

  Overrides:
    `getAddColumnString` in class `Dialect`
  Returns:
    The "add column" fragment.

### supportsIdentityColumns

    public boolean supportsIdentityColumns()

  Description copied from class: `Dialect`
  Does this dialect support identity column key generation?

  Overrides:
    `supportsIdentityColumns` in class `Dialect`
  Returns:
    True if IDENTITY columns are supported; false otherwise.

### getIdentitySelectString

    public String getIdentitySelectString(String table,
                                          String column,
                                          int type)
                                   throws MappingException

  Description copied from class: `Dialect`
  Get the select command to use to retrieve the last generated IDENTITY value for a particular table

  Overrides:
    `getIdentitySelectString` in class `Dialect`
  Parameters:
    `table` - The table into which the insert was done
    `column` - The PK column.
    `type` - The `Types` type code.
  Returns:
    The appropriate select command
  Throws:
    `MappingException` - If IDENTITY generation is not supported.

### getIdentityColumnString

    public String getIdentityColumnString(int type)
                                   throws MappingException

  Description copied from class: `Dialect`
  The syntax used during DDL to define a column as being an IDENTITY of a particular type.

  Overrides:
    `getIdentityColumnString` in class `Dialect`
  Parameters:
    `type` - The `Types` type code.
  Returns:
    The appropriate DDL fragment.
  Throws:
    `MappingException` - If IDENTITY generation is not supported.

### hasDataTypeInIdentityColumn

    public boolean hasDataTypeInIdentityColumn()

  Description copied from class: `Dialect`
  Whether this dialect have an Identity clause added to the data type or a completely separate identity data type

  Overrides:
    `hasDataTypeInIdentityColumn` in class `Dialect`
  Returns:
    boolean

### getAddForeignKeyConstraintString

    public String getAddForeignKeyConstraintString(String constraintName,
                                                   String[] foreignKey,
                                                   String referencedTable,
                                                   String[] primaryKey,
                                                   boolean referencesPrimaryKey)

  The syntax used to add a foreign key constraint to a table. Informix constraint name must be at the end.

  Overrides:
    `getAddForeignKeyConstraintString` in class `Dialect`
  Parameters:
    `constraintName` - The FK constraint name.
    `foreignKey` - The names of the columns comprising the FK
    `referencedTable` - The table referenced by the FK
    `primaryKey` - The explicit columns in the referencedTable referenced by this FK.
    `referencesPrimaryKey` - if false, constraint should be explicit about which column names the constraint refers to
  Returns:
    String

### getAddPrimaryKeyConstraintString

    public String getAddPrimaryKeyConstraintString(String constraintName)

  The syntax used to add a primary key constraint to a table. Informix constraint name must be at the end.

  Overrides:
    `getAddPrimaryKeyConstraintString` in class `Dialect`
  Parameters:
    `constraintName` - The name of the PK constraint.
  Returns:
    String

### getCreateSequenceString

    public String getCreateSequenceString(String sequenceName)

  Description copied from class: `Dialect`
  Typically dialects which support sequences can create a sequence with a single command. This is convenience form of `Dialect.getCreateSequenceStrings(java.lang.String)` 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 `Dialect.getCreateSequenceStrings(java.lang.String)`.

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

### getDropSequenceString

    public String getDropSequenceString(String sequenceName)

  Description copied from class: `Dialect`
  Typically dialects which support sequences can drop a sequence with a single command. This is convenience form of `Dialect.getDropSequenceStrings(java.lang.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(java.lang.String)`.

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

### getSequenceNextValString

    public String getSequenceNextValString(String sequenceName)

  Description copied from class: `Dialect`
  Generate the appropriate select statement to to retrieve the next value of a sequence.

  This should be a "stand alone" select statement.

  Overrides:
    `getSequenceNextValString` in class `Dialect`
  Parameters:
    `sequenceName` - the name of the sequence
  Returns:
    String The "nextval" select 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:
    `getSelectSequenceNextValString` in class `Dialect`
  Parameters:
    `sequenceName` - the name of the sequence
  Returns:
    The "nextval" fragment.

### supportsSequences

    public boolean supportsSequences()

  Description copied from class: `Dialect`
  Does this dialect support sequences?

  Overrides:
    `supportsSequences` in class `Dialect`
  Returns:
    True if sequences supported; false otherwise.

### supportsPooledSequences

    public boolean supportsPooledSequences()

  Description copied from class: `Dialect`
  Does this dialect support "pooled" sequences. Not aware of a better name for this. Essentially can we specify the initial and increment values?

  Overrides:
    `supportsPooledSequences` in class `Dialect`
  Returns:
    True if such "pooled" sequences are supported; false otherwise.
  See Also:
    `Dialect.getCreateSequenceStrings(String, int, int)`, `Dialect.getCreateSequenceString(String, int, int)`

### getQuerySequencesString

    public String getQuerySequencesString()

  Description copied from class: `Dialect`
  Get the select command used retrieve the names of all sequences.

  Overrides:
    `getQuerySequencesString` in class `Dialect`
  Returns:
    The select command; or null if sequences are not supported.
  See Also:
    `SchemaUpdate`

### supportsLimit

    public boolean supportsLimit()

  Description copied from class: `Dialect`
  Does this dialect support some form of limiting query results via a SQL clause?

  Overrides:
    `supportsLimit` in class `Dialect`
  Returns:
    True if this dialect supports some form of LIMIT.

### useMaxForLimit

    public boolean useMaxForLimit()

  Description copied from class: `Dialect`
  Does the `LIMIT` clause take a "maximum" row number instead of a total number of returned rows?

  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)

  So essentially, is limit relative from offset? Or is limit absolute?

  Overrides:
    `useMaxForLimit` in class `Dialect`
  Returns:
    True if limit is relative from offset; false otherwise.

### supportsLimitOffset

    public boolean supportsLimitOffset()

  Description copied from class: `Dialect`
  Does this dialect's LIMIT support (if any) additionally support specifying an offset?

  Overrides:
    `supportsLimitOffset` in class `Dialect`
  Returns:
    True if the dialect supports an offset within the limit support.

### getLimitString

    public String getLimitString(String querySelect,
                                 int offset,
                                 int limit)

  Description copied from class: `Dialect`
  Given a limit and an offset, apply the limit clause to the query.

  Overrides:
    `getLimitString` in 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 query statement with the limit applied.

### 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:
    `supportsVariableLimit` in class `Dialect`
  Returns:
    True if bind variables can be used; false otherwise.

### getViolatedConstraintNameExtracter

    public ViolatedConstraintNameExtracter getViolatedConstraintNameExtracter()

  Specified by:
    `getViolatedConstraintNameExtracter` in interface `ConversionContext`
  Overrides:
    `getViolatedConstraintNameExtracter` in class `Dialect`

### supportsCurrentTimestampSelection

    public boolean supportsCurrentTimestampSelection()

  Description copied from class: `Dialect`
  Does this dialect support a way to retrieve the database's current timestamp value?

  Overrides:
    `supportsCurrentTimestampSelection` in class `Dialect`
  Returns:
    True if the current timestamp can be retrieved; false otherwise.

### isCurrentTimestampSelectStringCallable

    public boolean isCurrentTimestampSelectStringCallable()

  Description copied from class: `Dialect`
  Should the value returned by `Dialect.getCurrentTimestampSelectString()` be treated as callable. Typically this indicates that JDBC escape syntax is being used...

  Overrides:
    `isCurrentTimestampSelectStringCallable` in class `Dialect`
  Returns:
    True if the `Dialect.getCurrentTimestampSelectString()` return is callable; false otherwise.

### getCurrentTimestampSelectString

    public String getCurrentTimestampSelectString()

  Description copied from class: `Dialect`
  Retrieve the command used to retrieve the current timestamp from the database.

  Overrides:
    `getCurrentTimestampSelectString` in class `Dialect`
  Returns:
    The command.

### supportsTemporaryTables

    public boolean supportsTemporaryTables()

  Overrides `Dialect.supportsTemporaryTables()` to return `true` when invoked.

  Overrides:
    `supportsTemporaryTables` in class `Dialect`
  Returns:
    `true` when invoked

### getCreateTemporaryTableString

    public String getCreateTemporaryTableString()

  Overrides `Dialect.getCreateTemporaryTableString()` to return "`create temp table`" when invoked.

  Overrides:
    `getCreateTemporaryTableString` in class `Dialect`
  Returns:
    "`create temp table`" when invoked

### getCreateTemporaryTablePostfix

    public String getCreateTemporaryTablePostfix()

  Overrides `Dialect.getCreateTemporaryTablePostfix()` to return "`with no log`" when invoked.

  Overrides:
    `getCreateTemporaryTablePostfix` in class `Dialect`
  Returns:
    "`with no log`" when invoked

Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.