Class FirebirdDialect

  • All Implemented Interfaces:
    org.hibernate.exception.spi.ConversionContext

    public class FirebirdDialect
    extends org.hibernate.dialect.Dialect
    An SQL dialect for Firebird 2.0 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, NEW_LOCATOR_LOB_MERGE_STRATEGY, QUOTE, STANDARD_DEFAULT_BATCH_LOAD_SIZING_STRATEGY, STREAM_XFER_LOB_MERGE_STRATEGY
    • Constructor Summary

      Constructors 
      Constructor Description
      FirebirdDialect()  
      FirebirdDialect​(org.hibernate.dialect.DatabaseVersion version)  
      FirebirdDialect​(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info)  
    • Constructor Detail

      • FirebirdDialect

        public FirebirdDialect()
      • FirebirdDialect

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

        public FirebirdDialect​(org.hibernate.dialect.DatabaseVersion version)
    • Method Detail

      • getMaxVarcharLength

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

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

        public org.hibernate.dialect.DatabaseVersion getVersion()
        Overrides:
        getVersion in class org.hibernate.dialect.Dialect
      • getDefaultStatementBatchSize

        public int getDefaultStatementBatchSize()
        Overrides:
        getDefaultStatementBatchSize in class org.hibernate.dialect.Dialect
      • getTimeZoneSupport

        public org.hibernate.dialect.TimeZoneSupport getTimeZoneSupport()
        Overrides:
        getTimeZoneSupport in class org.hibernate.dialect.Dialect
      • resolveSqlTypeDescriptor

        public org.hibernate.type.descriptor.jdbc.JdbcType resolveSqlTypeDescriptor​(String columnTypeName,
                                                                                    int jdbcTypeCode,
                                                                                    int precision,
                                                                                    int scale,
                                                                                    org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry jdbcTypeRegistry)
        Overrides:
        resolveSqlTypeDescriptor in class org.hibernate.dialect.Dialect
      • getPreferredSqlTypeCodeForBoolean

        public int getPreferredSqlTypeCodeForBoolean()
        Overrides:
        getPreferredSqlTypeCodeForBoolean in class org.hibernate.dialect.Dialect
      • getTypeName

        public String getTypeName​(int code,
                                  org.hibernate.engine.jdbc.Size size)
                           throws org.hibernate.HibernateException
        Overrides:
        getTypeName in class org.hibernate.dialect.Dialect
        Throws:
        org.hibernate.HibernateException
      • getFloatPrecision

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

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

        public void initializeFunctionRegistry​(org.hibernate.query.spi.QueryEngine queryEngine)
        Overrides:
        initializeFunctionRegistry in class org.hibernate.dialect.Dialect
      • currentLocalTime

        public String currentLocalTime()
        Overrides:
        currentLocalTime in class org.hibernate.dialect.Dialect
      • currentLocalTimestamp

        public String currentLocalTimestamp()
        Overrides:
        currentLocalTimestamp in class org.hibernate.dialect.Dialect
      • getSqlAstTranslatorFactory

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

        public boolean supportsTruncateWithCast()
        Overrides:
        supportsTruncateWithCast in class org.hibernate.dialect.Dialect
      • castPattern

        public String castPattern​(org.hibernate.query.sqm.CastType from,
                                  org.hibernate.query.sqm.CastType to)
        Firebird 2.5 doesn't have a real Types.BOOLEAN type, so...
        Overrides:
        castPattern in class org.hibernate.dialect.Dialect
      • getFractionalSecondPrecisionInNanos

        public long getFractionalSecondPrecisionInNanos()
        Overrides:
        getFractionalSecondPrecisionInNanos in class org.hibernate.dialect.Dialect
      • extractPattern

        public String extractPattern​(org.hibernate.query.sqm.TemporalUnit unit)
        Firebird extract() function returns TemporalUnit.DAY_OF_WEEK numbered from 0 to 6, and TemporalUnit.DAY_OF_YEAR numbered for 0. This isn't consistent with what most other databases do, so here we adjust the result by generating (extract(unit,arg)+1)).
        Overrides:
        extractPattern in class org.hibernate.dialect.Dialect
      • timestampaddPattern

        public String timestampaddPattern​(org.hibernate.query.sqm.TemporalUnit unit,
                                          TemporalType temporalType,
                                          org.hibernate.query.sqm.IntervalType intervalType)
        Overrides:
        timestampaddPattern in class org.hibernate.dialect.Dialect
      • timestampdiffPattern

        public String timestampdiffPattern​(org.hibernate.query.sqm.TemporalUnit unit,
                                           TemporalType fromTemporalType,
                                           TemporalType toTemporalType)
        Overrides:
        timestampdiffPattern in class org.hibernate.dialect.Dialect
      • supportsTemporalLiteralOffset

        public boolean supportsTemporalLiteralOffset()
        Overrides:
        supportsTemporalLiteralOffset in class org.hibernate.dialect.Dialect
      • getDefaultDecimalPrecision

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

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

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

        public int getMaxAliasLength()
        Overrides:
        getMaxAliasLength in class org.hibernate.dialect.Dialect
      • getMaxIdentifierLength

        public int getMaxIdentifierLength()
        Overrides:
        getMaxIdentifierLength in class org.hibernate.dialect.Dialect
      • buildIdentifierHelper

        public org.hibernate.engine.jdbc.env.spi.IdentifierHelper buildIdentifierHelper​(org.hibernate.engine.jdbc.env.spi.IdentifierHelperBuilder builder,
                                                                                        DatabaseMetaData dbMetaData)
                                                                                 throws SQLException
        Overrides:
        buildIdentifierHelper in class org.hibernate.dialect.Dialect
        Throws:
        SQLException
      • canCreateSchema

        public boolean canCreateSchema()
        Overrides:
        canCreateSchema 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
      • qualifyIndexName

        public boolean qualifyIndexName()
        Overrides:
        qualifyIndexName in class org.hibernate.dialect.Dialect
      • supportsCommentOn

        public boolean supportsCommentOn()
        Overrides:
        supportsCommentOn in class org.hibernate.dialect.Dialect
      • supportsLobValueChangePropagation

        public boolean supportsLobValueChangePropagation()
        Overrides:
        supportsLobValueChangePropagation in class org.hibernate.dialect.Dialect
      • supportsUnboundedLobLocatorMaterialization

        public boolean supportsUnboundedLobLocatorMaterialization()
        Overrides:
        supportsUnboundedLobLocatorMaterialization in class org.hibernate.dialect.Dialect
      • supportsTupleDistinctCounts

        public boolean supportsTupleDistinctCounts()
        Overrides:
        supportsTupleDistinctCounts in class org.hibernate.dialect.Dialect
      • getInExpressionCountLimit

        public int getInExpressionCountLimit()
        Overrides:
        getInExpressionCountLimit in class org.hibernate.dialect.Dialect
      • supportsExistsInSelect

        public boolean supportsExistsInSelect()
        Overrides:
        supportsExistsInSelect in class org.hibernate.dialect.Dialect
      • supportsPartitionBy

        public boolean supportsPartitionBy()
        Overrides:
        supportsPartitionBy 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
      • getIdentityColumnSupport

        public org.hibernate.dialect.identity.IdentityColumnSupport getIdentityColumnSupport()
        Overrides:
        getIdentityColumnSupport 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
      • getForUpdateString

        public String getForUpdateString()
        Overrides:
        getForUpdateString in class org.hibernate.dialect.Dialect
      • getLimitHandler

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

        public String getSelectGUIDString()
        Overrides:
        getSelectGUIDString in class org.hibernate.dialect.Dialect
      • supportsLockTimeouts

        public boolean supportsLockTimeouts()
        Overrides:
        supportsLockTimeouts in class org.hibernate.dialect.Dialect
      • supportsOuterJoinForUpdate

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

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

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

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

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

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

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

        public boolean supportsValuesListForInsert()
        Overrides:
        supportsValuesListForInsert 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
      • translateExtractField

        public String translateExtractField​(org.hibernate.query.sqm.TemporalUnit unit)
        Overrides:
        translateExtractField in class org.hibernate.dialect.Dialect
      • appendDateTimeLiteral

        public void appendDateTimeLiteral​(org.hibernate.sql.ast.spi.SqlAppender appender,
                                          TemporalAccessor temporalAccessor,
                                          TemporalType precision,
                                          TimeZone jdbcTimeZone)
        Overrides:
        appendDateTimeLiteral in class org.hibernate.dialect.Dialect
      • appendDateTimeLiteral

        public void appendDateTimeLiteral​(org.hibernate.sql.ast.spi.SqlAppender appender,
                                          Date date,
                                          TemporalType precision,
                                          TimeZone jdbcTimeZone)
        Overrides:
        appendDateTimeLiteral in class org.hibernate.dialect.Dialect
      • appendDateTimeLiteral

        public void appendDateTimeLiteral​(org.hibernate.sql.ast.spi.SqlAppender appender,
                                          Calendar calendar,
                                          TemporalType precision,
                                          TimeZone jdbcTimeZone)
        Overrides:
        appendDateTimeLiteral 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
      • 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
      • buildSQLExceptionConversionDelegate

        public org.hibernate.exception.spi.SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate()
        Overrides:
        buildSQLExceptionConversionDelegate in class org.hibernate.dialect.Dialect
      • getFallbackSqmMutationStrategy

        public org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy getFallbackSqmMutationStrategy​(org.hibernate.metamodel.mapping.EntityMappingType entityDescriptor,
                                                                                                                 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 entityDescriptor,
                                                                                                             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