Package org.hibernate.dialect
Class MariaDBDialect
- java.lang.Object
-
- org.hibernate.dialect.Dialect
-
- org.hibernate.dialect.MySQLDialect
-
- org.hibernate.dialect.MariaDBDialect
-
- All Implemented Interfaces:
ConversionContext
- Direct Known Subclasses:
MariaDB102Dialect,MariaDB103Dialect,MariaDB10Dialect,MariaDB53Dialect
public class MariaDBDialect extends MySQLDialect
SQL dialect for MariaDB
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.hibernate.dialect.Dialect
Dialect.SizeStrategy, Dialect.SizeStrategyImpl
-
-
Field Summary
-
Fields inherited from class org.hibernate.dialect.Dialect
CLOSED_QUOTE, DEFAULT_BATCH_SIZE, LEGACY_LOB_MERGE_STRATEGY, NEW_LOCATOR_LOB_MERGE_STRATEGY, NO_BATCH, QUOTE, sequenceExporter, STANDARD_DEFAULT_BATCH_LOAD_SIZING_STRATEGY, STREAM_XFER_LOB_MERGE_STRATEGY
-
-
Constructor Summary
Constructors Constructor Description MariaDBDialect()MariaDBDialect(int version)MariaDBDialect(int version, int characterSetBytesPerCharacter)MariaDBDialect(DialectResolutionInfo info)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IdentifierHelperbuildIdentifierHelper(IdentifierHelperBuilder builder, DatabaseMetaData dbMetaData)Build the IdentifierHelper indicated by this Dialect for handling identifier conversions.protected MySQLStorageEnginegetDefaultMySQLStorageEngine()protected intgetMaxVarcharLen()NationalizationSupportgetNationalizationSupport()StringgetQuerySequencesString()Get the select command used retrieve the names of all sequences.SequenceInformationExtractorgetSequenceInformationExtractor()A source ofSequenceInformation.SequenceSupportgetSequenceSupport()No support for sequences.SqlAstTranslatorFactorygetSqlAstTranslatorFactory()Return an SqlAstTranslatorFactory specific for the Dialect.intgetVersion()voidinitializeFunctionRegistry(QueryEngine queryEngine)Initialize the given registry with any dialect-specific functions.booleansupportsColumnCheck()Does this dialect support column-level check constraints?booleansupportsIfExistsAfterAlterTable()For an "alter table", can the phrase "if exists" be applied?booleansupportsIfExistsBeforeConstraintName()For dropping a constraint with an "alter table", can the phrase "if exists" be applied before the constraint name?booleansupportsNoWait()Does this dialect/database support NO_WAIT timeout.booleansupportsSkipLocked()Does this dialect/database support SKIP_LOCKED timeout.booleansupportsWait()Does this dialect/database support WAIT timeout.booleansupportsWindowFunctions()Does this dialect support window functions like `row_number() over (..)`-
Methods inherited from class org.hibernate.dialect.MySQLDialect
appendDatetimeFormat, appendLiteral, buildSQLExceptionConversionDelegate, canCreateCatalog, canCreateSchema, castPattern, closeQuote, contributeTypes, currentTimestamp, datetimeFormat, dropConstraints, extractPattern, getAddForeignKeyConstraintString, getCastTypeName, getCharacterSetBytesPerCharacter, getColumnComment, getCreateCatalogCommand, getCreateSchemaCommand, getCurrentTimestampSelectString, getDefaultLobLength, getDropCatalogCommand, getDropForeignKeyString, getDropSchemaCommand, getFallbackSqmMutationStrategy, getFloatPrecision, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateSkipLockedString, getForUpdateSkipLockedString, getForUpdateString, getFractionalSecondPrecisionInNanos, getGroupBySelectItemReferenceStrategy, getIdentityColumnSupport, getLimitHandler, getMySQLVersion, getNameQualifierSupport, getNullColumnString, getNullOrdering, getPreferredSqlTypeCodeForBoolean, getQueryHintString, getReadLockString, getReadLockString, getResultSet, getSelectGUIDString, getSizeStrategy, getTableComment, getTableTypeString, getUniqueDelegate, getViolatedConstraintNameExtractor, getWriteLockString, getWriteLockString, getWriteRowLockStrategy, hasSelfReferentialForeignKeyBug, isCurrentTimestampSelectStringCallable, isJdbcLogWarningsEnabledByDefault, openQuote, qualifyIndexName, registerResultSetOutParameter, resolveSqlTypeDescriptor, supportsCascadeDelete, supportsCurrentTimestampSelection, supportsIfExistsBeforeTableName, supportsLobValueChangePropagation, supportsLockTimeouts, supportsNullPrecedence, supportsOffsetInSubquery, supportsSubqueryOnMutatingTable, supportsUnionAll, timestampaddPattern, timestampdiffPattern
-
Methods inherited from class org.hibernate.dialect.Dialect
addSqlHintOrComment, appendBinaryLiteral, appendBooleanValueString, appendDateTimeLiteral, appendDateTimeLiteral, appendDateTimeLiteral, appendIntervalLiteral, appendLockHint, applyLocksToSql, augmentRecognizedTableTypes, binaryToDecimalPrecision, currentDate, currentLocalTime, currentLocalTimestamp, currentTime, currentTimestampWithTimeZone, defaultScrollMode, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, equivalentTypes, escapeComment, forceLobAsLastValue, getAddColumnString, getAddColumnSuffixString, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getAlterTableString, getAuxiliaryDatabaseObjectExporter, getBooleanCheckCondition, getCallableStatementSupport, getCascadeConstraintsString, getCaseInsensitiveLike, getColumnAliasExtractor, getCreateMultisetTableString, getCreateTableString, getCreateTemporaryTableColumnAnnotation, getCurrentSchemaCommand, getDefaultBatchLoadSizingStrategy, getDefaultDecimalPrecision, getDefaultProperties, getDefaultTimestampPrecision, getDoublePrecision, getDropTableString, getEnumCheckCondition, getForeignKeyExporter, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getHibernateTypeName, getHibernateTypeName, getHqlTranslator, getIndexExporter, getInExpressionCountLimit, getKeywords, getLobMergeStrategy, getLockingStrategy, getLockRowIdentifier, getLowercaseFunction, getMaxAliasLength, getNativeIdentifierGeneratorStrategy, getNoColumnsInsertString, getNullColumnString, getQueryHintString, getRawTypeName, getRawTypeName, getReadRowLockStrategy, getResultSet, getResultSet, getSchemaNameResolver, getSelectClauseNullString, getSequenceExporter, getSqmTranslatorFactory, getTableExporter, getTimeZoneSupport, getTypeName, getTypeName, getTypeName, getTypeName, getUniqueKeyExporter, hasAlterTable, inlineLiteral, isAnsiNullOn, isEmptyStringTreatedAsNull, isLockTimeoutParameterized, isTypeNameRegistered, prependComment, quote, registerColumnType, registerColumnType, registerDefaultKeywords, registerHibernateType, registerHibernateType, registerKeyword, registerKeywords, registerResultSetOutParameter, requiresFloatCastingOfIntegerDivision, requiresParensForTupleCounts, requiresParensForTupleDistinctCounts, resolveSqlTypeLength, supportsBindAsCallableArgument, supportsBitType, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsCommentOn, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsFetchClause, supportsFractionalTimestampArithmetic, supportsIfExistsAfterConstraintName, supportsIfExistsAfterTableName, supportsJdbcConnectionLobCreation, supportsNamedParameters, supportsNoColumnsInsert, supportsNonQueryWithCTE, supportsOrderByInSubquery, supportsOrdinalSelectItemReference, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsPartitionBy, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsSubqueryInSelect, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTemporalLiteralOffset, supportsTemporaryTables, supportsTruncateWithCast, supportsTupleCounts, supportsTupleDistinctCounts, supportsUnboundedLobLocatorMaterialization, supportsUnionInSubquery, supportsValuesList, supportsValuesListForInsert, toBooleanValueString, toString, transformSelectString, translateDurationField, translateExtractField, trimPattern, useFollowOnLocking, useInputStreamToInsertBlob
-
-
-
-
Constructor Detail
-
MariaDBDialect
public MariaDBDialect()
-
MariaDBDialect
public MariaDBDialect(DialectResolutionInfo info)
-
MariaDBDialect
public MariaDBDialect(int version)
-
MariaDBDialect
public MariaDBDialect(int version, int characterSetBytesPerCharacter)
-
-
Method Detail
-
getMaxVarcharLen
protected int getMaxVarcharLen()
- Overrides:
getMaxVarcharLenin classMySQLDialect
-
getVersion
public int getVersion()
- Overrides:
getVersionin classMySQLDialect
-
getNationalizationSupport
public NationalizationSupport getNationalizationSupport()
- Overrides:
getNationalizationSupportin classDialect
-
initializeFunctionRegistry
public void initializeFunctionRegistry(QueryEngine queryEngine)
Description copied from class:DialectInitialize the given registry with any dialect-specific functions. Support for certain SQL functions is required, and if the database does not support a required function, then the dialect must define a way to emulate it. These required functions include the functions defined by the JPA query language specification:- avg(arg) - aggregate function
- count([distinct ]arg) - aggregate function
- max(arg) - aggregate function
- min(arg) - aggregate function
- sum(arg) - aggregate function
- coalesce(arg0, arg1, ...)
- nullif(arg0, arg1)
- lower(arg)
- upper(arg)
- length(arg)
- concat(arg0, arg1, ...)
- locate(pattern, string[, start])
- substring(string, start[, length])
- trim([[spec ][character ]from] string)
- abs(arg)
- mod(arg0, arg1)
- sqrt(arg)
- current date
- current time
- current timestamp
- any(arg) - aggregate function
- every(arg) - aggregate function
- cast(arg as Type)
- extract(field from arg)
- ln(arg)
- exp(arg)
- power(arg0, arg1)
- floor(arg)
- ceiling(arg)
- position(pattern in string)
- substring(string from start[ for length])
- overlay(string placing replacement from start[ for length])
- local date
- local time
- local datetime
- offset datetime
- instant
- left(string, length)
- right(string, length)
- replace(string, pattern, replacement)
- pad(string with length spec[ character])
- sign(arg)
- sin(arg)
- cos(arg)
- tan(arg)
- asin(arg)
- acos(arg)
- atan(arg)
- atan2(arg0, arg1)
- round(arg0, arg1)
- least(arg0, arg1, ...)
- greatest(arg0, arg1, ...)
- format(datetime as pattern)
- str(arg) - synonym of cast(a as String)
- ifnull(arg0, arg1) - synonym of coalesce(a, b)
- second(arg) - synonym of extract(second from a)
- minute(arg) - synonym of extract(minute from a)
- hour(arg) - synonym of extract(hour from a)
- day(arg) - synonym of extract(day from a)
- month(arg) - synonym of extract(month from a)
- year(arg) - synonym of extract(year from a)
- Overrides:
initializeFunctionRegistryin classMySQLDialect
-
getSqlAstTranslatorFactory
public SqlAstTranslatorFactory getSqlAstTranslatorFactory()
Description copied from class:DialectReturn an SqlAstTranslatorFactory specific for the Dialect. Returnnullto use Hibernate's standard translator.- Overrides:
getSqlAstTranslatorFactoryin classMySQLDialect- See Also:
StandardSqlAstTranslatorFactory,JdbcEnvironment.getSqlAstTranslatorFactory()
-
supportsWindowFunctions
public boolean supportsWindowFunctions()
Description copied from class:DialectDoes this dialect support window functions like `row_number() over (..)`- Overrides:
supportsWindowFunctionsin classMySQLDialect- Returns:
trueif the underlying database supports window functions,falseotherwise. The default isfalse.
-
supportsColumnCheck
public boolean supportsColumnCheck()
Description copied from class:DialectDoes this dialect support column-level check constraints?- Overrides:
supportsColumnCheckin classMySQLDialect- Returns:
- True if column-level CHECK constraints are supported; false otherwise.
-
getDefaultMySQLStorageEngine
protected MySQLStorageEngine getDefaultMySQLStorageEngine()
- Overrides:
getDefaultMySQLStorageEnginein classMySQLDialect
-
supportsIfExistsBeforeConstraintName
public boolean supportsIfExistsBeforeConstraintName()
Description copied from class:DialectFor dropping a constraint with an "alter table", can the phrase "if exists" be applied before the constraint name? NOTE : Only one or the other (or neither) of this andDialect.supportsIfExistsAfterConstraintName()should return true- Overrides:
supportsIfExistsBeforeConstraintNamein classDialect- Returns:
trueif the "if exists" can be applied before the constraint name
-
supportsIfExistsAfterAlterTable
public boolean supportsIfExistsAfterAlterTable()
Description copied from class:DialectFor an "alter table", can the phrase "if exists" be applied?- Overrides:
supportsIfExistsAfterAlterTablein classDialect- Returns:
trueif the "if exists" can be applied after ALTER TABLE
-
getSequenceSupport
public SequenceSupport getSequenceSupport()
Description copied from class:MySQLDialectNo support for sequences.- Overrides:
getSequenceSupportin classMySQLDialect
-
getQuerySequencesString
public String getQuerySequencesString()
Description copied from class:DialectGet the select command used retrieve the names of all sequences.- Overrides:
getQuerySequencesStringin classDialect- Returns:
- The select command; or null if sequences are not supported.
- See Also:
org.hibernate.tool.hbm2ddl.SchemaUpdate
-
getSequenceInformationExtractor
public SequenceInformationExtractor getSequenceInformationExtractor()
Description copied from class:DialectA source ofSequenceInformation.- Overrides:
getSequenceInformationExtractorin classDialect
-
supportsSkipLocked
public boolean supportsSkipLocked()
Description copied from class:DialectDoes this dialect/database support SKIP_LOCKED timeout.- Overrides:
supportsSkipLockedin classMySQLDialect- Returns:
trueif SKIP_LOCKED is supported
-
supportsNoWait
public boolean supportsNoWait()
Description copied from class:DialectDoes this dialect/database support NO_WAIT timeout.- Overrides:
supportsNoWaitin classMySQLDialect- Returns:
trueif NO_WAIT is supported
-
supportsWait
public boolean supportsWait()
Description copied from class:DialectDoes this dialect/database support WAIT timeout.- Overrides:
supportsWaitin classMySQLDialect- Returns:
trueif WAIT is supported
-
buildIdentifierHelper
public IdentifierHelper buildIdentifierHelper(IdentifierHelperBuilder builder, DatabaseMetaData dbMetaData) throws SQLException
Description copied from class:DialectBuild the IdentifierHelper indicated by this Dialect for handling identifier conversions. Returningnullis allowed and indicates that Hibernate should fallback to building a "standard" helper. In the fallback path, any changes made to the IdentifierHelperBuilder during this call will still be incorporated into the built IdentifierHelper. The incoming builder will have the following set:IdentifierHelperBuilder.isGloballyQuoteIdentifiers()IdentifierHelperBuilder.getUnquotedCaseStrategy()- initialized to UPPERIdentifierHelperBuilder.getQuotedCaseStrategy()- initialized to MIXED
- Call
IdentifierHelperBuilder.applyIdentifierCasing(DatabaseMetaData) - Call
IdentifierHelperBuilder.applyReservedWords(DatabaseMetaData) - Applies
AnsiSqlKeywords.sql2003()as reserved words - Applies the {#link #sqlKeywords} collected here as reserved words
- Applies the Dialect's NameQualifierSupport, if it defines one
- Overrides:
buildIdentifierHelperin classMySQLDialect- Parameters:
builder- A semi-configured IdentifierHelper builder.dbMetaData- Access to the metadata returned from the driver if needed and if available. WARNING: may benull- Returns:
- The IdentifierHelper instance to use, or
nullto indicate Hibernate should use its fallback path - Throws:
SQLException- Accessing the DatabaseMetaData can throw it. Just re-throw and Hibernate will handle.- See Also:
Dialect.getNameQualifierSupport()
-
-