Class HSQLDialect
- All Implemented Interfaces:
CheckConstraintSupport, ForeignKeySupport, IdentifierSupport, KeywordSupport, LiteralSupport, AlterTableSupport, ColumnDefinitionSupport, ConstraintControlSupport, IndexDdlSupport, TableCreationSupport, TruncateSupport, CurrentTemporalSupport, TemporalFormatSupport, TemporalOperationSupport, ConversionContext
This dialect does not support HSQLDB's MVCC transaction control mode.
Please refer to the HyperSQL User Guide.
-
Field Summary
Fields inherited from class Dialect
LEGACY_LOB_MERGE_STRATEGY, NEW_LOCATOR_LOB_MERGE_STRATEGY, STANDARD_MULTI_KEY_LOAD_SIZING_STRATEGY, STREAM_XFER_LOB_MERGE_STRATEGYFields inherited from interface ConstraintControlSupport
NONEFields inherited from interface TruncateSupport
STANDARD -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionalterColumnType(AlterColumnTypeRequest request) voidappendBooleanValueString(SqlAppender appender, boolean bool) Append a SQL Boolean literal expression.voidappendFormat(SqlAppender appender, String format) Append the database translation of the supplied Hibernate format pattern.Build and supply the configured identifier helper from the stable JDBC metadata snapshot and selected keyword strategy.Supplies vendor-specific SQL-exception conversion for this Dialect.castPattern(CastType from, CastType to) Obtain a pattern for the SQL equivalent to acast()function call.booleancausesRollback(SQLException sqlException) Determine whether this database marks the current transaction for rollback after the given statement failure.protected StringcolumnType(int sqlTypeCode) protected voidcontributeDefaultProperties(Properties properties) Contribute provider configuration defaults after Dialect construction.protected voidcontributeKeywords(KeywordRegistration registration) Contribute ANSI and database-specific SQL keywords.Creates the JDBC mutation operation for an optional-table update.Render the current SQL time expression used forjava.sql.Time.Render the current SQL timestamp expression used forjava.sql.Timestamp.Render the current timestamp-with-time-zone expression.extractPattern(TemporalUnit unit) Return an extraction pattern containing?1for the field and?2for the value.The independent array syntax and multi-valued parameter-binding behavior of this Dialect.The common-table-expression capabilities of this Dialect.Supply current temporal expressions and database-side timestamp retrieval.Select the JDBC command used for database-side current timestamp retrieval, or returnnullwhen the database offers no supported command.Supplies the preferred default ordinality-column name for a set-returning function.The qualifier form accepted for target-column references in update and delete statements.Supplies the expression-coercion adaptations required by this database.The database's support for recognizing primary-key functional dependency ingroup byandorder byclauses.Supplies this Dialect's global temporary-table strategy.Supply the stable identity-column DDL, insert syntax, and identity-specific retrieval behavior for this Dialect.Supply existence-check placement for schema DDL targets.Supplies execution-time pagination for already-rendered SQL requested byQuery.setMaxResults(int)orQuery.setFirstResult(int).Supplies this Dialect's local temporary-table strategy.Supplies the cohesive pessimistic-locking profile for this Dialect.protected intHSQLDB doesn't support thegenerate_seriesfunction orlateralrecursive CTEs, so it has to be emulated with a top level recursive CTE which requires an upper bound on the amount of elements that the series can return.protected DatabaseVersionGet the version of the SQL dialect that is the minimum supported by this implementation.Select the Hibernate-owned fallback families used for SQM update/delete and insert operations targeting entities mapped to multiple tables.Supply catalog and schema qualification support, or returnnullto useDatabaseMetaData.Supply catalog and schema lifecycle behavior to schema tooling.Supply the database's default null ordering and explicit null-precedence syntax capabilities.The database's native predicate syntax and predicate-placement profile.The native row-value syntax of this Dialect.Supply schema-export support for comments attached to database objects.Supply schema-drop composition and ordered pre-drop commands.getSelectClauseNullString(SqlTypedMapping sqlTypeMapping, TypeConfiguration typeConfiguration) Render the complete typed-null select-item expression for one arm of a union query.Supply the strategy Hibernate uses to discover existing database sequences and their metadata.Supplies the complete sequence value-expression and lifecycle-DDL strategy for this Dialect.Supply the SQL renderings used for a reusable single-row table and for an otherwise table-less select.Supply the factory for this Dialect's single-use SQL AST translators.Supplies the database's supported subquery placements.Supply datetime-format translation.Supply extraction and timestamp-arithmetic syntax.Supply temporal precision-adjustment and literal-offset semantics.Supplies the database syntax for ordinary and distinct tuple counts.Supply the stable strategy used for unique-key representation and DDL.The contexts in which this Dialect supports native multi-rowvaluessyntax.Supplies the extractor used to recover violated constraint names from database exceptions.voidinitializeFunctionRegistry(FunctionContributions functionContributions) Contribute the database-specific function descriptors after independent function contributors have run.quoteCollation(String collation) Render a collation name used in a column definition.protected static voidregisterArrayFunctions(CommonFunctionFactory functionFactory) protected IntegerresolveSqlTypeCode(String typeName, String baseTypeName, TypeConfiguration typeConfiguration) Resolve a database-reported type using both its complete and normalized base names.booleanWhether this database supports native aggregatefilter (where ...)syntax.timestampaddPattern(TemporalUnit unit, TemporalType temporalType, IntervalType intervalType) Return a timestamp-add pattern containing?1,?2, and?3.timestampdiffPattern(TemporalUnit unit, TemporalType fromTemporalType, TemporalType toTemporalType) Return a timestamp-difference pattern containing?1,?2, and?3.Translate an extraction field name.Methods inherited from class Dialect
addPartitionKeyToPrimaryKey, appendArrayLiteral, appendDateTimeLiteral, appendDateTimeLiteral, appendDateTimeLiteral, augmentPhysicalTableTypes, augmentRecognizedTableTypes, buildLockingClauseStrategy, buildStringToBooleanCast, buildStringToBooleanCastDecode, castType, constraintControlMode, contributeTypes, defaultScrollMode, determineDatabaseVersion, equivalentTypes, getAggregateSupport, getAlterTableSupport, getArrayTypeName, getBatchLoadSizingStrategy, getCallableStatementSupport, getCatalogSeparator, getCheckConstraintSupport, getColumnAliasExtractor, getColumnDefinitionSupport, getConstraintControlSupport, getDefaultProperties, getDirectJavaTimeJdbcSupport, getEntityLockingStrategyFactory, getEnumSupport, getFetchClauseSupport, getForeignKeyExporter, getForeignKeySupport, getGeneratedValuesSupport, getIdentifierSupport, getIndexDdlSupport, getIndexExporter, getInformationExtractor, getJdbcMetadataOverrides, getKeywords, getKeywordSupport, getLiteralSupport, getLobMergeStrategy, getLobSupport, getLockingClauseStrategy, getLowercaseFunction, getMultiKeyLoadSizingStrategy, getMutationSyntaxSupport, getNationalizationSupport, getNativeParameterMarkerStrategy, getNativeValueGenerationStrategy, getObjectNullBindingStrategy, getParameterLimits, getPersistentTemporaryTableStrategy, getPreferredSqlTypeCodeForArray, getPreferredSqlTypeCodeForBoolean, getQueryHintPlacement, getQueryHintString, getQueryHintString, getRefCursorSupportFactory, getRowIdSupport, getRowLevelSecurity, getSchemaNameResolver, getSequenceExporter, getSetOperationSupport, getSetOperatorSqlString, getSizeStrategy, getStringValueSemantics, getSyntheticTableGroupSupport, getTableCleaner, getTableCreationSupport, getTableExporter, getTableMigrator, getTemporalTableSupport, getTemporaryTableExporter, getTimeZoneSupport, getTruncateSupport, getTypeSizingProfile, getUserDefinedTypeExporter, getVersion, getWindowFunctionSupport, isJdbcLogWarningsEnabledByDefault, narrowCastType, registerColumnTypes, resolveSqlTypeCode, resolveSqlTypeDescriptor, resolveSqlTypeLength, supportsCrossJoin, supportsNationalizedMethods, supportsOrdinalSelectItemReference, supportsUserDefinedTypes, throttleDdl, toString, trimPattern, truncateModeMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface AlterTableSupport
addColumnPrefix, addColumnSuffix, alterTableCommandMethods inherited from interface CheckConstraintSupport
render, supportsMethods inherited from interface ColumnDefinitionSupport
appendDefinitionMethods inherited from interface ConstraintControlSupport
disableCommands, disableConstraintCommands, enableCommands, enableConstraintCommandsMethods inherited from interface CurrentTemporalSupport
currentDate, currentLocalTime, currentLocalTimestamp, isCurrentTimestampStable, usesStandardCurrentTimestampFunctionMethods inherited from interface ForeignKeySupport
renderAddConstraint, renderDropConstraint, requiresSelfReferentialForeignKeyNullification, supportsAlterTableConstraints, supportsOnDeleteActionMethods inherited from interface IdentifierSupport
closeQuote, getMaxAliasLength, getMaxIdentifierLength, openQuote, quote, toQuotedIdentifierMethods inherited from interface IndexDdlSupport
createCommand, createTail, nameQualificationMethods inherited from interface KeywordSupport
acceptsJdbcKeywordMethods inherited from interface LiteralSupport
appendBinaryLiteral, appendIntervalLiteral, appendIntervalLiteral, appendLiteral, appendUUIDLiteral, toBooleanValueStringMethods inherited from interface TableCreationSupport
createTableCommand, requiresViewColumnList, tableCreationOptionsMethods inherited from interface TemporalOperationSupport
fractionalSecondPrecisionInNanos, translateDurationFieldMethods inherited from interface TruncateSupport
renderCommands
-
Constructor Details
-
HSQLDialect
-
HSQLDialect
public HSQLDialect() -
HSQLDialect
-
-
Method Details
-
getTemporalOperationSupport
Description copied from class:DialectSupply extraction and timestamp-arithmetic syntax. Return one stable, non-null, thread-safe implementation. Providers may implementTemporalOperationSupportdirectly and returnthis.- Overrides:
getTemporalOperationSupportin classDialect- See Also:
-
getTemporalFormatSupport
Description copied from class:DialectSupply datetime-format translation. Return one stable, non-null, thread-safe implementation.- Overrides:
getTemporalFormatSupportin classDialect- See Also:
-
getCurrentTemporalSupport
Description copied from class:DialectSupply current temporal expressions and database-side timestamp retrieval. Return one stable, non-null, thread-safe implementation. Providers may implementCurrentTemporalSupportdirectly and returnthis.- Overrides:
getCurrentTemporalSupportin classDialect- See Also:
-
getMinimumSupportedVersion
Description copied from class:DialectGet the version of the SQL dialect that is the minimum supported by this implementation.This method is called during superclass construction. Implementations must return construction-safe immutable data and must not depend on subclass initialization.
- Overrides:
getMinimumSupportedVersionin classDialect
-
contributeKeywords
Description copied from class:DialectContribute ANSI and database-specific SQL keywords.
Invoke
superfirst to retain the SQL:2003 words. Omittingsuperdeliberately replaces the inherited keyword profile. Register words only during this callback and do not retain the registration target.- Overrides:
contributeKeywordsin classDialect- Parameters:
registration- the scoped keyword target
-
columnType
Description copied from class:DialectReturn the complete database column declaration pattern for a JDBC
Typesor HibernateSqlTypescode used during type registration.Use only
$l,$p, and$sfor length, precision, and scale. Define distinct mappings for theLONG32codes; the JDBCLONGsynonyms are normalized before this hook. Delegate unknown inherited codes to the superclass so its standard exception remains authoritative.- Overrides:
columnTypein classDialect
-
resolveSqlTypeCode
@SPI({USE,IMPLEMENT}) protected Integer resolveSqlTypeCode(String typeName, String baseTypeName, TypeConfiguration typeConfiguration) Description copied from class:DialectResolve a database-reported type using both its complete and normalized base names. Return null when neither identifies a registered type.- Overrides:
resolveSqlTypeCodein classDialect
-
contributeDefaultProperties
Description copied from class:DialectContribute provider configuration defaults after Dialect construction.
Invoke
superfirst to extend the inherited defaults. Omittingsuperdeliberately replaces them. Mutate the supplied isolated property bag only during this callback; do not retain it or callDialect.getDefaultProperties()from a Dialect constructor.- Overrides:
contributeDefaultPropertiesin classDialect- Parameters:
properties- the isolated contribution target
-
initializeFunctionRegistry
@SPI({IMPLEMENT,SUPPLY}) public void initializeFunctionRegistry(FunctionContributions functionContributions) Description copied from class:DialectContribute the database-specific function descriptors after independent function contributors have run.
Override this callback to extend or replace the inherited function set. Invoke
superfirst to retain Hibernate's standard and emulated registrations; omitting it deliberately replaces that set. Mutate the supplied boot-scoped function registry only during this callback, and do not retain the contribution context or registry afterward. Implement an independentFunctionContributorinstead when the contribution is not owned by a Dialect.- Overrides:
initializeFunctionRegistryin classDialect- Parameters:
functionContributions- the Hibernate-supplied function contribution target- See Also:
-
registerArrayFunctions
-
getMaximumSeriesSize
protected int getMaximumSeriesSize()HSQLDB doesn't support thegenerate_seriesfunction orlateralrecursive CTEs, so it has to be emulated with a top level recursive CTE which requires an upper bound on the amount of elements that the series can return. -
getDefaultOrdinalityColumnName
Description copied from class:DialectSupplies the preferred default ordinality-column name for a set-returning function.
Return a stable, unqualified SQL column name, or
nullwhen the database does not define a preferred name. Hibernate usesias the fallback and applies collision suffixing where necessary. A null result does not mean that set-returning functions are unsupported.- Overrides:
getDefaultOrdinalityColumnNamein classDialect- Returns:
- the preferred unqualified name, or
nullto use Hibernate's fallback
-
currentTime
Description copied from interface:CurrentTemporalSupportRender the current SQL time expression used forjava.sql.Time.- Specified by:
currentTimein interfaceCurrentTemporalSupport
-
currentTimestamp
Description copied from interface:CurrentTemporalSupportRender the current SQL timestamp expression used forjava.sql.Timestamp.- Specified by:
currentTimestampin interfaceCurrentTemporalSupport
-
currentTimestampWithTimeZone
Description copied from interface:CurrentTemporalSupportRender the current timestamp-with-time-zone expression.- Specified by:
currentTimestampWithTimeZonein interfaceCurrentTemporalSupport
-
getSqlAstTranslatorFactory
Description copied from class:DialectSupply the factory for this Dialect's single-use SQL AST translators.
Return
nullto useStandardSqlAstTranslatorFactory. A custom Dialect should normally return a reusable factory derived from that class and create translators derived fromAbstractSqlAstTranslatoror an appropriate supported family base. The factory must not retain translation requests, and every translator it returns is used for one translation.- Overrides:
getSqlAstTranslatorFactoryin classDialect- See Also:
-
castPattern
Description copied from class:DialectObtain a pattern for the SQL equivalent to acast()function call. The resulting pattern must contain ?1 and ?2 placeholders for the arguments.- Overrides:
castPatternin classDialect- Parameters:
from- aCastTypeindicating the type of the value argumentto- aCastTypeindicating the type the value argument is cast to
-
timestampaddPattern
@SPI({USE,IMPLEMENT}) public String timestampaddPattern(TemporalUnit unit, TemporalType temporalType, IntervalType intervalType) Description copied from interface:TemporalOperationSupportReturn a timestamp-add pattern containing?1,?2, and?3.- Specified by:
timestampaddPatternin interfaceTemporalOperationSupport
-
timestampdiffPattern
@SPI({USE,IMPLEMENT}) public String timestampdiffPattern(TemporalUnit unit, TemporalType fromTemporalType, TemporalType toTemporalType) Description copied from interface:TemporalOperationSupportReturn a timestamp-difference pattern containing?1,?2, and?3.- Specified by:
timestampdiffPatternin interfaceTemporalOperationSupport
-
extractPattern
Description copied from interface:TemporalOperationSupportReturn an extraction pattern containing?1for the field and?2for the value.- Specified by:
extractPatternin interfaceTemporalOperationSupport
-
getPredicateSupport
Description copied from class:DialectThe database's native predicate syntax and predicate-placement profile.
Override this method to supply independent support for a native case-insensitive-
likeoperator, scalardistinct from, truthness predicates, and predicates used as value expressions. An absent case-insensitive-likeoperator selects Hibernate's lowercase-expression emulation. Return one immutable, non-null profile whose values remain stable for the lifetime of this Dialect; do not override individual consumers to reproduce these decisions.- Overrides:
getPredicateSupportin classDialect- Returns:
- this Dialect's stable predicate-support profile
-
getLockingSupport
Description copied from class:DialectSupplies the cohesive pessimistic-locking profile for this Dialect.
The profile coordinates capability metadata, statement-clause rendering, table hints, already-rendered SQL rewriting, connection timeout handling, and follow-on locking. A custom Dialect should supply one internally consistent profile instead of overriding those behaviors independently. The returned support must be non-null and stable for the Dialect lifetime; its components may be reused concurrently and must not retain per-query requests.
- Overrides:
getLockingSupportin classDialect- See Also:
-
getLimitHandler
Description copied from class:DialectSupplies execution-time pagination for already-rendered SQL requested by
Query.setMaxResults(int)orQuery.setFirstResult(int).This is distinct from SQL AST
PaginationRenderingSupport, which handles offset and fetch clauses represented in the semantic tree. A custom Dialect should normally return a stockLimitHandleror extend a supported handler family. The returned handler may be reused concurrently and must not retain per-query state.- Overrides:
getLimitHandlerin classDialect- Returns:
- a non-null handler
-
getIfExistsSupport
Description copied from class:DialectSupply existence-check placement for schema DDL targets.
Return one immutable profile for this Dialect's lifetime.
- Overrides:
getIfExistsSupportin classDialect- See Also:
-
alterColumnType
- Specified by:
alterColumnTypein interfaceAlterTableSupport
-
getSequenceSupport
Description copied from class:DialectSupplies the complete sequence value-expression and lifecycle-DDL strategy for this Dialect.
Return the same stable, thread-safe strategy for the Dialect's lifetime. Use
SequenceSupports.none()when sequences are unsupported, select one of the other stock strategies only when its complete grammar matches the database, or supply a provider implementation ofSequenceSupport.- Overrides:
getSequenceSupportin classDialect- Returns:
- the non-null sequence-support strategy
- See Also:
-
getSequenceInformationExtractor
Description copied from class:DialectSupply the strategy Hibernate uses to discover existing database sequences and their metadata.
Return
SequenceInformationExtractors.none()when the database version does not expose sequence metadata. Configure ordinary single-query extraction withSequenceInformationExtractors.builder(String), and implementSequenceInformationExtractordirectly only for a genuinely multi-stage algorithm.- Overrides:
getSequenceInformationExtractorin classDialect- See Also:
-
getArraySupport
Description copied from class:DialectThe independent array syntax and multi-valued parameter-binding behavior of this Dialect.
Override this method to supply standard element-type array support, SQL array-constructor support, and the multi-valued parameter-binding strategy. Treat these as independent dimensions: do not infer syntax support from array binding, and do not infer array binding from either syntax capability. Return one immutable, non-null profile whose values remain stable for the lifetime of this Dialect.
- Overrides:
getArraySupportin classDialect- Returns:
- this Dialect's stable array-support profile
-
getViolatedConstraintNameExtractor
@SPI({IMPLEMENT,SUPPLY}) public ViolatedConstraintNameExtractor getViolatedConstraintNameExtractor()Description copied from class:DialectSupplies the extractor used to recover violated constraint names from database exceptions.
The extractor returns
nullwhen a name cannot be recovered. Do not use an empty string or sentinel to represent absence.- Specified by:
getViolatedConstraintNameExtractorin interfaceConversionContext- Overrides:
getViolatedConstraintNameExtractorin classDialect- Returns:
- the non-null constraint-name extractor
- See Also:
-
causesRollback
Description copied from class:DialectDetermine whether this database marks the current transaction for rollback after the given statement failure.
Inspect the original database exception when the policy depends on its error code, SQL state, or subtype. This decision is independent of how Hibernate converts the exception. This determines both JDBC rollback state and whether a pessimistic lock failure becomes a JPA
PessimisticLockExceptionorLockTimeoutException.- Overrides:
causesRollbackin classDialect- Parameters:
sqlException- the original database exception- Returns:
truewhen the failed statement invalidates the transaction
-
buildSQLExceptionConversionDelegate
@SPI({IMPLEMENT,SUPPLY}) public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate()Description copied from class:DialectSupplies vendor-specific SQL-exception conversion for this Dialect.
The returned delegate runs in addition to Hibernate's standard JDBC exception-hierarchy and SQL-state delegates. Its
nullresult means that it declined the exception so conversion may continue. Returnnullfrom this method when the Dialect has no vendor-specific delegate.Prefer stable vendor error codes or SQL states and preserve the original
SQLException.- Overrides:
buildSQLExceptionConversionDelegatein classDialect- Returns:
- the vendor conversion delegate, or
nullwhen none is supplied - See Also:
-
getSelectClauseNullString
@SPI({USE,IMPLEMENT}) public String getSelectClauseNullString(SqlTypedMapping sqlTypeMapping, TypeConfiguration typeConfiguration) Description copied from class:DialectRender the complete typed-null select-item expression for one arm of a union query.
Use the complete mapping when the database requires an explicit cast so that named and aggregate types, length, precision, scale, and temporal precision are retained. Return the complete expression, not only a type name. The standard form is the untyped SQL literal
null.- Overrides:
getSelectClauseNullStringin classDialect- Parameters:
sqlTypeMapping- the complete mapping of the union select itemtypeConfiguration- the active type configuration- Returns:
- the complete select-item expression
-
getNullOrderingSupport
Description copied from class:DialectSupply the database's default null ordering and explicit null-precedence syntax capabilities.
Override this method with a stable, non-null profile when the database's default null placement differs from
NullOrderingSupport.STANDARD, or when it cannot rendernulls firstandnulls lastnatively. Dialect subclasses refining a family profile should copyDialect.getNullOrderingSupport()from the superclass and change only the values which differ.- Overrides:
getNullOrderingSupportin classDialect- Returns:
- the stable, non-null null-ordering-support profile
-
getMultiTableMutationSupport
Description copied from class:DialectSelect the Hibernate-owned fallback families used for SQM update/delete and insert operations targeting entities mapped to multiple tables.
A custom Dialect should return one of the named profiles when both operation families use the same strategy kind, or construct an asymmetric profile when they differ. Local, global, and persistent-table selections require the corresponding non-null temporary-table strategy, while
CTErequires non-query CTE support.Configured global and entity-specific custom strategies take precedence over this fallback. Supply a custom execution implementation with
QuerySettings.QUERY_MULTI_TABLE_MUTATION_STRATEGYorQuerySettings.QUERY_MULTI_TABLE_INSERT_STRATEGYinstead of depending on Hibernate's internal fallback implementations.- Overrides:
getMultiTableMutationSupportin classDialect- Returns:
- a stable, non-null fallback selection profile
-
getGlobalTemporaryTableStrategy
Description copied from class:DialectSupplies this Dialect's global temporary-table strategy.
Return
nullwhen the database has no supported global temporary-table form. A non-null strategy must be stable for the Dialect lifetime and consistent withDialect.getTemporaryTableExporter().- Overrides:
getGlobalTemporaryTableStrategyin classDialect
-
getLocalTemporaryTableStrategy
Description copied from class:DialectSupplies this Dialect's local temporary-table strategy.
Return
nullwhen the database has no supported local temporary-table form. A non-null strategy must be stable for the Dialect lifetime and consistent withDialect.getTemporaryTableExporter().- Overrides:
getLocalTemporaryTableStrategyin classDialect
-
getCurrentTimestampSelection
Description copied from interface:CurrentTemporalSupportSelect the JDBC command used for database-side current timestamp retrieval, or returnnullwhen the database offers no supported command.- Specified by:
getCurrentTimestampSelectionin interfaceCurrentTemporalSupport- See Also:
-
getTemporalValueSemantics
Description copied from class:DialectSupply temporal precision-adjustment and literal-offset semantics. Return one stable, non-null immutable profile.- Overrides:
getTemporalValueSemanticsin classDialect- See Also:
-
getSchemaCommentSupport
Description copied from class:DialectSupply schema-export support for comments attached to database objects.
This strategy does not control query comments, hints, SQL AST decoration, or statement inspection. Return one stable, non-null strategy.
- Overrides:
getSchemaCommentSupportin classDialect- See Also:
-
appendBooleanValueString
Description copied from interface:LiteralSupportAppend a SQL Boolean literal expression.- Specified by:
appendBooleanValueStringin interfaceLiteralSupport
-
getTupleCountSupport
Description copied from class:DialectSupplies the database syntax for ordinary and distinct tuple counts.
Return one non-null, immutable profile whose values remain stable for this Dialect's lifetime. Select
TupleCountSupport.Syntax.UNSUPPORTEDto use Hibernate's existing emulation,TupleCountSupport.Syntax.ARGUMENT_LISTfor syntax such ascount(a, b), orTupleCountSupport.Syntax.PARENTHESIZED_TUPLEfor syntax such ascount((a, b)). Configure the ordinary and distinct forms independently; a database may require different forms for them. When refining a family Dialect, copyDialect.getTupleCountSupport()from the superclass and replace only the differing syntax choice.- Overrides:
getTupleCountSupportin classDialect- Returns:
- the non-null tuple-count-syntax profile
-
getSubquerySupport
Description copied from class:DialectSupplies the database's supported subquery placements.
Return one non-null, immutable profile whose values remain stable for this Dialect's lifetime. Declare every placement independently. In particular, scalar subqueries in the select list and
existspredicates in the select list are separate capabilities. Lateral spelling and fallback rendering remain translator responsibilities. When refining a family Dialect, start fromSubquerySupport.builder(super.getSubquerySupport())and change only the differing placements.- Overrides:
getSubquerySupportin classDialect- Returns:
- this Dialect's stable subquery-support profile
-
getCteSupport
Description copied from class:DialectThe common-table-expression capabilities of this Dialect.
The returned immutable profile must be non-null and stable for the lifetime of this Dialect. Hibernate may cache and reuse it. Overrides may construct a new profile or copy
CteSupport.STANDARD; invokingsuperis not required. This method is called only after Dialect construction, has no corresponding shutdown lifecycle, and failures propagate to the operation which obtains the profile.- Overrides:
getCteSupportin classDialect
-
getExpressionCoercionSupport
Description copied from class:DialectSupplies the expression-coercion adaptations required by this database.
Return one non-null, immutable profile whose values remain stable for this Dialect's lifetime. Each requirement directs a focused rendering adaptation; it does not report general database cast support. When refining a family Dialect, start from
ExpressionCoercionSupport.builder(super.getExpressionCoercionSupport())and change only the differing requirement.- Overrides:
getExpressionCoercionSupportin classDialect- Returns:
- this Dialect's stable expression-coercion requirement profile
-
getValuesListSupport
Description copied from class:DialectThe contexts in which this Dialect supports native multi-row
valuessyntax.The returned immutable profile must be non-null and stable for the lifetime of this Dialect. Report only native syntax support; translator emulation is selected separately.
- Overrides:
getValuesListSupportin classDialect
-
getIdentityColumnSupport
Description copied from class:DialectSupply the stable identity-column DDL, insert syntax, and identity-specific retrieval behavior for this Dialect.
Override this method to supply a provider implementation of
IdentityColumnSupport. Prefer extendingIdentityColumnSupportBaseand return the same immutable or otherwise stable support instance on every invocation. Do not construct Hibernate mutation delegates in this supply point.- Overrides:
getIdentityColumnSupportin classDialect
-
getNameQualifierSupport
Description copied from class:DialectSupply catalog and schema qualification support, or return
nullto useDatabaseMetaData.This value does not define the catalog separator; override
Dialect.getCatalogSeparator()independently when the metadata-free fallback is not..- Overrides:
getNameQualifierSupportin classDialect- See Also:
-
getFunctionalDependencyAnalysisSupport
@SPI({IMPLEMENT,SUPPLY}) public FunctionalDependencyAnalysisSupport getFunctionalDependencyAnalysisSupport()Description copied from class:DialectThe database's support for recognizing primary-key functional dependency in
group byandorder byclauses.This profile controls when Hibernate may omit functionally dependent columns. Report only behavior guaranteed by the database across the Dialect's supported versions.
- Overrides:
getFunctionalDependencyAnalysisSupportin classDialect- Returns:
- a non-null immutable capability profile
- See Also:
-
getSchemaDropSupport
Description copied from class:DialectSupply schema-drop composition and ordered pre-drop commands.
Return one immutable profile for this Dialect's lifetime.
- Overrides:
getSchemaDropSupportin classDialect- See Also:
-
appendFormat
Description copied from interface:TemporalFormatSupportAppend the database translation of the supplied Hibernate format pattern.- Specified by:
appendFormatin interfaceTemporalFormatSupport
-
translateExtractField
Description copied from interface:TemporalOperationSupportTranslate an extraction field name.- Specified by:
translateExtractFieldin interfaceTemporalOperationSupport
-
buildIdentifierHelper
@SPI({USE,IMPLEMENT,SUPPLY}) public IdentifierHelper buildIdentifierHelper(IdentifierHelperBuildRequest request) Description copied from interface:IdentifierSupportBuild and supply the configured identifier helper from the stable JDBC metadata snapshot and selected keyword strategy.
This inherited implementation initializes identifier casing, keywords, and namespace support from the request. Invoke it before replacing any of those values with authoritative provider settings, then build the final helper from the same builder. Settings which this implementation does not initialize may be applied before invoking it. If builder configuration cannot express a database rule, decorate the final helper with
DelegatingIdentifierHelper. Do not retain the request, builder, or metadata view.- Specified by:
buildIdentifierHelperin interfaceIdentifierSupport- See Also:
-
getUniqueDelegate
Description copied from class:DialectSupply the stable strategy used for unique-key representation and DDL.
Return a stock profile from
UniqueDelegates, or a stable provider-owned implementation or decorator. Do not import a Hibernate.internalleaf.- Overrides:
getUniqueDelegatein classDialect- See Also:
-
quoteCollation
Description copied from interface:IdentifierSupportRender a collation name used in a column definition.- Specified by:
quoteCollationin interfaceIdentifierSupport
-
getDmlTargetColumnQualifierSupport
@SPI({USE,IMPLEMENT,SUPPLY}) public DmlTargetColumnQualifierSupport getDmlTargetColumnQualifierSupport()Description copied from class:DialectThe qualifier form accepted for target-column references in update and delete statements.
Translators use this value when rendering assignments and predicates. A custom Dialect should return the least permissive form required by the database, not a form used only by an emulation.
- Overrides:
getDmlTargetColumnQualifierSupportin classDialect- Returns:
- the non-null target-column qualifier support
- See Also:
-
getSingleRowTableSupport
Description copied from class:DialectSupply the SQL renderings used for a reusable single-row table and for an otherwise table-less select.
Override this method with one stable, non-null profile when either rendering differs from
SingleRowTableSupport.STANDARD. The table expression and the complete select-onlyfromfragment are independent; an empty fragment means that nofromclause is required. Dialect subclasses refining a family profile should copyDialect.getSingleRowTableSupport()from the superclass and change only the values which differ.- Overrides:
getSingleRowTableSupportin classDialect- Returns:
- the stable, non-null single-row-table-support profile
-
supportsFilterClause
public boolean supportsFilterClause()Description copied from class:DialectWhether this database supports native aggregate
filter (where ...)syntax.Return a stable answer for this Dialect's lifetime. A false result directs aggregate rendering to use the existing case-expression emulation; it does not mean that filtered aggregates are unsupported.
- Overrides:
supportsFilterClausein classDialect
-
getRowValueSupport
Description copied from class:DialectThe native row-value syntax of this Dialect.
Override this method to supply explicit
row(a, b)construction, row equality, ordering, and distinctness comparisons, row-valuedINlists, row-valuedINsubqueries, and quantified row comparisons. Treat each feature as an exact native-syntax declaration: do not inferIN-subquery support fromIN-list support or explicit row construction from comparison support. Copy the superclass profile when refining an inherited Dialect family. Return one immutable, non-null profile whose values remain stable for the lifetime of this Dialect.- Overrides:
getRowValueSupportin classDialect- Returns:
- this Dialect's stable row-value-support profile
-
createOptionalTableUpdateOperation
@SPI({USE,IMPLEMENT,SUPPLY}) public MutationOperation createOptionalTableUpdateOperation(OptionalTableUpdateOperationRequest request) Description copied from class:DialectCreates the JDBC mutation operation for an optional-table update.
Override this factory when the database needs an operation other than the standard update-then-insert behavior. The request contains the semantic update and bootstrap services; implementations must return an operation for the same
OptionalTableUpdateOperationRequest.mutationTarget()and must not retain the request.- Overrides:
createOptionalTableUpdateOperationin classDialect- Returns:
- a non-null operation for the supplied optional-table update
- See Also:
-
getNamespaceSupport
Description copied from class:DialectSupply catalog and schema lifecycle behavior to schema tooling.
Return one stable, non-null strategy. Prefer a complete immutable profile from
NamespaceSupports, and implementNamespaceSupportdirectly only for custom or multi-command namespace SQL.- Overrides:
getNamespaceSupportin classDialect- See Also:
-