Package org.hibernate.community.dialect
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
- Direct Known Subclasses:
Informix10Dialect
public class InformixDialect extends org.hibernate.dialect.DialectDialect for Informix 7.31.UD3 with Informix JDBC driver 2.21JC3 and above.
-
-
Constructor Summary
Constructors Constructor Description InformixDialect()InformixDialect(org.hibernate.dialect.DatabaseVersion version)Creates newInformixDialectinstance.InformixDialect(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappendBooleanValueString(org.hibernate.sql.ast.spi.SqlAppender appender, boolean bool)voidappendDatetimeFormat(org.hibernate.sql.ast.spi.SqlAppender appender, String format)protected StringcolumnType(int sqlTypeCode)StringcurrentDate()StringcurrentTimestamp()static org.hibernate.dialect.ReplacerdatetimeFormat(String format)StringextractPattern(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.StringgetAddColumnString()StringgetAddForeignKeyConstraintString(String constraintName, String foreignKeyDefinition)StringgetAddForeignKeyConstraintString(String constraintName, String[] foreignKey, String referencedTable, String[] primaryKey, boolean referencesPrimaryKey)Informix constraint name must be at the end.StringgetAddPrimaryKeyConstraintString(String constraintName)Informix constraint name must be at the end.StringgetCurrentTimestampSelectString()intgetDefaultDecimalPrecision()intgetDefaultTimestampPrecision()org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategygetFallbackSqmInsertStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategygetFallbackSqmMutationStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)org.hibernate.dialect.identity.IdentityColumnSupportgetIdentityColumnSupport()org.hibernate.dialect.pagination.LimitHandlergetLimitHandler()intgetMaxVarbinaryLength()intgetMaxVarcharLength()StringgetQuerySequencesString()org.hibernate.tool.schema.extract.spi.SequenceInformationExtractorgetSequenceInformationExtractor()org.hibernate.dialect.sequence.SequenceSupportgetSequenceSupport()org.hibernate.sql.ast.SqlAstTranslatorFactorygetSqlAstTranslatorFactory()org.hibernate.query.sqm.sql.SqmTranslatorFactorygetSqmTranslatorFactory()org.hibernate.dialect.temptable.TemporaryTableKindgetSupportedTemporaryTableKind()org.hibernate.query.sqm.mutation.internal.temptable.AfterUseActiongetTemporaryTableAfterUseAction()org.hibernate.query.sqm.mutation.internal.temptable.BeforeUseActiongetTemporaryTableBeforeUseAction()StringgetTemporaryTableCreateCommand()StringgetTemporaryTableCreateOptions()org.hibernate.dialect.unique.UniqueDelegategetUniqueDelegate()org.hibernate.exception.spi.ViolatedConstraintNameExtractorgetViolatedConstraintNameExtractor()voidinitializeFunctionRegistry(org.hibernate.boot.model.FunctionContributions functionContributions)booleanisCurrentTimestampSelectStringCallable()protected voidregisterColumnTypes(org.hibernate.boot.model.TypeContributions typeContributions, org.hibernate.service.ServiceRegistry serviceRegistry)booleansupportsCurrentTimestampSelection()booleansupportsLateral()booleansupportsOrderByInSubquery()booleansupportsWindowFunctions()booleanuseMaterializedLobWhenCapacityExceeded()-
Methods inherited from class org.hibernate.dialect.Dialect
addSqlHintOrComment, appendArrayLiteral, appendBinaryLiteral, 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, dropConstraints, equivalentTypes, escapeComment, forceLobAsLastValue, generatedAs, getAddColumnSuffixString, getAggregateSupport, getAlterColumnTypeString, getAlterTableString, getArrayTypeName, getAuxiliaryDatabaseObjectExporter, getBatchLoadSizingStrategy, getCallableStatementSupport, getCascadeConstraintsString, getCaseInsensitiveLike, getCheckCondition, getCheckCondition, getColumnAliasExtractor, getColumnComment, getCreateCatalogCommand, getCreateIndexString, getCreateIndexTail, getCreateMultisetTableString, getCreateSchemaCommand, getCreateTableString, getCreateTemporaryTableColumnAnnotation, getCreateUserDefinedTypeExtensionsString, getCreateUserDefinedTypeKindString, getCurrentSchemaCommand, getDefaultLobLength, getDefaultNonContextualLobCreation, getDefaultProperties, getDefaultStatementBatchSize, getDefaultUseGetGeneratedKeys, getDisableConstraintsStatement, getDisableConstraintStatement, getDmlTargetColumnQualifierSupport, getDoublePrecision, getDropCatalogCommand, getDropForeignKeyString, getDropSchemaCommand, getDropTableString, getDropUniqueKeyString, getEnableConstraintsStatement, getEnableConstraintStatement, getEnumTypeDeclaration, getFallbackSchemaManagementTool, getFloatPrecision, getForeignKeyExporter, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateSkipLockedString, getForUpdateSkipLockedString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFractionalSecondPrecisionInNanos, getGroupBySelectItemReferenceStrategy, getHqlTranslator, getIndexExporter, getInExpressionCountLimit, getKeywords, getLobMergeStrategy, getLockingStrategy, getLockRowIdentifier, getLowercaseFunction, getMaxAliasLength, getMaxIdentifierLength, getMaxNVarcharCapacity, getMaxNVarcharLength, getMaxVarbinaryCapacity, getMaxVarcharCapacity, getMinimumSupportedVersion, getMultiKeyLoadSizingStrategy, getNameQualifierSupport, getNationalizationSupport, getNativeIdentifierGenerationType, getNativeIdentifierGeneratorStrategy, getNativeParameterMarkerStrategy, getNoColumnsInsertString, getNullColumnString, getNullColumnString, getNullOrdering, getParameterCountLimit, getPreferredSqlTypeCodeForArray, getPreferredSqlTypeCodeForBoolean, getQueryHintString, getQueryHintString, getReadLockString, getReadLockString, getReadRowLockStrategy, getResultSet, getResultSet, getResultSet, getRowIdColumnString, getSchemaNameResolver, getSelectClauseNullString, 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, inlineLiteral, isAnsiNullOn, isEmptyStringTreatedAsNull, isJdbcLogWarningsEnabledByDefault, isLob, isLockTimeoutParameterized, openQuote, ordinal, prependComment, qualifyIndexName, quote, registerDefaultKeywords, registerKeyword, registerKeywords, registerResultSetOutParameter, registerResultSetOutParameter, requiresCastForConcatenatingNonStrings, requiresFloatCastingOfIntegerDivision, requiresParensForTupleCounts, requiresParensForTupleDistinctCounts, resolveSqlTypeCode, resolveSqlTypeCode, resolveSqlTypeDescriptor, resolveSqlTypeLength, rowId, rowIdSqlType, supportsAlterColumnType, supportsBindAsCallableArgument, supportsBitType, supportsCascadeDelete, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsDistinctFromPredicate, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsFetchClause, supportsFractionalTimestampArithmetic, supportsIfExistsAfterAlterTable, supportsIfExistsAfterConstraintName, supportsIfExistsAfterTableName, supportsIfExistsAfterTypeName, supportsIfExistsBeforeConstraintName, supportsIfExistsBeforeTableName, supportsIfExistsBeforeTypeName, supportsInsertReturning, supportsInsertReturningGeneratedKeys, supportsJdbcConnectionLobCreation, supportsLobValueChangePropagation, supportsLockTimeouts, supportsMaterializedLobAccess, supportsNamedParameters, supportsNoColumnsInsert, supportsNonQueryWithCTE, supportsNoWait, supportsNullPrecedence, supportsOffsetInSubquery, supportsOrdinalSelectItemReference, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsPartitionBy, supportsPredicateAsExpression, supportsRecursiveCTE, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsSkipLocked, supportsStandardArrays, supportsStandardCurrentTimestampFunction, supportsSubqueryInSelect, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTemporalLiteralOffset, supportsTemporaryTablePrimaryKey, supportsTemporaryTables, supportsTruncateWithCast, supportsTupleCounts, supportsTupleDistinctCounts, supportsUnboundedLobLocatorMaterialization, supportsUnionAll, supportsUnionInSubquery, supportsValuesList, supportsValuesListForInsert, supportsWait, timestampaddPattern, timestampdiffPattern, toBooleanValueString, toQuotedIdentifier, toString, transformSelectString, translateDurationField, translateExtractField, trimPattern, useArrayForMultiValuedParameters, useFollowOnLocking, useInputStreamToInsertBlob
-
-
-
-
Constructor Detail
-
InformixDialect
public InformixDialect(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info)
-
InformixDialect
public InformixDialect()
-
InformixDialect
public InformixDialect(org.hibernate.dialect.DatabaseVersion version)
Creates newInformixDialectinstance. Sets up the JDBC / Informix type mappings.
-
-
Method Detail
-
columnType
protected String columnType(int sqlTypeCode)
- Overrides:
columnTypein classorg.hibernate.dialect.Dialect
-
registerColumnTypes
protected void registerColumnTypes(org.hibernate.boot.model.TypeContributions typeContributions, org.hibernate.service.ServiceRegistry serviceRegistry)- Overrides:
registerColumnTypesin classorg.hibernate.dialect.Dialect
-
useMaterializedLobWhenCapacityExceeded
public boolean useMaterializedLobWhenCapacityExceeded()
- Overrides:
useMaterializedLobWhenCapacityExceededin classorg.hibernate.dialect.Dialect
-
getMaxVarbinaryLength
public int getMaxVarbinaryLength()
- Overrides:
getMaxVarbinaryLengthin classorg.hibernate.dialect.Dialect
-
getMaxVarcharLength
public int getMaxVarcharLength()
- Overrides:
getMaxVarcharLengthin classorg.hibernate.dialect.Dialect
-
getDefaultDecimalPrecision
public int getDefaultDecimalPrecision()
- Overrides:
getDefaultDecimalPrecisionin classorg.hibernate.dialect.Dialect
-
getDefaultTimestampPrecision
public int getDefaultTimestampPrecision()
- Overrides:
getDefaultTimestampPrecisionin classorg.hibernate.dialect.Dialect
-
initializeFunctionRegistry
public void initializeFunctionRegistry(org.hibernate.boot.model.FunctionContributions functionContributions)
- Overrides:
initializeFunctionRegistryin classorg.hibernate.dialect.Dialect
-
getSqmTranslatorFactory
public org.hibernate.query.sqm.sql.SqmTranslatorFactory getSqmTranslatorFactory()
- Overrides:
getSqmTranslatorFactoryin classorg.hibernate.dialect.Dialect
-
getSqlAstTranslatorFactory
public org.hibernate.sql.ast.SqlAstTranslatorFactory getSqlAstTranslatorFactory()
- Overrides:
getSqlAstTranslatorFactoryin classorg.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 areTemporalUnit.HOUR,TemporalUnit.MINUTE,TemporalUnit.SECOND,TemporalUnit.DAY,TemporalUnit.MONTH,TemporalUnit.YEAR,TemporalUnit.QUARTER,TemporalUnit.DAY_OF_MONTH,TemporalUnit.DAY_OF_WEEK.- Overrides:
extractPatternin classorg.hibernate.dialect.Dialect
-
getAddColumnString
public String getAddColumnString()
- Overrides:
getAddColumnStringin classorg.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:
getAddForeignKeyConstraintStringin classorg.hibernate.dialect.Dialect
-
getAddForeignKeyConstraintString
public String getAddForeignKeyConstraintString(String constraintName, String foreignKeyDefinition)
- Overrides:
getAddForeignKeyConstraintStringin classorg.hibernate.dialect.Dialect
-
getAddPrimaryKeyConstraintString
public String getAddPrimaryKeyConstraintString(String constraintName)
Informix constraint name must be at the end.- Overrides:
getAddPrimaryKeyConstraintStringin classorg.hibernate.dialect.Dialect
-
getSequenceSupport
public org.hibernate.dialect.sequence.SequenceSupport getSequenceSupport()
- Overrides:
getSequenceSupportin classorg.hibernate.dialect.Dialect
-
getQuerySequencesString
public String getQuerySequencesString()
- Overrides:
getQuerySequencesStringin classorg.hibernate.dialect.Dialect
-
getSequenceInformationExtractor
public org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor getSequenceInformationExtractor()
- Overrides:
getSequenceInformationExtractorin classorg.hibernate.dialect.Dialect
-
getLimitHandler
public org.hibernate.dialect.pagination.LimitHandler getLimitHandler()
- Overrides:
getLimitHandlerin classorg.hibernate.dialect.Dialect
-
supportsOrderByInSubquery
public boolean supportsOrderByInSubquery()
- Overrides:
supportsOrderByInSubqueryin classorg.hibernate.dialect.Dialect
-
supportsWindowFunctions
public boolean supportsWindowFunctions()
- Overrides:
supportsWindowFunctionsin classorg.hibernate.dialect.Dialect
-
supportsLateral
public boolean supportsLateral()
- Overrides:
supportsLateralin classorg.hibernate.dialect.Dialect
-
getViolatedConstraintNameExtractor
public org.hibernate.exception.spi.ViolatedConstraintNameExtractor getViolatedConstraintNameExtractor()
- Specified by:
getViolatedConstraintNameExtractorin interfaceorg.hibernate.exception.spi.ConversionContext- Overrides:
getViolatedConstraintNameExtractorin classorg.hibernate.dialect.Dialect
-
supportsCurrentTimestampSelection
public boolean supportsCurrentTimestampSelection()
- Overrides:
supportsCurrentTimestampSelectionin classorg.hibernate.dialect.Dialect
-
isCurrentTimestampSelectStringCallable
public boolean isCurrentTimestampSelectStringCallable()
- Overrides:
isCurrentTimestampSelectStringCallablein classorg.hibernate.dialect.Dialect
-
getCurrentTimestampSelectString
public String getCurrentTimestampSelectString()
- Overrides:
getCurrentTimestampSelectStringin classorg.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:
getFallbackSqmMutationStrategyin classorg.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:
getFallbackSqmInsertStrategyin classorg.hibernate.dialect.Dialect
-
getSupportedTemporaryTableKind
public org.hibernate.dialect.temptable.TemporaryTableKind getSupportedTemporaryTableKind()
- Overrides:
getSupportedTemporaryTableKindin classorg.hibernate.dialect.Dialect
-
getTemporaryTableCreateOptions
public String getTemporaryTableCreateOptions()
- Overrides:
getTemporaryTableCreateOptionsin classorg.hibernate.dialect.Dialect
-
getTemporaryTableCreateCommand
public String getTemporaryTableCreateCommand()
- Overrides:
getTemporaryTableCreateCommandin classorg.hibernate.dialect.Dialect
-
getTemporaryTableAfterUseAction
public org.hibernate.query.sqm.mutation.internal.temptable.AfterUseAction getTemporaryTableAfterUseAction()
- Overrides:
getTemporaryTableAfterUseActionin classorg.hibernate.dialect.Dialect
-
getTemporaryTableBeforeUseAction
public org.hibernate.query.sqm.mutation.internal.temptable.BeforeUseAction getTemporaryTableBeforeUseAction()
- Overrides:
getTemporaryTableBeforeUseActionin classorg.hibernate.dialect.Dialect
-
getUniqueDelegate
public org.hibernate.dialect.unique.UniqueDelegate getUniqueDelegate()
- Overrides:
getUniqueDelegatein classorg.hibernate.dialect.Dialect
-
getIdentityColumnSupport
public org.hibernate.dialect.identity.IdentityColumnSupport getIdentityColumnSupport()
- Overrides:
getIdentityColumnSupportin classorg.hibernate.dialect.Dialect
-
appendBooleanValueString
public void appendBooleanValueString(org.hibernate.sql.ast.spi.SqlAppender appender, boolean bool)- Overrides:
appendBooleanValueStringin classorg.hibernate.dialect.Dialect
-
currentDate
public String currentDate()
- Overrides:
currentDatein classorg.hibernate.dialect.Dialect
-
currentTimestamp
public String currentTimestamp()
- Overrides:
currentTimestampin classorg.hibernate.dialect.Dialect
-
appendDatetimeFormat
public void appendDatetimeFormat(org.hibernate.sql.ast.spi.SqlAppender appender, String format)- Overrides:
appendDatetimeFormatin classorg.hibernate.dialect.Dialect
-
datetimeFormat
public static org.hibernate.dialect.Replacer datetimeFormat(String format)
-
-