public interface Database extends PrioritizedService
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
databaseChangeLogLockTableName |
static java.lang.String |
databaseChangeLogTableName |
PRIORITY_DATABASE, PRIORITY_DEFAULT
Modifier and Type | Method and Description |
---|---|
void |
checkDatabaseChangeLogLockTable() |
void |
checkDatabaseChangeLogTable(boolean updateExistingNullChecksums,
DatabaseChangeLog databaseChangeLog,
java.lang.String[] contexts) |
void |
close() |
void |
commit() |
java.lang.String |
correctObjectName(java.lang.String name,
java.lang.Class<? extends DatabaseObject> objectType)
Fix the object name to the format the database expects, handling changes in case, etc.
|
CatalogAndSchema |
correctSchema(CatalogAndSchema schema)
Returns a new CatalogAndSchema adjusted for this database.
|
boolean |
createsIndexesForForeignKeys() |
boolean |
dataTypeIsNotModifiable(java.lang.String typeName)
Types like int4 in postgres cannot have a modifier.
|
boolean |
disableForeignKeyChecks() |
boolean |
doesTagExist(java.lang.String tag) |
void |
dropDatabaseObjects(CatalogAndSchema schema) |
void |
enableForeignKeyChecks() |
java.lang.String |
escapeColumnName(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String columnName)
Escapes a single column name in a database-dependent manner so reserved words can be used as a column
name (i.e.
|
java.lang.String |
escapeColumnNameList(java.lang.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.
|
java.lang.String |
escapeConstraintName(java.lang.String constraintName) |
java.lang.String |
escapeIndexName(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String indexName) |
java.lang.String |
escapeObjectName(java.lang.String objectName,
java.lang.Class<? extends DatabaseObject> objectType) |
java.lang.String |
escapeObjectName(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String objectName,
java.lang.Class<? extends DatabaseObject> objectType) |
java.lang.String |
escapeSequenceName(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String sequenceName) |
java.lang.String |
escapeStringForDatabase(java.lang.String string) |
java.lang.String |
escapeTableName(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName) |
java.lang.String |
escapeViewName(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String viewName) |
void |
execute(SqlStatement[] statements,
java.util.List<SqlVisitor> sqlVisitors) |
void |
executeRollbackStatements(Change change,
java.util.List<SqlVisitor> sqlVisitors) |
void |
executeStatements(Change change,
DatabaseChangeLog changeLog,
java.util.List<SqlVisitor> sqlVisitors) |
java.lang.String |
generateDatabaseFunctionValue(DatabaseFunction databaseFunction)
Some function names are placeholders that need to be replaced with the specific database value.
|
java.lang.String |
generatePrimaryKeyName(java.lang.String tableName) |
boolean |
getAutoCommitMode()
Auto-commit mode to run in
|
java.lang.String |
getAutoIncrementClause(java.math.BigInteger startWith,
java.math.BigInteger incrementBy) |
java.lang.String |
getConcatSql(java.lang.String... values)
Returns SQL to concat the passed values.
|
DatabaseConnection |
getConnection() |
java.lang.String |
getCurrentDateTimeFunction()
Returns database-specific function for generating the current date/time.
|
java.lang.String |
getDatabaseChangeLogLockTableName() |
java.lang.String |
getDatabaseChangeLogTableName() |
int |
getDatabaseMajorVersion() |
int |
getDatabaseMinorVersion() |
java.lang.String |
getDatabaseProductName() |
java.lang.String |
getDatabaseProductVersion() |
int |
getDataTypeMaxParameters(java.lang.String dataTypeName) |
java.util.List<DatabaseFunction> |
getDateFunctions()
Returns list of database native date functions
|
java.lang.String |
getDateLiteral(java.sql.Date date) |
java.lang.String |
getDateLiteral(java.util.Date defaultDateValue) |
java.lang.String |
getDateLiteral(java.lang.String isoDate) |
java.lang.String |
getDateTimeLiteral(java.sql.Timestamp timeStamp) |
java.lang.String |
getDefaultCatalogName() |
java.lang.String |
getDefaultDriver(java.lang.String url)
If this database understands the given url, return the default driver class name.
|
java.lang.Integer |
getDefaultPort() |
CatalogAndSchema |
getDefaultSchema() |
java.lang.String |
getDefaultSchemaName() |
java.lang.String |
getLineComment() |
java.lang.String |
getLiquibaseCatalogName() |
java.lang.String |
getLiquibaseSchemaName() |
java.lang.String |
getLiquibaseTablespaceName() |
int |
getNextChangeSetSequenceValue() |
ObjectQuotingStrategy |
getObjectQuotingStrategy() |
boolean |
getOutputDefaultCatalog() |
boolean |
getOutputDefaultSchema() |
RanChangeSet |
getRanChangeSet(ChangeSet changeSet) |
java.util.List<RanChangeSet> |
getRanChangeSetList() |
java.util.Date |
getRanDate(ChangeSet changeSet) |
ChangeSet.RunStatus |
getRunStatus(ChangeSet changeSet) |
java.lang.String |
getShortName()
Returns an all-lower-case short name of the product.
|
java.lang.String |
getTimeLiteral(java.sql.Time time) |
java.lang.String |
getViewDefinition(CatalogAndSchema schema,
java.lang.String name) |
boolean |
hasDatabaseChangeLogLockTable() |
boolean |
hasDatabaseChangeLogTable() |
boolean |
isAutoCommit() |
boolean |
isCaseSensitive() |
boolean |
isCorrectDatabaseImplementation(DatabaseConnection conn)
Is this AbstractDatabase subclass the correct one to use for the given connection.
|
boolean |
isDefaultCatalog(java.lang.String catalog) |
boolean |
isDefaultSchema(java.lang.String catalog,
java.lang.String schema) |
boolean |
isFunction(java.lang.String string) |
boolean |
isLiquibaseObject(DatabaseObject object) |
boolean |
isReservedWord(java.lang.String string) |
boolean |
isSafeToRunUpdate() |
boolean |
isSystemObject(DatabaseObject example) |
void |
markChangeSetExecStatus(ChangeSet changeSet,
ChangeSet.ExecType execType) |
java.util.Date |
parseDate(java.lang.String dateAsString) |
void |
removeRanStatus(ChangeSet changeSet) |
boolean |
requiresPassword() |
boolean |
requiresUsername() |
void |
resetInternalState() |
void |
rollback() |
void |
saveRollbackStatement(Change change,
java.util.List<SqlVisitor> sqlVisitors,
java.io.Writer writer) |
void |
saveStatements(Change change,
java.util.List<SqlVisitor> sqlVisitors,
java.io.Writer writer) |
void |
setAutoCommit(boolean b) |
void |
setCanCacheLiquibaseTableInfo(boolean canCacheLiquibaseTableInfo) |
void |
setConnection(DatabaseConnection conn) |
void |
setCurrentDateTimeFunction(java.lang.String function) |
void |
setDatabaseChangeLogLockTableName(java.lang.String tableName)
Set the table name of the change log lock to the given table name
|
void |
setDatabaseChangeLogTableName(java.lang.String tableName)
Set the table name of the change log to the given table name
|
void |
setDefaultCatalogName(java.lang.String catalogName) |
void |
setDefaultSchemaName(java.lang.String schemaName) |
void |
setLiquibaseCatalogName(java.lang.String catalogName) |
void |
setLiquibaseSchemaName(java.lang.String schemaName) |
void |
setLiquibaseTablespaceName(java.lang.String tablespaceName) |
void |
setObjectQuotingStrategy(ObjectQuotingStrategy quotingStrategy) |
void |
setOutputDefaultCatalog(boolean outputDefaultCatalog) |
void |
setOutputDefaultSchema(boolean outputDefaultSchema)
Whether the default schema should be included in generated SQL
|
boolean |
supportsAutoIncrement() |
boolean |
supportsCatalogInObjectName(java.lang.Class<? extends DatabaseObject> type) |
boolean |
supportsCatalogs() |
boolean |
supportsDDLInTransaction()
Determines if the database supports DDL within a transaction or not.
|
boolean |
supportsDropTableCascadeConstraints() |
boolean |
supportsForeignKeyDisable() |
boolean |
supportsInitiallyDeferrableColumns()
Returns whether this database support initially deferrable columns.
|
boolean |
supportsPrimaryKeyNames() |
boolean |
supportsRestrictForeignKeys() |
boolean |
supportsSchemas() |
boolean |
supportsSequences() |
boolean |
supportsTablespaces() |
void |
tag(java.lang.String tagString) |
getPriority
static final java.lang.String databaseChangeLogTableName
static final java.lang.String databaseChangeLogLockTableName
boolean isCorrectDatabaseImplementation(DatabaseConnection conn) throws DatabaseException
DatabaseException
java.lang.String getDefaultDriver(java.lang.String url)
DatabaseConnection getConnection()
void setConnection(DatabaseConnection conn)
boolean requiresUsername()
boolean requiresPassword()
boolean getAutoCommitMode()
boolean supportsDDLInTransaction()
java.lang.String getDatabaseProductName()
java.lang.String getDatabaseProductVersion() throws DatabaseException
DatabaseException
int getDatabaseMajorVersion() throws DatabaseException
DatabaseException
int getDatabaseMinorVersion() throws DatabaseException
DatabaseException
java.lang.String getShortName()
java.lang.String getDefaultCatalogName()
void setDefaultCatalogName(java.lang.String catalogName) throws DatabaseException
DatabaseException
java.lang.String getDefaultSchemaName()
void setDefaultSchemaName(java.lang.String schemaName) throws DatabaseException
DatabaseException
java.lang.Integer getDefaultPort()
java.lang.String getLiquibaseCatalogName()
void setLiquibaseCatalogName(java.lang.String catalogName)
java.lang.String getLiquibaseSchemaName()
void setLiquibaseSchemaName(java.lang.String schemaName)
boolean supportsInitiallyDeferrableColumns()
boolean supportsSequences()
boolean supportsDropTableCascadeConstraints()
boolean supportsAutoIncrement()
java.lang.String getDateLiteral(java.lang.String isoDate)
java.lang.String getCurrentDateTimeFunction()
void setCurrentDateTimeFunction(java.lang.String function)
java.lang.String getLineComment()
java.lang.String getAutoIncrementClause(java.math.BigInteger startWith, java.math.BigInteger incrementBy)
java.lang.String getDatabaseChangeLogTableName()
java.lang.String getDatabaseChangeLogLockTableName()
java.lang.String getLiquibaseTablespaceName()
void setLiquibaseTablespaceName(java.lang.String tablespaceName)
void setDatabaseChangeLogTableName(java.lang.String tableName)
tableName
- void setDatabaseChangeLogLockTableName(java.lang.String tableName)
tableName
- java.lang.String getConcatSql(java.lang.String... values)
boolean hasDatabaseChangeLogTable() throws DatabaseException
DatabaseException
void setCanCacheLiquibaseTableInfo(boolean canCacheLiquibaseTableInfo)
boolean hasDatabaseChangeLogLockTable() throws DatabaseException
DatabaseException
void checkDatabaseChangeLogTable(boolean updateExistingNullChecksums, DatabaseChangeLog databaseChangeLog, java.lang.String[] contexts) throws DatabaseException
DatabaseException
void checkDatabaseChangeLogLockTable() throws DatabaseException
DatabaseException
void dropDatabaseObjects(CatalogAndSchema schema) throws LiquibaseException
LiquibaseException
void tag(java.lang.String tagString) throws DatabaseException
DatabaseException
boolean doesTagExist(java.lang.String tag) throws DatabaseException
DatabaseException
boolean isSystemObject(DatabaseObject example)
boolean isLiquibaseObject(DatabaseObject object)
java.lang.String getViewDefinition(CatalogAndSchema schema, java.lang.String name) throws DatabaseException
DatabaseException
java.lang.String getDateLiteral(java.sql.Date date)
java.lang.String getTimeLiteral(java.sql.Time time)
java.lang.String getDateTimeLiteral(java.sql.Timestamp timeStamp)
java.lang.String getDateLiteral(java.util.Date defaultDateValue)
java.lang.String escapeObjectName(java.lang.String catalogName, java.lang.String schemaName, java.lang.String objectName, java.lang.Class<? extends DatabaseObject> objectType)
java.lang.String escapeTableName(java.lang.String catalogName, java.lang.String schemaName, java.lang.String tableName)
java.lang.String escapeIndexName(java.lang.String catalogName, java.lang.String schemaName, java.lang.String indexName)
java.lang.String escapeObjectName(java.lang.String objectName, java.lang.Class<? extends DatabaseObject> objectType)
java.lang.String escapeColumnName(java.lang.String catalogName, java.lang.String schemaName, java.lang.String tableName, java.lang.String columnName)
schemaName
- tableName
- columnName
- column namejava.lang.String escapeColumnNameList(java.lang.String columnNames)
columnNames
- list of column namesboolean supportsTablespaces()
boolean supportsCatalogs()
boolean supportsSchemas()
boolean supportsCatalogInObjectName(java.lang.Class<? extends DatabaseObject> type)
java.lang.String generatePrimaryKeyName(java.lang.String tableName)
java.lang.String escapeSequenceName(java.lang.String catalogName, java.lang.String schemaName, java.lang.String sequenceName)
java.lang.String escapeViewName(java.lang.String catalogName, java.lang.String schemaName, java.lang.String viewName)
ChangeSet.RunStatus getRunStatus(ChangeSet changeSet) throws DatabaseException, DatabaseHistoryException
RanChangeSet getRanChangeSet(ChangeSet changeSet) throws DatabaseException, DatabaseHistoryException
void markChangeSetExecStatus(ChangeSet changeSet, ChangeSet.ExecType execType) throws DatabaseException
DatabaseException
java.util.List<RanChangeSet> getRanChangeSetList() throws DatabaseException
DatabaseException
java.util.Date getRanDate(ChangeSet changeSet) throws DatabaseException, DatabaseHistoryException
void removeRanStatus(ChangeSet changeSet) throws DatabaseException
DatabaseException
void commit() throws DatabaseException
DatabaseException
void rollback() throws DatabaseException
DatabaseException
java.lang.String escapeStringForDatabase(java.lang.String string)
void close() throws DatabaseException
DatabaseException
boolean supportsRestrictForeignKeys()
java.lang.String escapeConstraintName(java.lang.String constraintName)
boolean isAutoCommit() throws DatabaseException
DatabaseException
void setAutoCommit(boolean b) throws DatabaseException
DatabaseException
boolean isSafeToRunUpdate() throws DatabaseException
DatabaseException
void executeStatements(Change change, DatabaseChangeLog changeLog, java.util.List<SqlVisitor> sqlVisitors) throws LiquibaseException
LiquibaseException
void execute(SqlStatement[] statements, java.util.List<SqlVisitor> sqlVisitors) throws LiquibaseException
LiquibaseException
void saveStatements(Change change, java.util.List<SqlVisitor> sqlVisitors, java.io.Writer writer) throws java.io.IOException, StatementNotSupportedOnDatabaseException, LiquibaseException
java.io.IOException
StatementNotSupportedOnDatabaseException
LiquibaseException
void executeRollbackStatements(Change change, java.util.List<SqlVisitor> sqlVisitors) throws LiquibaseException, RollbackImpossibleException
void saveRollbackStatement(Change change, java.util.List<SqlVisitor> sqlVisitors, java.io.Writer writer) throws java.io.IOException, RollbackImpossibleException, StatementNotSupportedOnDatabaseException, LiquibaseException
java.io.IOException
RollbackImpossibleException
StatementNotSupportedOnDatabaseException
LiquibaseException
int getNextChangeSetSequenceValue() throws LiquibaseException
LiquibaseException
java.util.Date parseDate(java.lang.String dateAsString) throws DateParseException
DateParseException
java.util.List<DatabaseFunction> getDateFunctions()
void resetInternalState()
boolean supportsForeignKeyDisable()
boolean disableForeignKeyChecks() throws DatabaseException
DatabaseException
void enableForeignKeyChecks() throws DatabaseException
DatabaseException
boolean isCaseSensitive()
boolean isReservedWord(java.lang.String string)
CatalogAndSchema correctSchema(CatalogAndSchema schema)
schema
- java.lang.String correctObjectName(java.lang.String name, java.lang.Class<? extends DatabaseObject> objectType)
boolean isFunction(java.lang.String string)
int getDataTypeMaxParameters(java.lang.String dataTypeName)
CatalogAndSchema getDefaultSchema()
boolean dataTypeIsNotModifiable(java.lang.String typeName)
typeName
- type namejava.lang.String generateDatabaseFunctionValue(DatabaseFunction databaseFunction)
databaseFunction
- database function to check.void setObjectQuotingStrategy(ObjectQuotingStrategy quotingStrategy)
ObjectQuotingStrategy getObjectQuotingStrategy()
boolean createsIndexesForForeignKeys()
void setOutputDefaultSchema(boolean outputDefaultSchema)
boolean getOutputDefaultSchema()
boolean isDefaultSchema(java.lang.String catalog, java.lang.String schema)
boolean isDefaultCatalog(java.lang.String catalog)
boolean getOutputDefaultCatalog()
void setOutputDefaultCatalog(boolean outputDefaultCatalog)
boolean supportsPrimaryKeyNames()