Class InformixDialect

java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.community.dialect.InformixDialect
All Implemented Interfaces:
org.hibernate.boot.model.FunctionContributor, org.hibernate.boot.model.TypeContributor, org.hibernate.exception.spi.ConversionContext

public class InformixDialect extends org.hibernate.dialect.Dialect
Dialect for Informix 7.31.UD3 with Informix JDBC driver 2.21JC3 and above.
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.hibernate.dialect.Dialect

    org.hibernate.dialect.Dialect.SizeStrategy, org.hibernate.dialect.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

    Constructors
    Constructor
    Description
     
    InformixDialect(org.hibernate.dialect.DatabaseVersion version)
    Creates new InformixDialect instance.
    InformixDialect(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    appendBooleanValueString(org.hibernate.sql.ast.spi.SqlAppender appender, boolean bool)
     
    void
    appendDatetimeFormat(org.hibernate.sql.ast.spi.SqlAppender appender, String format)
     
    protected String
    columnType(int sqlTypeCode)
     
     
     
    static org.hibernate.dialect.Replacer
     
    extractPattern(org.hibernate.query.sqm.TemporalUnit unit)
    Informix has no extract() function, but we can partially emulate it by using the appropriate named functions, and by using to_char() with a format string.
     
    getAddForeignKeyConstraintString(String constraintName, String foreignKeyDefinition)
     
    getAddForeignKeyConstraintString(String constraintName, String[] foreignKey, String referencedTable, String[] primaryKey, boolean referencesPrimaryKey)
    Informix constraint name must be at the end.
    Informix constraint name must be at the end.
     
     
     
    int
     
    int
     
    int
     
     
    org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy
    getFallbackSqmInsertStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)
     
    org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy
    getFallbackSqmMutationStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)
     
    int
     
    org.hibernate.tool.schema.spi.Exporter<org.hibernate.mapping.ForeignKey>
     
    org.hibernate.dialect.SelectItemReferenceStrategy
     
    org.hibernate.dialect.identity.IdentityColumnSupport
     
    org.hibernate.dialect.pagination.LimitHandler
     
    int
     
    int
     
     
    org.hibernate.dialect.NullOrdering
     
     
    getSelectClauseNullString(int sqlType, org.hibernate.type.spi.TypeConfiguration typeConfiguration)
     
    org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor
     
    org.hibernate.dialect.sequence.SequenceSupport
     
    org.hibernate.sql.ast.SqlAstTranslatorFactory
     
    org.hibernate.query.sqm.sql.SqmTranslatorFactory
     
    org.hibernate.dialect.temptable.TemporaryTableKind
     
    org.hibernate.query.sqm.mutation.internal.temptable.AfterUseAction
     
    org.hibernate.query.sqm.mutation.internal.temptable.BeforeUseAction
     
     
     
    org.hibernate.dialect.unique.UniqueDelegate
     
    org.hibernate.exception.spi.ViolatedConstraintNameExtractor
     
    void
    initializeFunctionRegistry(org.hibernate.boot.model.FunctionContributions functionContributions)
     
    boolean
     
    protected void
    registerColumnTypes(org.hibernate.boot.model.TypeContributions typeContributions, org.hibernate.service.ServiceRegistry serviceRegistry)
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     

    Methods inherited from class org.hibernate.dialect.Dialect

    addSqlHintOrComment, appendArrayLiteral, appendBinaryLiteral, appendCheckConstraintOptions, appendDateTimeLiteral, appendDateTimeLiteral, appendDateTimeLiteral, appendIntervalLiteral, appendLiteral, appendLockHint, appendUUIDLiteral, applyLocksToSql, augmentPhysicalTableTypes, augmentRecognizedTableTypes, buildIdentifierHelper, buildSQLExceptionConversionDelegate, canBatchTruncate, canCreateCatalog, canCreateSchema, canDisableConstraints, castPattern, castType, checkVersion, closeQuote, contribute, contributeFunctions, contributeTypes, createOptionalTableUpdateOperation, currentLocalTime, currentLocalTimestamp, currentTime, currentTimestampWithTimeZone, defaultScrollMode, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, doesRoundTemporalOnOverflow, dropConstraints, equivalentTypes, escapeComment, forceLobAsLastValue, generatedAs, getAddColumnSuffixString, getAggregateSupport, getAlterColumnTypeString, getAlterTableString, getArrayTypeName, getAuxiliaryDatabaseObjectExporter, getBatchLoadSizingStrategy, getCallableStatementSupport, getCascadeConstraintsString, getCaseInsensitiveLike, getCheckCondition, getCheckCondition, getCheckCondition, getCheckCondition, getCheckCondition, getCheckCondition, getCheckConstraintString, getColumnAliasExtractor, getColumnComment, getCreateCatalogCommand, getCreateEnumTypeCommand, getCreateEnumTypeCommand, getCreateIndexString, getCreateIndexTail, getCreateMultisetTableString, getCreateTableString, getCreateTemporaryTableColumnAnnotation, getCreateUserDefinedTypeExtensionsString, getCreateUserDefinedTypeKindString, getCurrentSchemaCommand, getDefaultIntervalSecondScale, getDefaultLobLength, getDefaultNonContextualLobCreation, getDefaultProperties, getDefaultStatementBatchSize, getDefaultUseGetGeneratedKeys, getDisableConstraintsStatement, getDisableConstraintStatement, getDmlTargetColumnQualifierSupport, getDropCatalogCommand, getDropEnumTypeCommand, getDropEnumTypeCommand, getDropForeignKeyString, getDropTableString, getDropUniqueKeyString, getEnableConstraintsStatement, getEnableConstraintStatement, getEnumTypeDeclaration, getEnumTypeDeclaration, getFallbackSchemaManagementTool, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateSkipLockedString, getForUpdateSkipLockedString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFractionalSecondPrecisionInNanos, getFunctionalDependencyAnalysisSupport, getHqlTranslator, getIndexExporter, getInExpressionCountLimit, getKeywords, getLobMergeStrategy, getLockingStrategy, getLockRowIdentifier, getLowercaseFunction, getMaxAliasLength, getMaxIdentifierLength, getMaxNVarcharCapacity, getMaxNVarcharLength, getMaxVarbinaryCapacity, getMaxVarcharCapacity, getMinimumSupportedVersion, getMultiKeyLoadSizingStrategy, getNameQualifierSupport, getNationalizationSupport, getNativeIdentifierGeneratorStrategy, getNativeParameterMarkerStrategy, getNullColumnString, getNullColumnString, getParameterCountLimit, getPreferredSqlTypeCodeForArray, getPreferredSqlTypeCodeForBoolean, getQueryHintString, getQueryHintString, getReadLockString, getReadLockString, getReadRowLockStrategy, getResultSet, getResultSet, getResultSet, getRowIdColumnString, getSchemaNameResolver, getSelectGUIDString, getSequenceExporter, getSizeStrategy, getTableCleaner, getTableComment, getTableExporter, getTableMigrator, getTableTypeString, getTemporaryTableDdlTransactionHandling, getTemporaryTableDropCommand, getTemporaryTableExporter, getTemporaryTableTruncateCommand, getTimeoutInSeconds, getTimeZoneSupport, getTruncateTableStatement, getTruncateTableStatements, getUniqueKeyExporter, getUserDefinedTypeComment, getUserDefinedTypeExporter, getVersion, getWriteLockString, getWriteLockString, getWriteRowLockStrategy, hasAlterTable, hasDataTypeBeforeGeneratedAs, hasSelfReferentialForeignKeyBug, initDefaultProperties, isAnsiNullOn, isEmptyStringTreatedAsNull, isJdbcLogWarningsEnabledByDefault, isLob, openQuote, ordinal, prependComment, qualifyIndexName, quote, quoteCollation, registerDefaultKeywords, registerKeyword, registerKeywords, registerResultSetOutParameter, registerResultSetOutParameter, requiresCastForConcatenatingNonStrings, requiresFloatCastingOfIntegerDivision, requiresParensForTupleCounts, requiresParensForTupleDistinctCounts, resolveSqlTypeCode, resolveSqlTypeCode, resolveSqlTypeDescriptor, resolveSqlTypeLength, rowId, rowIdSqlType, supportsAlterColumnType, supportsBatchUpdates, supportsBindAsCallableArgument, supportsBitType, supportsCascadeDelete, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsConflictClauseForInsertCTE, supportsDistinctFromPredicate, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsFetchClause, supportsFractionalTimestampArithmetic, supportsFromClauseInUpdate, supportsIfExistsAfterAlterTable, supportsIfExistsAfterConstraintName, supportsIfExistsAfterTableName, supportsIfExistsAfterTypeName, supportsInsertReturning, supportsInsertReturningGeneratedKeys, supportsInsertReturningRowId, supportsIsTrue, supportsJdbcConnectionLobCreation, supportsLobValueChangePropagation, supportsLockTimeouts, supportsMaterializedLobAccess, supportsNamedParameters, supportsNoColumnsInsert, supportsNonQueryWithCTE, supportsNoWait, supportsOffsetInSubquery, supportsOrdinalSelectItemReference, supportsOuterJoinForUpdate, supportsPartitionBy, supportsPredicateAsExpression, supportsRecursiveCTE, supportsRefCursors, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsSkipLocked, supportsStandardArrays, supportsStandardCurrentTimestampFunction, supportsSubqueryInSelect, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTableOptions, supportsTemporalLiteralOffset, supportsTemporaryTablePrimaryKey, supportsTemporaryTables, supportsTruncateWithCast, supportsTupleCounts, supportsTupleDistinctCounts, supportsUnboundedLobLocatorMaterialization, supportsUnionAll, supportsUnionInSubquery, supportsUpdateReturning, supportsValuesList, supportsWait, timestampaddPattern, timestampdiffPattern, toBooleanValueString, toQuotedIdentifier, toString, transformSelectString, translateDurationField, translateExtractField, trimPattern, unquoteGetGeneratedKeys, useArrayForMultiValuedParameters, useConnectionToCreateLob, useFollowOnLocking, useInputStreamToInsertBlob

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • InformixDialect

      public InformixDialect(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info)
    • InformixDialect

      public InformixDialect()
    • InformixDialect

      public InformixDialect(org.hibernate.dialect.DatabaseVersion version)
      Creates new InformixDialect instance. Sets up the JDBC / Informix type mappings.
  • Method Details

    • columnType

      protected String columnType(int sqlTypeCode)
      Overrides:
      columnType in class org.hibernate.dialect.Dialect
    • registerColumnTypes

      protected void registerColumnTypes(org.hibernate.boot.model.TypeContributions typeContributions, org.hibernate.service.ServiceRegistry serviceRegistry)
      Overrides:
      registerColumnTypes in class org.hibernate.dialect.Dialect
    • useMaterializedLobWhenCapacityExceeded

      public boolean useMaterializedLobWhenCapacityExceeded()
      Overrides:
      useMaterializedLobWhenCapacityExceeded in class org.hibernate.dialect.Dialect
    • getMaxVarbinaryLength

      public int getMaxVarbinaryLength()
      Overrides:
      getMaxVarbinaryLength in class org.hibernate.dialect.Dialect
    • getMaxVarcharLength

      public int getMaxVarcharLength()
      Overrides:
      getMaxVarcharLength in class org.hibernate.dialect.Dialect
    • getDefaultDecimalPrecision

      public int getDefaultDecimalPrecision()
      Overrides:
      getDefaultDecimalPrecision in class org.hibernate.dialect.Dialect
    • getDefaultTimestampPrecision

      public int getDefaultTimestampPrecision()
      Overrides:
      getDefaultTimestampPrecision in class org.hibernate.dialect.Dialect
    • getFloatPrecision

      public int getFloatPrecision()
      Overrides:
      getFloatPrecision in class org.hibernate.dialect.Dialect
    • getDoublePrecision

      public int getDoublePrecision()
      Overrides:
      getDoublePrecision in class org.hibernate.dialect.Dialect
    • getGroupBySelectItemReferenceStrategy

      public org.hibernate.dialect.SelectItemReferenceStrategy getGroupBySelectItemReferenceStrategy()
      Overrides:
      getGroupBySelectItemReferenceStrategy in class org.hibernate.dialect.Dialect
    • initializeFunctionRegistry

      public void initializeFunctionRegistry(org.hibernate.boot.model.FunctionContributions functionContributions)
      Overrides:
      initializeFunctionRegistry in class org.hibernate.dialect.Dialect
    • getSqmTranslatorFactory

      public org.hibernate.query.sqm.sql.SqmTranslatorFactory getSqmTranslatorFactory()
      Overrides:
      getSqmTranslatorFactory in class org.hibernate.dialect.Dialect
    • getSqlAstTranslatorFactory

      public org.hibernate.sql.ast.SqlAstTranslatorFactory getSqlAstTranslatorFactory()
      Overrides:
      getSqlAstTranslatorFactory in class org.hibernate.dialect.Dialect
    • extractPattern

      public String extractPattern(org.hibernate.query.sqm.TemporalUnit unit)
      Informix has no extract() function, but we can partially emulate it by using the appropriate named functions, and by using to_char() with a format string. The supported fields are TemporalUnit.HOUR, TemporalUnit.MINUTE, TemporalUnit.SECOND, TemporalUnit.DAY, TemporalUnit.MONTH, TemporalUnit.YEAR, TemporalUnit.QUARTER, TemporalUnit.DAY_OF_MONTH, TemporalUnit.DAY_OF_WEEK.
      Overrides:
      extractPattern in class org.hibernate.dialect.Dialect
    • getAddColumnString

      public String getAddColumnString()
      Overrides:
      getAddColumnString in class org.hibernate.dialect.Dialect
    • getAddForeignKeyConstraintString

      public String getAddForeignKeyConstraintString(String constraintName, String[] foreignKey, String referencedTable, String[] primaryKey, boolean referencesPrimaryKey)
      Informix constraint name must be at the end.

      Overrides:
      getAddForeignKeyConstraintString in class org.hibernate.dialect.Dialect
    • getAddForeignKeyConstraintString

      public String getAddForeignKeyConstraintString(String constraintName, String foreignKeyDefinition)
      Overrides:
      getAddForeignKeyConstraintString in class org.hibernate.dialect.Dialect
    • getForeignKeyExporter

      public org.hibernate.tool.schema.spi.Exporter<org.hibernate.mapping.ForeignKey> getForeignKeyExporter()
      Overrides:
      getForeignKeyExporter in class org.hibernate.dialect.Dialect
    • getAddPrimaryKeyConstraintString

      public String getAddPrimaryKeyConstraintString(String constraintName)
      Informix constraint name must be at the end.

      Overrides:
      getAddPrimaryKeyConstraintString in class org.hibernate.dialect.Dialect
    • getSequenceSupport

      public org.hibernate.dialect.sequence.SequenceSupport getSequenceSupport()
      Overrides:
      getSequenceSupport in class org.hibernate.dialect.Dialect
    • getQuerySequencesString

      public String getQuerySequencesString()
      Overrides:
      getQuerySequencesString in class org.hibernate.dialect.Dialect
    • getSequenceInformationExtractor

      public org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor getSequenceInformationExtractor()
      Overrides:
      getSequenceInformationExtractor in class org.hibernate.dialect.Dialect
    • getNullOrdering

      public org.hibernate.dialect.NullOrdering getNullOrdering()
      Overrides:
      getNullOrdering in class org.hibernate.dialect.Dialect
    • supportsNullPrecedence

      public boolean supportsNullPrecedence()
      Overrides:
      supportsNullPrecedence in class org.hibernate.dialect.Dialect
    • getLimitHandler

      public org.hibernate.dialect.pagination.LimitHandler getLimitHandler()
      Overrides:
      getLimitHandler in class org.hibernate.dialect.Dialect
    • supportsIfExistsBeforeTableName

      public boolean supportsIfExistsBeforeTableName()
      Overrides:
      supportsIfExistsBeforeTableName in class org.hibernate.dialect.Dialect
    • supportsIfExistsBeforeTypeName

      public boolean supportsIfExistsBeforeTypeName()
      Overrides:
      supportsIfExistsBeforeTypeName in class org.hibernate.dialect.Dialect
    • supportsIfExistsBeforeConstraintName

      public boolean supportsIfExistsBeforeConstraintName()
      Overrides:
      supportsIfExistsBeforeConstraintName in class org.hibernate.dialect.Dialect
    • supportsOrderByInSubquery

      public boolean supportsOrderByInSubquery()
      Overrides:
      supportsOrderByInSubquery in class org.hibernate.dialect.Dialect
    • supportsWindowFunctions

      public boolean supportsWindowFunctions()
      Overrides:
      supportsWindowFunctions in class org.hibernate.dialect.Dialect
    • supportsLateral

      public boolean supportsLateral()
      Overrides:
      supportsLateral in class org.hibernate.dialect.Dialect
    • supportsValuesListForInsert

      public boolean supportsValuesListForInsert()
      Overrides:
      supportsValuesListForInsert in class org.hibernate.dialect.Dialect
    • getViolatedConstraintNameExtractor

      public org.hibernate.exception.spi.ViolatedConstraintNameExtractor getViolatedConstraintNameExtractor()
      Specified by:
      getViolatedConstraintNameExtractor in interface org.hibernate.exception.spi.ConversionContext
      Overrides:
      getViolatedConstraintNameExtractor in class org.hibernate.dialect.Dialect
    • supportsCurrentTimestampSelection

      public boolean supportsCurrentTimestampSelection()
      Overrides:
      supportsCurrentTimestampSelection in class org.hibernate.dialect.Dialect
    • isCurrentTimestampSelectStringCallable

      public boolean isCurrentTimestampSelectStringCallable()
      Overrides:
      isCurrentTimestampSelectStringCallable in class org.hibernate.dialect.Dialect
    • getCurrentTimestampSelectString

      public String getCurrentTimestampSelectString()
      Overrides:
      getCurrentTimestampSelectString in class org.hibernate.dialect.Dialect
    • getFallbackSqmMutationStrategy

      public org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy getFallbackSqmMutationStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)
      Overrides:
      getFallbackSqmMutationStrategy in class org.hibernate.dialect.Dialect
    • getFallbackSqmInsertStrategy

      public org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy getFallbackSqmInsertStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)
      Overrides:
      getFallbackSqmInsertStrategy in class org.hibernate.dialect.Dialect
    • getSupportedTemporaryTableKind

      public org.hibernate.dialect.temptable.TemporaryTableKind getSupportedTemporaryTableKind()
      Overrides:
      getSupportedTemporaryTableKind in class org.hibernate.dialect.Dialect
    • getTemporaryTableCreateOptions

      public String getTemporaryTableCreateOptions()
      Overrides:
      getTemporaryTableCreateOptions in class org.hibernate.dialect.Dialect
    • getTemporaryTableCreateCommand

      public String getTemporaryTableCreateCommand()
      Overrides:
      getTemporaryTableCreateCommand in class org.hibernate.dialect.Dialect
    • getTemporaryTableAfterUseAction

      public org.hibernate.query.sqm.mutation.internal.temptable.AfterUseAction getTemporaryTableAfterUseAction()
      Overrides:
      getTemporaryTableAfterUseAction in class org.hibernate.dialect.Dialect
    • getTemporaryTableBeforeUseAction

      public org.hibernate.query.sqm.mutation.internal.temptable.BeforeUseAction getTemporaryTableBeforeUseAction()
      Overrides:
      getTemporaryTableBeforeUseAction in class org.hibernate.dialect.Dialect
    • getCreateSchemaCommand

      public String[] getCreateSchemaCommand(String schemaName)
      Overrides:
      getCreateSchemaCommand in class org.hibernate.dialect.Dialect
    • getDropSchemaCommand

      public String[] getDropSchemaCommand(String schemaName)
      Overrides:
      getDropSchemaCommand in class org.hibernate.dialect.Dialect
    • useCrossReferenceForeignKeys

      public boolean useCrossReferenceForeignKeys()
      Overrides:
      useCrossReferenceForeignKeys in class org.hibernate.dialect.Dialect
    • getCrossReferenceParentTableFilter

      public String getCrossReferenceParentTableFilter()
      Overrides:
      getCrossReferenceParentTableFilter in class org.hibernate.dialect.Dialect
    • getUniqueDelegate

      public org.hibernate.dialect.unique.UniqueDelegate getUniqueDelegate()
      Overrides:
      getUniqueDelegate in class org.hibernate.dialect.Dialect
    • getIdentityColumnSupport

      public org.hibernate.dialect.identity.IdentityColumnSupport getIdentityColumnSupport()
      Overrides:
      getIdentityColumnSupport in class org.hibernate.dialect.Dialect
    • appendBooleanValueString

      public void appendBooleanValueString(org.hibernate.sql.ast.spi.SqlAppender appender, boolean bool)
      Overrides:
      appendBooleanValueString in class org.hibernate.dialect.Dialect
    • currentDate

      public String currentDate()
      Overrides:
      currentDate in class org.hibernate.dialect.Dialect
    • currentTimestamp

      public String currentTimestamp()
      Overrides:
      currentTimestamp in class org.hibernate.dialect.Dialect
    • appendDatetimeFormat

      public void appendDatetimeFormat(org.hibernate.sql.ast.spi.SqlAppender appender, String format)
      Overrides:
      appendDatetimeFormat in class org.hibernate.dialect.Dialect
    • datetimeFormat

      public static org.hibernate.dialect.Replacer datetimeFormat(String format)
    • getSelectClauseNullString

      public String getSelectClauseNullString(int sqlType, org.hibernate.type.spi.TypeConfiguration typeConfiguration)
      Overrides:
      getSelectClauseNullString in class org.hibernate.dialect.Dialect
    • getNoColumnsInsertString

      public String getNoColumnsInsertString()
      Overrides:
      getNoColumnsInsertString in class org.hibernate.dialect.Dialect