public abstract class AbstractJdbcDatabase extends Object implements Database
| Modifier and Type | Field and Description |
|---|---|
protected Boolean |
caseSensitive |
protected String |
currentDateTimeFunction |
protected List<DatabaseFunction> |
dateFunctions |
protected BigInteger |
defaultAutoIncrementBy |
protected BigInteger |
defaultAutoIncrementStartWith |
protected String |
defaultCatalogName |
protected String |
defaultSchemaName |
protected ObjectQuotingStrategy |
quotingStrategy |
protected String |
sequenceCurrentValueFunction |
protected String |
sequenceNextValueFunction
The sequence name will be substituted into the string e.g.
|
protected List<String> |
unmodifiableDataTypes |
protected Boolean |
unquotedObjectsAreUppercased |
COMPARATOR, PRIORITY_DATABASE, PRIORITY_DEFAULT| Constructor and Description |
|---|
AbstractJdbcDatabase() |
| Modifier and Type | Method and Description |
|---|---|
void |
addReservedWords(Collection<String> words) |
protected boolean |
canCreateChangeLogTable() |
void |
close() |
void |
commit() |
String |
correctObjectName(String objectName,
Class<? extends DatabaseObject> objectType)
Fix the object name to the format the database expects, handling changes in case, etc.
|
CatalogAndSchema |
correctSchema(CatalogAndSchema schema)
Deprecated.
|
CatalogAndSchema |
correctSchema(String catalog,
String schema)
Deprecated.
|
boolean |
createsIndexesForForeignKeys() |
boolean |
dataTypeIsNotModifiable(String typeName)
Types like int4 in postgres cannot have a modifier.
|
boolean |
disableForeignKeyChecks() |
boolean |
doesTagExist(String tag) |
void |
dropDatabaseObjects(CatalogAndSchema schemaToDrop)
Drops all objects in a specified schema.
|
void |
enableForeignKeyChecks() |
boolean |
equals(Object o) |
String |
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.
|
String |
escapeColumnName(String catalogName,
String schemaName,
String tableName,
String columnName,
boolean quoteNamesThatMayBeFunctions)
Similar to
Database.escapeColumnName(String, String, String, String) but allows control over whether function-like names should be left unquoted. |
String |
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.
|
String |
escapeConstraintName(String constraintName) |
String |
escapeDataTypeName(String dataTypeName) |
String |
escapeIndexName(String catalogName,
String schemaName,
String indexName) |
String |
escapeObjectName(String objectName,
Class<? extends DatabaseObject> objectType) |
String |
escapeObjectName(String catalogName,
String schemaName,
String objectName,
Class<? extends DatabaseObject> objectType) |
String |
escapeSequenceName(String catalogName,
String schemaName,
String sequenceName) |
String |
escapeStringForDatabase(String string) |
String |
escapeTableName(String catalogName,
String schemaName,
String tableName) |
String |
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) |
protected List<SqlVisitor> |
filterRollbackVisitors(List<SqlVisitor> visitors)
Takes a list of SqlVisitors and returns a new list with only the SqlVisitors set to apply to rollbacks
|
protected boolean |
generateAutoIncrementBy(BigInteger incrementBy) |
protected boolean |
generateAutoIncrementStartWith(BigInteger startWith) |
String |
generateDatabaseFunctionValue(DatabaseFunction databaseFunction)
Some function names are placeholders that need to be replaced with the specific database value.
|
String |
generatePrimaryKeyName(String tableName) |
Object |
get(String key) |
boolean |
getAutoCommitMode()
Auto-commit mode to run in
|
protected String |
getAutoIncrementByClause() |
protected String |
getAutoIncrementClause() |
String |
getAutoIncrementClause(BigInteger startWith,
BigInteger incrementBy,
String generationType,
Boolean defaultOnNull)
Returns database-specific auto-increment DDL clause.
|
protected String |
getAutoIncrementClause(String generationType,
Boolean defaultOnNull)
Default implementation.
|
protected String |
getAutoIncrementClosing() |
protected String |
getAutoIncrementOpening() |
protected String |
getAutoIncrementStartWithClause() |
String |
getConcatSql(String... values)
Returns SQL to concat the passed values.
|
DatabaseConnection |
getConnection() |
protected String |
getConnectionCatalogName() |
protected String |
getConnectionSchemaName()
Overwrite this method to get the default schema name for the connection.
|
protected SqlStatement |
getConnectionSchemaNameCallStatement()
Used to obtain the connection schema name through a statement
Override this method to change the statement.
|
DatabaseObject[] |
getContainingObjects() |
String |
getCurrentDateTimeFunction()
Returns database-specific function for generating the current date/time.
|
String |
getDatabaseChangeLogLockTableName() |
String |
getDatabaseChangeLogTableName() |
int |
getDatabaseMajorVersion() |
int |
getDatabaseMinorVersion() |
String |
getDatabaseProductName()
Returns the name of the database product according to the underlying database.
|
String |
getDatabaseProductVersion() |
int |
getDataTypeMaxParameters(String dataTypeName) |
List<DatabaseFunction> |
getDateFunctions()
Returns list of database native date functions
|
String |
getDateLiteral(Date date) |
String |
getDateLiteral(Date date) |
String |
getDateLiteral(String isoDate)
Return a date literal with the same value as a string formatted using ISO 8601.
|
String |
getDateTimeLiteral(Timestamp date) |
String |
getDefaultCatalogName() |
protected abstract String |
getDefaultDatabaseProductName() |
int |
getDefaultFractionalDigitsForTimestamp()
SQL Standard (Foundation) says: "...if
|
Integer |
getDefaultScaleForNativeDataType(String nativeDataType)
Returns the default precision for a given native data type, e.g.
|
CatalogAndSchema |
getDefaultSchema() |
String |
getDefaultSchemaName() |
Integer |
getFetchSize() |
String |
getJdbcCatalogName(CatalogAndSchema schema) |
String |
getJdbcCatalogName(Schema schema) |
String |
getJdbcSchemaName(CatalogAndSchema schema) |
String |
getJdbcSchemaName(Schema schema) |
String |
getLineComment()
Returns database-specific line comment string.
|
String |
getLiquibaseCatalogName() |
String |
getLiquibaseSchemaName() |
String |
getLiquibaseTablespaceName() |
int |
getMaxFractionalDigitsForTimestamp()
Most relational databases support 9 fractional digits, and subclasses must overwrite this method if they
support less than that.
|
String |
getName() |
ObjectQuotingStrategy |
getObjectQuotingStrategy() |
boolean |
getOutputDefaultCatalog() |
boolean |
getOutputDefaultSchema()
Should the schema be included in identifiers even if it is the default schema?
|
protected String |
getQuotingEndCharacter() |
protected String |
getQuotingEndReplacement() |
protected String |
getQuotingStartCharacter() |
RanChangeSet |
getRanChangeSet(ChangeSet changeSet) |
List<RanChangeSet> |
getRanChangeSetList()
Returns the ChangeSets that have been run against the current database.
|
Date |
getRanDate(ChangeSet changeSet) |
ChangeSet.RunStatus |
getRunStatus(ChangeSet changeSet)
Returns the run status for the given ChangeSet
|
CatalogAndSchema.CatalogAndSchemaCase |
getSchemaAndCatalogCase()
This logic is used when db support catalogs
|
CatalogAndSchema |
getSchemaFromJdbcInfo(String rawCatalogName,
String rawSchemaName) |
String |
getSystemSchema() |
protected Set<String> |
getSystemTables()
Returns system (undroppable) views.
|
protected Set<String> |
getSystemViews()
Returns system (undroppable) views.
|
String |
getTimeLiteral(Time date) |
String |
getViewDefinition(CatalogAndSchema schema,
String viewName) |
int |
hashCode() |
boolean |
isAutoCommit() |
boolean |
isCaseSensitive() |
protected boolean |
isDateOnly(String isoDate)
Returns true if the String conforms to an ISO 8601 date, e.g.
|
protected boolean |
isDateTime(String isoDate)
Returns true if the String conforms to an ISO 8601 date plus a time (hours, minutes, whole seconds
and optionally fraction of a second) in UTC, e.g.
|
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 |
isSafeToRunUpdate()
Default implementation, just look for "local" IPs.
|
boolean |
isSystemObject(DatabaseObject example) |
boolean |
isSystemView(CatalogAndSchema schema,
String viewName) |
protected boolean |
isTimeOnly(String isoDate)
Returns true if the String conforms to an ISO 8601 time (hours, minutes and whole seconds) in UTC,
e.g.
|
protected boolean |
isTimestamp(String isoDate)
Returns true if the String conforms to an ISO 8601 date
plus a timestamp (hours, minutes, seconds and at least one decimal fraction) in UTC,
e.g.
|
boolean |
jdbcCallsCatalogsSchemas() |
void |
markChangeSetExecStatus(ChangeSet changeSet,
ChangeSet.ExecType execType)
After the change set has been ran against the database this method will update the change log table
with the information.
|
protected boolean |
mustQuoteObjectName(String objectName,
Class<? extends DatabaseObject> objectType) |
Date |
parseDate(String dateAsString) |
String |
quoteObject(String objectName,
Class<? extends DatabaseObject> objectType) |
void |
removeRanStatus(ChangeSet changeSet) |
boolean |
requiresExplicitNullForColumns()
Does the database require explicit NULL for nullable columns?
|
boolean |
requiresPassword() |
boolean |
requiresUsername() |
void |
resetInternalState() |
void |
rollback() |
void |
saveRollbackStatement(Change change,
List<SqlVisitor> sqlVisitors,
Writer writer) |
void |
saveStatements(Change change,
List<SqlVisitor> sqlVisitors,
Writer writer) |
AbstractJdbcDatabase |
set(String key,
Object value) |
void |
setAutoCommit(boolean b) |
void |
setCanCacheLiquibaseTableInfo(boolean canCacheLiquibaseTableInfo) |
void |
setCaseSensitive(Boolean caseSensitive) |
void |
setConnection(DatabaseConnection conn) |
void |
setCurrentDateTimeFunction(String function) |
void |
setDatabaseChangeLogLockTableName(String tableName)
Set the table name of the change log lock to the given table name
|
void |
setDatabaseChangeLogTableName(String tableName)
Set the table name of the change log to the given table name
|
void |
setDefaultCatalogName(String defaultCatalogName) |
void |
setDefaultSchemaName(String schemaName) |
void |
setLiquibaseCatalogName(String catalogName) |
void |
setLiquibaseSchemaName(String schemaName) |
void |
setLiquibaseTablespaceName(String tablespace) |
void |
setObjectQuotingStrategy(ObjectQuotingStrategy quotingStrategy) |
void |
setOutputDefaultCatalog(boolean outputDefaultCatalog) |
void |
setOutputDefaultSchema(boolean outputDefaultSchema)
Whether the default schema should be included in generated SQL
|
protected boolean |
startsWithNumeric(String objectName) |
boolean |
supportsAutoIncrement() |
boolean |
supportsBatchUpdates()
Does the database support batched DML (INSERT/UPDATE/DELETE/MERGE/...) statements sent in a single call to
the database?
|
boolean |
supportsCatalogInObjectName(Class<? extends DatabaseObject> type) |
boolean |
supportsCatalogs() |
boolean |
supportsDDLInTransaction()
Determines if the database supports DDL within a transaction or not.
|
boolean |
supportsDropTableCascadeConstraints() |
boolean |
supportsForeignKeyDisable() |
boolean |
supportsNotNullConstraintNames()
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.
|
boolean |
supportsPrimaryKeyNames() |
boolean |
supportsRestrictForeignKeys() |
boolean |
supportsSchemas() |
boolean |
supportsSequences()
Does the database type support sequence.
|
void |
tag(String tagString)
Tags the database changelog with the given string.
|
String |
toString() |
String |
unescapeDataTypeName(String dataTypeName) |
String |
unescapeDataTypeString(String dataTypeString) |
ValidationErrors |
validate() |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitgetDefaultDriver, getDefaultPort, getShortName, isCorrectDatabaseImplementation, supportsInitiallyDeferrableColumns, supportsTablespacesgetPriorityprotected String defaultCatalogName
protected String defaultSchemaName
protected String currentDateTimeFunction
protected String sequenceNextValueFunction
protected String sequenceCurrentValueFunction
protected List<DatabaseFunction> dateFunctions
protected BigInteger defaultAutoIncrementStartWith
protected BigInteger defaultAutoIncrementBy
protected Boolean unquotedObjectsAreUppercased
protected ObjectQuotingStrategy quotingStrategy
protected Boolean caseSensitive
public String getName()
public boolean requiresPassword()
requiresPassword in interface Databasepublic boolean requiresUsername()
requiresUsername in interface Databasepublic DatabaseObject[] getContainingObjects()
public DatabaseConnection getConnection()
getConnection in interface Databasepublic void setConnection(DatabaseConnection conn)
setConnection in interface Databasepublic boolean getAutoCommitMode()
DatabasegetAutoCommitMode in interface Databasepublic final void addReservedWords(Collection<String> words)
addReservedWords in interface Databasepublic boolean supportsDDLInTransaction()
supportsDDLInTransaction in interface Databasepublic String getDatabaseProductName()
DatabasegetDatabaseProductName in interface Databaseprotected abstract String getDefaultDatabaseProductName()
public String getDatabaseProductVersion() throws DatabaseException
getDatabaseProductVersion in interface DatabaseDatabaseExceptionpublic int getDatabaseMajorVersion()
throws DatabaseException
getDatabaseMajorVersion in interface DatabaseDatabaseExceptionpublic int getDatabaseMinorVersion()
throws DatabaseException
getDatabaseMinorVersion in interface DatabaseDatabaseExceptionpublic String getDefaultCatalogName()
getDefaultCatalogName in interface Databasepublic void setDefaultCatalogName(String defaultCatalogName)
setDefaultCatalogName in interface Databaseprotected String getConnectionCatalogName() throws DatabaseException
DatabaseException@Deprecated public CatalogAndSchema correctSchema(String catalog, String schema)
@Deprecated public CatalogAndSchema correctSchema(CatalogAndSchema schema)
DatabasecorrectSchema in interface Databasepublic String correctObjectName(String objectName, Class<? extends DatabaseObject> objectType)
DatabasecorrectObjectName in interface Databasepublic CatalogAndSchema getDefaultSchema()
getDefaultSchema in interface Databasepublic String getDefaultSchemaName()
getDefaultSchemaName in interface Databasepublic Integer getDefaultScaleForNativeDataType(String nativeDataType)
DatabasegetDefaultScaleForNativeDataType in interface DatabasenativeDataType - the name of the native data type (case-insensitive).public void setDefaultSchemaName(String schemaName)
setDefaultSchemaName in interface Databaseprotected String getConnectionSchemaName()
getConnectionSchemaNameCallStatement()protected SqlStatement getConnectionSchemaNameCallStatement()
getConnectionSchemaName()public Integer getFetchSize()
getFetchSize in interface Databasepublic boolean supportsSequences()
supportsSequences in interface Databasepublic boolean supportsAutoIncrement()
supportsAutoIncrement in interface Databasepublic String getDateLiteral(String isoDate)
getDateLiteral in interface Databasepublic String getDateTimeLiteral(Timestamp date)
getDateTimeLiteral in interface Databasepublic String getDateLiteral(Date date)
getDateLiteral in interface Databasepublic String getTimeLiteral(Time date)
getTimeLiteral in interface Databasepublic String getDateLiteral(Date date)
getDateLiteral in interface Databasepublic Date parseDate(String dateAsString) throws DateParseException
parseDate in interface DatabaseDateParseExceptionprotected boolean isDateOnly(String isoDate)
isoDate - value to check.protected boolean isDateTime(String isoDate)
isoDate - value to check.protected boolean isTimestamp(String isoDate)
isoDate - value to checkprotected boolean isTimeOnly(String isoDate)
isoDate - value to checkpublic String getLineComment()
getLineComment in interface Databasepublic String getAutoIncrementClause(BigInteger startWith, BigInteger incrementBy, String generationType, Boolean defaultOnNull)
DatabasegetAutoIncrementClause in interface Databaseprotected String getAutoIncrementClause()
protected String getAutoIncrementClause(String generationType, Boolean defaultOnNull)
protected boolean generateAutoIncrementStartWith(BigInteger startWith)
protected boolean generateAutoIncrementBy(BigInteger incrementBy)
protected String getAutoIncrementOpening()
protected String getAutoIncrementClosing()
protected String getAutoIncrementStartWithClause()
protected String getAutoIncrementByClause()
public String getConcatSql(String... values)
DatabasegetConcatSql in interface Databasepublic String getDatabaseChangeLogTableName()
getDatabaseChangeLogTableName in interface Databasepublic void setDatabaseChangeLogTableName(String tableName)
DatabasesetDatabaseChangeLogTableName in interface Databasepublic String getDatabaseChangeLogLockTableName()
getDatabaseChangeLogLockTableName in interface Databasepublic void setDatabaseChangeLogLockTableName(String tableName)
DatabasesetDatabaseChangeLogLockTableName in interface Databasepublic String getLiquibaseTablespaceName()
getLiquibaseTablespaceName in interface Databasepublic void setLiquibaseTablespaceName(String tablespace)
setLiquibaseTablespaceName in interface Databaseprotected boolean canCreateChangeLogTable()
throws DatabaseException
DatabaseExceptionpublic void setCanCacheLiquibaseTableInfo(boolean canCacheLiquibaseTableInfo)
setCanCacheLiquibaseTableInfo in interface Databasepublic String getLiquibaseCatalogName()
getLiquibaseCatalogName in interface Databasepublic void setLiquibaseCatalogName(String catalogName)
setLiquibaseCatalogName in interface Databasepublic String getLiquibaseSchemaName()
getLiquibaseSchemaName in interface Databasepublic void setLiquibaseSchemaName(String schemaName)
setLiquibaseSchemaName in interface Databasepublic boolean isCaseSensitive()
isCaseSensitive in interface Databasepublic void setCaseSensitive(Boolean caseSensitive)
public boolean isReservedWord(String string)
isReservedWord in interface Databaseprotected boolean startsWithNumeric(String objectName)
public void dropDatabaseObjects(CatalogAndSchema schemaToDrop) throws LiquibaseException
DatabasedropDatabaseObjects in interface DatabaseschemaToDrop - schema (catalog+)schema to dropLiquibaseException - if any problem occurspublic boolean supportsDropTableCascadeConstraints()
supportsDropTableCascadeConstraints in interface Databasepublic boolean isSystemObject(DatabaseObject example)
isSystemObject in interface Databasepublic boolean isSystemView(CatalogAndSchema schema, String viewName)
public boolean isLiquibaseObject(DatabaseObject object)
isLiquibaseObject in interface Databasepublic void tag(String tagString) throws DatabaseException
Databasetag in interface DatabaseDatabaseExceptionpublic boolean doesTagExist(String tag) throws DatabaseException
doesTagExist in interface DatabaseDatabaseExceptionpublic String getViewDefinition(CatalogAndSchema schema, String viewName) throws DatabaseException
getViewDefinition in interface DatabaseDatabaseExceptionpublic String escapeTableName(String catalogName, String schemaName, String tableName)
escapeTableName in interface Databasepublic String escapeObjectName(String catalogName, String schemaName, String objectName, Class<? extends DatabaseObject> objectType)
escapeObjectName in interface Databasepublic String escapeObjectName(String objectName, Class<? extends DatabaseObject> objectType)
escapeObjectName in interface Databaseprotected boolean mustQuoteObjectName(String objectName, Class<? extends DatabaseObject> objectType)
protected String getQuotingStartCharacter()
protected String getQuotingEndCharacter()
protected String getQuotingEndReplacement()
public String quoteObject(String objectName, Class<? extends DatabaseObject> objectType)
public String escapeIndexName(String catalogName, String schemaName, String indexName)
escapeIndexName in interface Databasepublic String escapeSequenceName(String catalogName, String schemaName, String sequenceName)
escapeSequenceName in interface Databasepublic String escapeConstraintName(String constraintName)
escapeConstraintName in interface Databasepublic String escapeColumnName(String catalogName, String schemaName, String tableName, String columnName)
DatabaseescapeColumnName in interface DatabasecolumnName - column namepublic String escapeColumnName(String catalogName, String schemaName, String tableName, String columnName, boolean quoteNamesThatMayBeFunctions)
DatabaseDatabase.escapeColumnName(String, String, String, String) but allows control over whether function-like names should be left unquoted.escapeColumnName in interface Databasepublic String escapeColumnNameList(String columnNames)
DatabaseescapeColumnNameList in interface DatabasecolumnNames - list of column namespublic boolean supportsSchemas()
supportsSchemas in interface Databasepublic boolean supportsCatalogs()
supportsCatalogs in interface Databasepublic boolean jdbcCallsCatalogsSchemas()
public boolean supportsCatalogInObjectName(Class<? extends DatabaseObject> type)
supportsCatalogInObjectName in interface Databasepublic String generatePrimaryKeyName(String tableName)
generatePrimaryKeyName in interface Databasepublic String escapeViewName(String catalogName, String schemaName, String viewName)
escapeViewName in interface Databasepublic ChangeSet.RunStatus getRunStatus(ChangeSet changeSet) throws DatabaseException, DatabaseHistoryException
DatabasegetRunStatus in interface DatabaseDatabaseExceptionDatabaseHistoryExceptionpublic RanChangeSet getRanChangeSet(ChangeSet changeSet) throws DatabaseException, DatabaseHistoryException
getRanChangeSet in interface DatabaseDatabaseExceptionDatabaseHistoryExceptionpublic List<RanChangeSet> getRanChangeSetList() throws DatabaseException
DatabasegetRanChangeSetList in interface DatabaseDatabaseExceptionpublic Date getRanDate(ChangeSet changeSet) throws DatabaseException, DatabaseHistoryException
getRanDate in interface DatabaseDatabaseExceptionDatabaseHistoryExceptionpublic void markChangeSetExecStatus(ChangeSet changeSet, ChangeSet.ExecType execType) throws DatabaseException
DatabasemarkChangeSetExecStatus in interface DatabaseDatabaseExceptionpublic void removeRanStatus(ChangeSet changeSet) throws DatabaseException
removeRanStatus in interface DatabaseDatabaseExceptionpublic String escapeStringForDatabase(String string)
escapeStringForDatabase in interface Databasepublic void commit()
throws DatabaseException
commit in interface DatabaseDatabaseExceptionpublic void rollback()
throws DatabaseException
rollback in interface DatabaseDatabaseExceptionpublic void close()
throws DatabaseException
close in interface DatabaseDatabaseExceptionpublic boolean supportsRestrictForeignKeys()
supportsRestrictForeignKeys in interface Databasepublic boolean isAutoCommit()
throws DatabaseException
isAutoCommit in interface DatabaseDatabaseExceptionpublic void setAutoCommit(boolean b)
throws DatabaseException
setAutoCommit in interface DatabaseDatabaseExceptionpublic boolean isSafeToRunUpdate()
throws DatabaseException
isSafeToRunUpdate in interface DatabaseDatabaseExceptionpublic void executeStatements(Change change, DatabaseChangeLog changeLog, List<SqlVisitor> sqlVisitors) throws LiquibaseException
executeStatements in interface DatabaseLiquibaseExceptionpublic void execute(SqlStatement[] statements, List<SqlVisitor> sqlVisitors) throws LiquibaseException
execute in interface DatabaseLiquibaseExceptionpublic void saveStatements(Change change, List<SqlVisitor> sqlVisitors, Writer writer) throws IOException
saveStatements in interface DatabaseIOExceptionpublic void executeRollbackStatements(SqlStatement[] statements, List<SqlVisitor> sqlVisitors) throws LiquibaseException
executeRollbackStatements in interface DatabaseLiquibaseExceptionpublic void executeRollbackStatements(Change change, List<SqlVisitor> sqlVisitors) throws LiquibaseException
executeRollbackStatements in interface DatabaseLiquibaseExceptionpublic void saveRollbackStatement(Change change, List<SqlVisitor> sqlVisitors, Writer writer) throws IOException, LiquibaseException
saveRollbackStatement in interface DatabaseIOExceptionLiquibaseExceptionprotected List<SqlVisitor> filterRollbackVisitors(List<SqlVisitor> visitors)
public List<DatabaseFunction> getDateFunctions()
DatabasegetDateFunctions in interface Databasepublic boolean isFunction(String string)
isFunction in interface Databasepublic void resetInternalState()
resetInternalState in interface Databasepublic boolean supportsForeignKeyDisable()
supportsForeignKeyDisable in interface Databasepublic boolean disableForeignKeyChecks()
throws DatabaseException
disableForeignKeyChecks in interface DatabaseDatabaseExceptionpublic void enableForeignKeyChecks()
throws DatabaseException
enableForeignKeyChecks in interface DatabaseDatabaseExceptionpublic boolean createsIndexesForForeignKeys()
createsIndexesForForeignKeys in interface Databasepublic int getDataTypeMaxParameters(String dataTypeName)
getDataTypeMaxParameters in interface Databasepublic CatalogAndSchema getSchemaFromJdbcInfo(String rawCatalogName, String rawSchemaName)
public String getJdbcCatalogName(CatalogAndSchema schema)
public String getJdbcSchemaName(CatalogAndSchema schema)
public boolean dataTypeIsNotModifiable(String typeName)
DatabasedataTypeIsNotModifiable in interface DatabasetypeName - type namepublic ObjectQuotingStrategy getObjectQuotingStrategy()
getObjectQuotingStrategy in interface Databasepublic void setObjectQuotingStrategy(ObjectQuotingStrategy quotingStrategy)
setObjectQuotingStrategy in interface Databasepublic String generateDatabaseFunctionValue(DatabaseFunction databaseFunction)
DatabasegenerateDatabaseFunctionValue in interface DatabasedatabaseFunction - database function to check.public String getCurrentDateTimeFunction()
DatabasegetCurrentDateTimeFunction in interface Databasepublic void setCurrentDateTimeFunction(String function)
setCurrentDateTimeFunction in interface Databasepublic boolean isDefaultSchema(String catalog, String schema)
DatabaseisDefaultSchema in interface Databasecatalog - catalog name to be testedschema - schema name to be testedpublic boolean isDefaultCatalog(String catalog)
DatabaseisDefaultCatalog in interface Databasecatalog - catalog name to be testedpublic boolean getOutputDefaultSchema()
DatabasegetOutputDefaultSchema in interface Databasepublic void setOutputDefaultSchema(boolean outputDefaultSchema)
DatabasesetOutputDefaultSchema in interface Databasepublic boolean getOutputDefaultCatalog()
getOutputDefaultCatalog in interface Databasepublic void setOutputDefaultCatalog(boolean outputDefaultCatalog)
setOutputDefaultCatalog in interface Databasepublic boolean supportsPrimaryKeyNames()
supportsPrimaryKeyNames in interface Databasepublic String getSystemSchema()
getSystemSchema in interface Databasepublic String escapeDataTypeName(String dataTypeName)
escapeDataTypeName in interface Databasepublic String unescapeDataTypeName(String dataTypeName)
unescapeDataTypeName in interface Databasepublic String unescapeDataTypeString(String dataTypeString)
unescapeDataTypeString in interface Databasepublic AbstractJdbcDatabase set(String key, Object value)
public ValidationErrors validate()
public int getMaxFractionalDigitsForTimestamp()
getMaxFractionalDigitsForTimestamp in interface Databasepublic int getDefaultFractionalDigitsForTimestamp()
getDefaultFractionalDigitsForTimestamp in interface Databasepublic boolean supportsBatchUpdates()
throws DatabaseException
DatabasesupportsBatchUpdates in interface DatabaseDatabaseExceptionpublic boolean supportsNotNullConstraintNames()
DatabasesupportsNotNullConstraintNames in interface Databasepublic boolean requiresExplicitNullForColumns()
DatabaserequiresExplicitNullForColumns in interface Databasepublic CatalogAndSchema.CatalogAndSchemaCase getSchemaAndCatalogCase()
getSchemaAndCatalogCase in interface DatabaseCopyright © 2019 Liquibase.org. All rights reserved.