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 |
addReservedWords(java.util.Collection<java.lang.String> words) |
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() |
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 |
getSystemSchema() |
java.lang.String |
getTimeLiteral(java.sql.Time time) |
java.lang.String |
getViewDefinition(CatalogAndSchema schema,
java.lang.String name) |
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) |
getPrioritystatic final java.lang.String databaseChangeLogTableName
static final java.lang.String databaseChangeLogLockTableName
boolean isCorrectDatabaseImplementation(DatabaseConnection conn) throws DatabaseException
DatabaseExceptionjava.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
DatabaseExceptionint getDatabaseMajorVersion()
throws DatabaseException
DatabaseExceptionint getDatabaseMinorVersion()
throws DatabaseException
DatabaseExceptionjava.lang.String getShortName()
java.lang.String getDefaultCatalogName()
void setDefaultCatalogName(java.lang.String catalogName)
throws DatabaseException
DatabaseExceptionjava.lang.String getDefaultSchemaName()
void setDefaultSchemaName(java.lang.String schemaName)
throws DatabaseException
DatabaseExceptionjava.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)
void setCanCacheLiquibaseTableInfo(boolean canCacheLiquibaseTableInfo)
void dropDatabaseObjects(CatalogAndSchema schema) throws LiquibaseException
LiquibaseExceptionvoid tag(java.lang.String tagString)
throws DatabaseException
DatabaseExceptionboolean doesTagExist(java.lang.String tag)
throws DatabaseException
DatabaseExceptionboolean isSystemObject(DatabaseObject example)
boolean isLiquibaseObject(DatabaseObject object)
java.lang.String getViewDefinition(CatalogAndSchema schema, java.lang.String name) throws DatabaseException
DatabaseExceptionjava.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
DatabaseExceptionjava.util.List<RanChangeSet> getRanChangeSetList() throws DatabaseException
DatabaseExceptionjava.util.Date getRanDate(ChangeSet changeSet) throws DatabaseException, DatabaseHistoryException
void removeRanStatus(ChangeSet changeSet) throws DatabaseException
DatabaseExceptionvoid commit()
throws DatabaseException
DatabaseExceptionvoid rollback()
throws DatabaseException
DatabaseExceptionjava.lang.String escapeStringForDatabase(java.lang.String string)
void close()
throws DatabaseException
DatabaseExceptionboolean supportsRestrictForeignKeys()
java.lang.String escapeConstraintName(java.lang.String constraintName)
boolean isAutoCommit()
throws DatabaseException
DatabaseExceptionvoid setAutoCommit(boolean b)
throws DatabaseException
DatabaseExceptionboolean isSafeToRunUpdate()
throws DatabaseException
DatabaseExceptionvoid executeStatements(Change change, DatabaseChangeLog changeLog, java.util.List<SqlVisitor> sqlVisitors) throws LiquibaseException
LiquibaseExceptionvoid execute(SqlStatement[] statements, java.util.List<SqlVisitor> sqlVisitors) throws LiquibaseException
LiquibaseExceptionvoid saveStatements(Change change, java.util.List<SqlVisitor> sqlVisitors, java.io.Writer writer) throws java.io.IOException, StatementNotSupportedOnDatabaseException, LiquibaseException
java.io.IOExceptionStatementNotSupportedOnDatabaseExceptionLiquibaseExceptionvoid 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.IOExceptionRollbackImpossibleExceptionStatementNotSupportedOnDatabaseExceptionLiquibaseExceptionjava.util.Date parseDate(java.lang.String dateAsString)
throws DateParseException
DateParseExceptionjava.util.List<DatabaseFunction> getDateFunctions()
void resetInternalState()
boolean supportsForeignKeyDisable()
boolean disableForeignKeyChecks()
throws DatabaseException
DatabaseExceptionvoid enableForeignKeyChecks()
throws DatabaseException
DatabaseExceptionboolean 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()
java.lang.String getSystemSchema()
void addReservedWords(java.util.Collection<java.lang.String> words)