Package liquibase.database.core
Class MockDatabase
java.lang.Object
liquibase.database.core.MockDatabase
- All Implemented Interfaces:
AutoCloseable
,Database
,InternalDatabase
,PrioritizedService
A DBMS that effectively does nothing, but it is useful for tests where everything should work in the same way
for all databases.
-
Field Summary
Fields inherited from interface liquibase.database.Database
COMPLETE_SQL_SCOPE_KEY, databaseChangeLogLockTableName, databaseChangeLogTableName
Fields inherited from interface liquibase.servicelocator.PrioritizedService
COMPARATOR, PRIORITY_DATABASE, PRIORITY_DEFAULT
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
acquireLock
(Liquibase liquibase) void
addReservedWords
(Collection<String> words) void
close()
void
commit()
convertRequestedSchemaToCatalog
(String requestedSchema) convertRequestedSchemaToSchema
(String requestedSchema) correctObjectName
(String name, Class<? extends DatabaseObject> objectType) Fix the object name to the format the database expects, handling changes in case, etc.correctObjectName
(String name, Class<? extends DatabaseObject> objectType, boolean quoteCorrectedName) correctSchema
(CatalogAndSchema schema) Returns a new CatalogAndSchema adjusted for this database.boolean
boolean
dataTypeIsNotModifiable
(String typeName) Types like int4 in postgres cannot have a modifier. e.g. int4(10) Checks whether the type is allowed to have a modifierboolean
boolean
doesTagExist
(String tag) void
dropDatabaseObjects
(CatalogAndSchema schema) Drops all objects in a specified schema.void
boolean
equals
(DatabaseObject otherObject, Database accordingTo) escapeColumnName
(String catalogName, String schemaName, String tableName, String columnName) Escapes a single column name in a database-dependent manner so reserved words can be used as a column name (i.e.escapeColumnName
(String catalogName, String schemaName, String tableName, String columnName, boolean quoteNamesThatMayBeFunctions) Similar toDatabase.escapeColumnName(String, String, String, String)
but allows control over whether function-like names should be left unquoted.escapeColumnNameList
(String columnNames) Escapes a list of column names in a database-dependent manner so reserved words can be used as a column name (i.e.escapeConstraintName
(String constraintName) escapeDataTypeName
(String dataTypeName) escapeIndexName
(String catalogName, String schemaName, String indexName) escapeObjectName
(String objectName, Class<? extends DatabaseObject> objectType) escapeObjectName
(String catalogName, String schemaName, String objectName, Class<? extends DatabaseObject> objectType) escapeSequenceName
(String catalogName, String schemaName, String sequenceName) escapeStringForDatabase
(String string) escapeTableName
(String catalogName, String schemaName, String tableName) escapeViewName
(String catalogName, String schemaName, String viewName) void
execute
(SqlStatement[] statements, List<SqlVisitor> sqlVisitors) void
executeRollbackStatements
(Change change, List<SqlVisitor> sqlVisitors) void
executeRollbackStatements
(SqlStatement[] statements, List<SqlVisitor> sqlVisitors) void
executeStatements
(Change change, DatabaseChangeLog changeLog, List<SqlVisitor> sqlVisitors) generateDatabaseFunctionValue
(DatabaseFunction databaseFunction) Some function names are placeholders that need to be replaced with the specific database value.generatePrimaryKeyName
(String tableName) boolean
Auto-commit mode to run ingetAutoIncrementClause
(BigInteger startWith, BigInteger incrementBy, String generationType, Boolean defaultOnNull) Returns database-specific auto-increment DDL clause.getConcatSql
(String... values) Returns SQL to concat the passed values.Returns database-specific function for generating the current date/time.int
int
Returns the name of the database product according to the underlying database.int
getDataTypeMaxParameters
(String dataTypeName) Returns list of database native date functionsgetDateLiteral
(String isoDate) getDateLiteral
(Date date) getDateLiteral
(Date defaultDateValue) getDateTimeLiteral
(Timestamp timeStamp) getDefaultDriver
(String url) If this database understands the given url, return the default driver class name.int
When a TIMESTAMP column without the parameter "number of fractional digits" is created, what is the default value?getDefaultScaleForNativeDataType
(String nativeDataType) Returns the default precision for a given native data type, e.g.getJdbcCatalogName
(CatalogAndSchema schema) getJdbcCatalogName
(Schema schema) getJdbcSchemaName
(CatalogAndSchema schema) getJdbcSchemaName
(Schema schema) int
Determines the maximum precision (number of fractional digits) for TIMESTAMP columns for the given database.getName()
boolean
boolean
Should the schema be included in identifiers even if it is the default schema?int
getRanChangeSet
(ChangeSet changeSet) Returns the ChangeSets that have been run against the current database.getRanDate
(ChangeSet changeSet) getRunStatus
(ChangeSet changeSet) Returns the run status for the given ChangeSetgetSchemaFromJdbcInfo
(String rawCatalogName, String rawSchemaName) Returns an all-lower-case short name of the product.getTimeLiteral
(Time time) getViewDefinition
(CatalogAndSchema schema, String name) boolean
boolean
boolean
Is this AbstractDatabase subclass the correct one to use for the given connection.boolean
isDefaultCatalog
(String catalog) If the database supports catalogs, test if a given catalog name equals to the default catalog of the current logged in user.boolean
isDefaultSchema
(String catalog, String schema) If the database supports schemas, test if a given combination of catalog and schema name equals to the default catalog and schema of the current logged in user.boolean
isFunction
(String string) boolean
isLiquibaseObject
(DatabaseObject object) boolean
isReservedWord
(String string) boolean
boolean
isSystemObject
(DatabaseObject example) void
markChangeSetExecStatus
(ChangeSet changeSet, ChangeSet.ExecType execType) After the changeset has been run against the database this method will update the change log table with the information.void
void
removeRanStatus
(ChangeSet changeSet) boolean
Does the database require explicit NULL for nullable columns?boolean
boolean
void
void
rollback()
void
saveRollbackStatement
(Change change, List<SqlVisitor> sqlVisitors, Writer writer) void
saveStatements
(Change change, List<SqlVisitor> sqlVisitors, Writer writer) void
setAutoCommit
(boolean b) void
setCanCacheLiquibaseTableInfo
(boolean canCacheLiquibaseTableInfo) void
setCaseSensitive
(boolean caseSensitive) void
setConnection
(Connection conn) void
void
setCurrentDateTimeFunction
(String function) void
setDatabaseChangeLogLockTableName
(String tableName) Does nothingvoid
setDatabaseChangeLogTableName
(String tableName) Does nothingvoid
setDefaultCatalogName
(String catalogName) void
setDefaultSchemaName
(String schemaName) void
setLiquibaseCatalogName
(String catalogName) void
setLiquibaseSchemaName
(String schemaName) void
setLiquibaseTablespaceName
(String tablespaceName) void
setObjectQuotingStrategy
(ObjectQuotingStrategy quotingStrategy) void
setOutputDefaultCatalog
(boolean outputDefaultCatalog) void
setOutputDefaultSchema
(boolean outputDefaultSchema) Whether the default schema should be included in generated SQLvoid
setSupportsCatalogs
(boolean supportsCatalogs) void
setSupportsSchemas
(boolean supportsSchemas) void
setSupportsSequences
(boolean supportsSequences) boolean
supports
(Class<? extends DatabaseObject> object) Whether this database supports the specified object type.boolean
boolean
Does the database support batched DML (INSERT/UPDATE/DELETE/MERGE/...) statements sent in a single call to the database?boolean
boolean
supportsCatalogInObjectName
(Class<? extends DatabaseObject> type) boolean
Whether this database supports catalogsboolean
supportsCreateIfNotExists
(Class<? extends DatabaseObject> type) Does the database support the "if not exits" syntax?boolean
Determines if the database supports DDL within a transaction or not.boolean
boolean
boolean
Returns whether this database support initially deferrable columns.boolean
Does this database treat NOT NULL as an own kind of CONSTRAINT (in addition of simply being a column property)?boolean
boolean
boolean
Whether this database supports schemasboolean
Whether this database supports sequencesboolean
void
Tags the database changelog with the given string.toString()
unescapeDataTypeName
(String dataTypeName) unescapeDataTypeString
(String dataTypeString) void
updateChecksum
(ChangeSet changeSet) validate()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface liquibase.database.Database
addCompleteSqlToScope, afterUpdate, checkDatabaseConnection, dropDatabaseObjects, failOnDefferable, generateConnectCommandSuccessMessage, getDisplayName, supportsDatabaseChangeLogHistory, temporarilySetObjectQuotingStrategy
-
Constructor Details
-
MockDatabase
public MockDatabase()
-
-
Method Details
-
getDefaultScaleForNativeDataType
Description copied from interface:Database
Returns the default precision for a given native data type, e.g. "datetime2" for Microsoft SQL Server.- Specified by:
getDefaultScaleForNativeDataType
in interfaceDatabase
- Parameters:
nativeDataType
- the name of the native data type (case-insensitive).- Returns:
- The default precision of the native data type, or null if the type is unknown to this database.
-
getPriority
public int getPriority()- Specified by:
getPriority
in interfacePrioritizedService
-
getSchema
-
getName
-
getDefaultSchema
- Specified by:
getDefaultSchema
in interfaceDatabase
-
getDefaultPort
- Specified by:
getDefaultPort
in interfaceDatabase
-
getContainingObjects
-
equals
-
setCanCacheLiquibaseTableInfo
public void setCanCacheLiquibaseTableInfo(boolean canCacheLiquibaseTableInfo) - Specified by:
setCanCacheLiquibaseTableInfo
in interfaceDatabase
-
requiresUsername
public boolean requiresUsername()- Specified by:
requiresUsername
in interfaceDatabase
-
requiresPassword
public boolean requiresPassword()- Specified by:
requiresPassword
in interfaceDatabase
-
isCorrectDatabaseImplementation
Description copied from interface:Database
Is this AbstractDatabase subclass the correct one to use for the given connection.- Specified by:
isCorrectDatabaseImplementation
in interfaceDatabase
-
getDefaultDriver
Description copied from interface:Database
If this database understands the given url, return the default driver class name. Otherwise return null.- Specified by:
getDefaultDriver
in interfaceDatabase
-
getConnection
- Specified by:
getConnection
in interfaceDatabase
-
setConnection
- Specified by:
setConnection
in interfaceDatabase
-
setConnection
-
getAutoCommitMode
public boolean getAutoCommitMode()Description copied from interface:Database
Auto-commit mode to run in- Specified by:
getAutoCommitMode
in interfaceDatabase
-
isAutoCommit
public boolean isAutoCommit()- Specified by:
isAutoCommit
in interfaceDatabase
-
setAutoCommit
public void setAutoCommit(boolean b) - Specified by:
setAutoCommit
in interfaceDatabase
-
isCaseSensitive
public boolean isCaseSensitive()- Specified by:
isCaseSensitive
in interfaceDatabase
-
setCaseSensitive
public void setCaseSensitive(boolean caseSensitive) -
supportsDDLInTransaction
public boolean supportsDDLInTransaction()Description copied from interface:Database
Determines if the database supports DDL within a transaction or not.- Specified by:
supportsDDLInTransaction
in interfaceDatabase
- Returns:
- True if the database supports DDL within a transaction, otherwise false.
-
getDatabaseProductName
Description copied from interface:Database
Returns the name of the database product according to the underlying database.- Specified by:
getDatabaseProductName
in interfaceDatabase
-
getDatabaseProductVersion
- Specified by:
getDatabaseProductVersion
in interfaceDatabase
-
getDatabaseMajorVersion
public int getDatabaseMajorVersion()- Specified by:
getDatabaseMajorVersion
in interfaceDatabase
-
getDatabaseMinorVersion
public int getDatabaseMinorVersion()- Specified by:
getDatabaseMinorVersion
in interfaceDatabase
-
getShortName
Description copied from interface:Database
Returns an all-lower-case short name of the product. Used for end-user selecting of database type such as the DBMS precondition.- Specified by:
getShortName
in interfaceDatabase
-
getDriverName
-
getConnectionURL
-
getConnectionUsername
-
getDefaultCatalogName
- Specified by:
getDefaultCatalogName
in interfaceDatabase
-
setDefaultCatalogName
- Specified by:
setDefaultCatalogName
in interfaceDatabase
-
getDefaultSchemaName
- Specified by:
getDefaultSchemaName
in interfaceDatabase
-
setDefaultSchemaName
- Specified by:
setDefaultSchemaName
in interfaceDatabase
-
supportsInitiallyDeferrableColumns
public boolean supportsInitiallyDeferrableColumns()Description copied from interface:Database
Returns whether this database support initially deferrable columns.- Specified by:
supportsInitiallyDeferrableColumns
in interfaceDatabase
-
supportsSequences
public boolean supportsSequences()Description copied from interface:Database
Whether this database supports sequences- Specified by:
supportsSequences
in interfaceDatabase
-
setSupportsSequences
public void setSupportsSequences(boolean supportsSequences) -
supportsDropTableCascadeConstraints
public boolean supportsDropTableCascadeConstraints()- Specified by:
supportsDropTableCascadeConstraints
in interfaceDatabase
-
supportsAutoIncrement
public boolean supportsAutoIncrement()- Specified by:
supportsAutoIncrement
in interfaceDatabase
-
getDateLiteral
- Specified by:
getDateLiteral
in interfaceDatabase
-
getDateLiteral
- Specified by:
getDateLiteral
in interfaceDatabase
-
getTimeLiteral
- Specified by:
getTimeLiteral
in interfaceDatabase
-
getDateTimeLiteral
- Specified by:
getDateTimeLiteral
in interfaceDatabase
-
getCurrentDateTimeFunction
Description copied from interface:Database
Returns database-specific function for generating the current date/time.- Specified by:
getCurrentDateTimeFunction
in interfaceDatabase
-
setCurrentDateTimeFunction
- Specified by:
setCurrentDateTimeFunction
in interfaceDatabase
-
getLineComment
- Specified by:
getLineComment
in interfaceDatabase
-
getAutoIncrementClause
public String getAutoIncrementClause(BigInteger startWith, BigInteger incrementBy, String generationType, Boolean defaultOnNull) Description copied from interface:Database
Returns database-specific auto-increment DDL clause.- Specified by:
getAutoIncrementClause
in interfaceDatabase
-
getCommitSQL
-
getDatabaseChangeLogTableName
- Specified by:
getDatabaseChangeLogTableName
in interfaceDatabase
- See Also:
-
setDatabaseChangeLogTableName
Does nothing- Specified by:
setDatabaseChangeLogTableName
in interfaceDatabase
- Parameters:
tableName
- the name of the change log table to set- See Also:
-
getDatabaseChangeLogLockTableName
- Specified by:
getDatabaseChangeLogLockTableName
in interfaceDatabase
- See Also:
-
setDatabaseChangeLogLockTableName
Does nothing- Specified by:
setDatabaseChangeLogLockTableName
in interfaceDatabase
- See Also:
-
getConcatSql
Description copied from interface:Database
Returns SQL to concat the passed values.- Specified by:
getConcatSql
in interfaceDatabase
-
acquireLock
-
releaseLock
public void releaseLock() -
listLocks
-
dropDatabaseObjects
Description copied from interface:Database
Drops all objects in a specified schema.- Specified by:
dropDatabaseObjects
in interfaceDatabase
- Parameters:
schema
- schema (catalog+)schema to drop
-
tag
Description copied from interface:Database
Tags the database changelog with the given string. -
doesTagExist
- Specified by:
doesTagExist
in interfaceDatabase
-
isSystemObject
- Specified by:
isSystemObject
in interfaceDatabase
-
isLiquibaseObject
- Specified by:
isLiquibaseObject
in interfaceDatabase
-
supportsTablespaces
public boolean supportsTablespaces()- Specified by:
supportsTablespaces
in interfaceDatabase
-
getViewDefinition
- Specified by:
getViewDefinition
in interfaceDatabase
-
getDatabaseProductName
-
getDateLiteral
- Specified by:
getDateLiteral
in interfaceDatabase
-
escapeTableName
- Specified by:
escapeTableName
in interfaceDatabase
-
escapeIndexName
- Specified by:
escapeIndexName
in interfaceDatabase
-
escapeColumnName
public String escapeColumnName(String catalogName, String schemaName, String tableName, String columnName) Description copied from interface:Database
Escapes a single column name in a database-dependent manner so reserved words can be used as a column name (i.e. "return").- Specified by:
escapeColumnName
in interfaceDatabase
columnName
- column name- Returns:
- escaped column name
-
escapeColumnName
public String escapeColumnName(String catalogName, String schemaName, String tableName, String columnName, boolean quoteNamesThatMayBeFunctions) Description copied from interface:Database
Similar toDatabase.escapeColumnName(String, String, String, String)
but allows control over whether function-like names should be left unquoted.- Specified by:
escapeColumnName
in interfaceDatabase
-
escapeColumnNameList
Description copied from interface:Database
Escapes a list of column names in a database-dependent manner so reserved words can be used as a column name (i.e. "return").- Specified by:
escapeColumnNameList
in interfaceDatabase
- Parameters:
columnNames
- list of column names- Returns:
- escaped column name list
-
escapeSequenceName
- Specified by:
escapeSequenceName
in interfaceDatabase
-
convertRequestedSchemaToSchema
-
convertRequestedSchemaToCatalog
-
supports
Description copied from interface:Database
Whether this database supports the specified object type. It is invoking the deprecated methods to ensure that extensions are not broken, but once those are removed it will return only true -
supportsSchemas
public boolean supportsSchemas()Description copied from interface:Database
Whether this database supports schemas- Specified by:
supportsSchemas
in interfaceDatabase
-
setSupportsSchemas
public void setSupportsSchemas(boolean supportsSchemas) -
supportsCatalogs
public boolean supportsCatalogs()Description copied from interface:Database
Whether this database supports catalogs- Specified by:
supportsCatalogs
in interfaceDatabase
-
getSchemaAndCatalogCase
- Specified by:
getSchemaAndCatalogCase
in interfaceDatabase
-
setSupportsCatalogs
public void setSupportsCatalogs(boolean supportsCatalogs) -
supportsCatalogInObjectName
public boolean supportsCatalogInObjectName() -
generatePrimaryKeyName
- Specified by:
generatePrimaryKeyName
in interfaceDatabase
-
escapeViewName
- Specified by:
escapeViewName
in interfaceDatabase
-
acquireLock
public boolean acquireLock() -
getRunStatus
public ChangeSet.RunStatus getRunStatus(ChangeSet changeSet) throws DatabaseException, DatabaseHistoryException Description copied from interface:Database
Returns the run status for the given ChangeSet- Specified by:
getRunStatus
in interfaceDatabase
- Throws:
DatabaseException
DatabaseHistoryException
-
getRanChangeSet
public RanChangeSet getRanChangeSet(ChangeSet changeSet) throws DatabaseException, DatabaseHistoryException - Specified by:
getRanChangeSet
in interfaceDatabase
- Throws:
DatabaseException
DatabaseHistoryException
-
markChangeSetExecStatus
public void markChangeSetExecStatus(ChangeSet changeSet, ChangeSet.ExecType execType) throws DatabaseException Description copied from interface:Database
After the changeset has been run against the database this method will update the change log table with the information.- Specified by:
markChangeSetExecStatus
in interfaceDatabase
- Throws:
DatabaseException
-
getRanChangeSetList
Description copied from interface:Database
Returns the ChangeSets that have been run against the current database.- Specified by:
getRanChangeSetList
in interfaceDatabase
- Throws:
DatabaseException
-
getRanDate
- Specified by:
getRanDate
in interfaceDatabase
- Throws:
DatabaseException
DatabaseHistoryException
-
removeRanStatus
- Specified by:
removeRanStatus
in interfaceDatabase
- Throws:
DatabaseException
-
commit
public void commit() -
rollback
public void rollback() -
getSelectChangeLogLockSQL
-
escapeStringForDatabase
- Specified by:
escapeStringForDatabase
in interfaceDatabase
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceDatabase
-
supportsRestrictForeignKeys
public boolean supportsRestrictForeignKeys()- Specified by:
supportsRestrictForeignKeys
in interfaceDatabase
-
escapeConstraintName
- Specified by:
escapeConstraintName
in interfaceDatabase
-
isSafeToRunUpdate
public boolean isSafeToRunUpdate()- Specified by:
isSafeToRunUpdate
in interfaceDatabase
-
escapeObjectName
- Specified by:
escapeObjectName
in interfaceDatabase
-
escapeObjectName
public String escapeObjectName(String catalogName, String schemaName, String objectName, Class<? extends DatabaseObject> objectType) - Specified by:
escapeObjectName
in interfaceDatabase
-
executeStatements
public void executeStatements(Change change, DatabaseChangeLog changeLog, List<SqlVisitor> sqlVisitors) - Specified by:
executeStatements
in interfaceDatabase
-
execute
-
saveStatements
- Specified by:
saveStatements
in interfaceDatabase
-
executeRollbackStatements
- Specified by:
executeRollbackStatements
in interfaceDatabase
-
executeRollbackStatements
- Specified by:
executeRollbackStatements
in interfaceDatabase
-
saveRollbackStatement
- Specified by:
saveRollbackStatement
in interfaceDatabase
-
getLiquibaseCatalogName
- Specified by:
getLiquibaseCatalogName
in interfaceDatabase
-
setLiquibaseCatalogName
- Specified by:
setLiquibaseCatalogName
in interfaceDatabase
-
getLiquibaseSchemaName
- Specified by:
getLiquibaseSchemaName
in interfaceDatabase
-
setLiquibaseSchemaName
- Specified by:
setLiquibaseSchemaName
in interfaceDatabase
-
getLiquibaseTablespaceName
- Specified by:
getLiquibaseTablespaceName
in interfaceDatabase
-
setLiquibaseTablespaceName
- Specified by:
setLiquibaseTablespaceName
in interfaceDatabase
-
parseDate
-
getDateFunctions
Description copied from interface:Database
Returns list of database native date functions- Specified by:
getDateFunctions
in interfaceDatabase
-
resetInternalState
public void resetInternalState()- Specified by:
resetInternalState
in interfaceDatabase
-
supportsForeignKeyDisable
public boolean supportsForeignKeyDisable()- Specified by:
supportsForeignKeyDisable
in interfaceDatabase
-
disableForeignKeyChecks
public boolean disableForeignKeyChecks()- Specified by:
disableForeignKeyChecks
in interfaceDatabase
-
enableForeignKeyChecks
public void enableForeignKeyChecks()- Specified by:
enableForeignKeyChecks
in interfaceDatabase
-
updateChecksum
-
isReservedWord
- Specified by:
isReservedWord
in interfaceDatabase
-
correctSchema
Description copied from interface:Database
Returns a new CatalogAndSchema adjusted for this database. Examples of adjustments include: fixes for case issues, replacing null schema or catalog names with the default values removing set schema or catalog names if they are not supported- Specified by:
correctSchema
in interfaceDatabase
-
correctObjectName
Description copied from interface:Database
Fix the object name to the format the database expects, handling changes in case, etc.- Specified by:
correctObjectName
in interfaceDatabase
-
correctObjectName
public String correctObjectName(String name, Class<? extends DatabaseObject> objectType, boolean quoteCorrectedName) -
getFetchSize
- Specified by:
getFetchSize
in interfaceDatabase
-
isFunction
- Specified by:
isFunction
in interfaceDatabase
-
getDataTypeMaxParameters
- Specified by:
getDataTypeMaxParameters
in interfaceDatabase
-
getSchemaFromJdbcInfo
-
getJdbcCatalogName
-
getJdbcSchemaName
-
getJdbcCatalogName
-
getJdbcSchemaName
-
dataTypeIsNotModifiable
Description copied from interface:Database
Types like int4 in postgres cannot have a modifier. e.g. int4(10) Checks whether the type is allowed to have a modifier- Specified by:
dataTypeIsNotModifiable
in interfaceDatabase
- Parameters:
typeName
- type name- Returns:
- Whether data type can have a modifier
-
generateDatabaseFunctionValue
Description copied from interface:Database
Some function names are placeholders that need to be replaced with the specific database value. e.g. nextSequenceValue(sequenceName) should be replaced with NEXT_VAL('sequenceName') for Postgresql- Specified by:
generateDatabaseFunctionValue
in interfaceDatabase
- Parameters:
databaseFunction
- database function to check.- Returns:
- the string value to use for an update or generate
-
getObjectQuotingStrategy
- Specified by:
getObjectQuotingStrategy
in interfaceDatabase
-
setObjectQuotingStrategy
- Specified by:
setObjectQuotingStrategy
in interfaceDatabase
-
supportsCatalogInObjectName
- Specified by:
supportsCatalogInObjectName
in interfaceDatabase
-
createsIndexesForForeignKeys
public boolean createsIndexesForForeignKeys()- Specified by:
createsIndexesForForeignKeys
in interfaceDatabase
-
getOutputDefaultSchema
public boolean getOutputDefaultSchema()Description copied from interface:Database
Should the schema be included in identifiers even if it is the default schema?- Specified by:
getOutputDefaultSchema
in interfaceDatabase
- Returns:
- true (if the schema should be included in every case) or false (omit if default schema)
-
setOutputDefaultSchema
public void setOutputDefaultSchema(boolean outputDefaultSchema) Description copied from interface:Database
Whether the default schema should be included in generated SQL- Specified by:
setOutputDefaultSchema
in interfaceDatabase
-
getOutputDefaultCatalog
public boolean getOutputDefaultCatalog()- Specified by:
getOutputDefaultCatalog
in interfaceDatabase
-
setOutputDefaultCatalog
public void setOutputDefaultCatalog(boolean outputDefaultCatalog) - Specified by:
setOutputDefaultCatalog
in interfaceDatabase
-
isDefaultSchema
Description copied from interface:Database
If the database supports schemas, test if a given combination of catalog and schema name equals to the default catalog and schema of the current logged in user.- Specified by:
isDefaultSchema
in interfaceDatabase
- Parameters:
catalog
- catalog name to be testedschema
- schema name to be tested- Returns:
- if the database supports catalogs: true if it is the default schema, false if not. If it does not support schemas, the behaviour of this method is undefined (please call supportsSchemas first!)
-
isDefaultCatalog
Description copied from interface:Database
If the database supports catalogs, test if a given catalog name equals to the default catalog of the current logged in user.- Specified by:
isDefaultCatalog
in interfaceDatabase
- Parameters:
catalog
- catalog name to be tested- Returns:
- if the database supports catalogs: true if it is the default catalog, false if not. If it does not support catalogs, the behaviour of this method is undefined (please call supportsCatalog first!)
-
supportsPrimaryKeyNames
public boolean supportsPrimaryKeyNames()- Specified by:
supportsPrimaryKeyNames
in interfaceDatabase
-
getSystemSchema
- Specified by:
getSystemSchema
in interfaceDatabase
-
addReservedWords
- Specified by:
addReservedWords
in interfaceDatabase
-
toString
-
escapeDataTypeName
- Specified by:
escapeDataTypeName
in interfaceDatabase
-
unescapeDataTypeName
- Specified by:
unescapeDataTypeName
in interfaceDatabase
-
unescapeDataTypeString
- Specified by:
unescapeDataTypeString
in interfaceDatabase
-
validate
-
supportsNotNullConstraintNames
public boolean supportsNotNullConstraintNames()Description copied from interface:Database
Does this database treat NOT NULL as an own kind of CONSTRAINT (in addition of simply being a column property)? This will affect the CONSTRAINT clause SQL generators.- Specified by:
supportsNotNullConstraintNames
in interfaceDatabase
- Returns:
- true if the database supports naming NOT NULL constraints, false if not.
-
supportsBatchUpdates
public boolean supportsBatchUpdates()Description copied from interface:Database
Does the database support batched DML (INSERT/UPDATE/DELETE/MERGE/...) statements sent in a single call to the database?- Specified by:
supportsBatchUpdates
in interfaceDatabase
- Returns:
- true if the database has this capability for all DML statements, false in all other cases
-
getMaxFractionalDigitsForTimestamp
public int getMaxFractionalDigitsForTimestamp()Description copied from interface:Database
Determines the maximum precision (number of fractional digits) for TIMESTAMP columns for the given database. Might not always be able to give an exact answer since, for some DBMS, it depends on the actual software version if fractional digits are supported. A warning should be logged in this case.- Specified by:
getMaxFractionalDigitsForTimestamp
in interfaceDatabase
- Returns:
- the number of allowed fractional digits for TIMESTAMP columns. May return 0.
-
getDefaultFractionalDigitsForTimestamp
public int getDefaultFractionalDigitsForTimestamp()Description copied from interface:Database
When a TIMESTAMP column without the parameter "number of fractional digits" is created, what is the default value?- Specified by:
getDefaultFractionalDigitsForTimestamp
in interfaceDatabase
- Returns:
- The default number of fractional digits for TIMESTAMP columns
-
requiresExplicitNullForColumns
public boolean requiresExplicitNullForColumns()Description copied from interface:Database
Does the database require explicit NULL for nullable columns?- Specified by:
requiresExplicitNullForColumns
in interfaceDatabase
- Returns:
- true if the database behaves incorrectly if NULL is not explicitly specified, false if it behaves like any good RDBMS should.
-
supportsCreateIfNotExists
Description copied from interface:Database
Does the database support the "if not exits" syntax?- Specified by:
supportsCreateIfNotExists
in interfaceDatabase
- Parameters:
type
- the DatabaseObject type to be checked.- Returns:
- true if the "if not exists" syntax is supported, false otherwise.
-