public class PostgresDatabase extends AbstractJdbcDatabase
| Modifier and Type | Class and Description |
|---|---|
static class |
PostgresDatabase.DbTypes
Represents Postgres DB types.
|
| Modifier and Type | Field and Description |
|---|---|
static int |
MINIMUM_DBMS_MAJOR_VERSION |
static int |
MINIMUM_DBMS_MINOR_VERSION |
static String |
PRODUCT_NAME |
caseSensitive, currentDateTimeFunction, dateFunctions, defaultAutoIncrementBy, defaultAutoIncrementStartWith, defaultCatalogName, defaultSchemaName, quotingStrategy, sequenceCurrentValueFunction, sequenceNextValueFunction, unmodifiableDataTypes, unquotedObjectsAreUppercasedCOMPARATOR, PRIORITY_DATABASE, PRIORITY_DEFAULT| Constructor and Description |
|---|
PostgresDatabase() |
| Modifier and Type | Method and Description |
|---|---|
String |
correctObjectName(String objectName,
Class<? extends DatabaseObject> objectType)
Fix the object name to the format the database expects, handling changes in case, etc.
|
boolean |
equals(Object o) |
String |
escapeObjectName(String objectName,
Class<? extends DatabaseObject> objectType)
This has special case logic to handle NOT quoting column names if they are
of type 'LiquibaseColumn' - columns in the DATABASECHANGELOG or DATABASECHANGELOGLOCK
tables.
|
boolean |
generateAutoIncrementBy(BigInteger incrementBy) |
boolean |
generateAutoIncrementStartWith(BigInteger startWith) |
String |
generatePrimaryKeyName(String tableName) |
String |
getAutoIncrementClause() |
protected SqlStatement |
getConnectionSchemaNameCallStatement()
Used to obtain the connection schema name through a statement
Override this method to change the statement.
|
String |
getDatabaseChangeLogLockTableName() |
String |
getDatabaseChangeLogTableName() |
String |
getDatabaseFullVersion() |
PostgresDatabase.DbTypes |
getDbType()
Method to get Postgres DB type
|
protected String |
getDefaultDatabaseProductName() |
String |
getDefaultDriver(String url)
If this database understands the given url, return the default driver class name.
|
Integer |
getDefaultPort() |
int |
getMaxFractionalDigitsForTimestamp()
Most relational databases support 9 fractional digits, and subclasses must overwrite this method if they
support less than that.
|
int |
getPriority() |
CatalogAndSchema.CatalogAndSchemaCase |
getSchemaAndCatalogCase()
This logic is used when db support catalogs
|
String |
getShortName()
Returns an all-lower-case short name of the product.
|
Set<String> |
getSystemViews()
Returns system (undroppable) views.
|
int |
hashCode() |
protected boolean |
hasMixedCase(String tableName) |
boolean |
isCorrectDatabaseImplementation(DatabaseConnection conn)
Is this AbstractDatabase subclass the correct one to use for the given connection.
|
boolean |
isReservedWord(String tableName) |
boolean |
isSystemObject(DatabaseObject example) |
void |
setConnection(DatabaseConnection conn) |
boolean |
supportsCatalogInObjectName(Class<? extends DatabaseObject> type) |
boolean |
supportsInitiallyDeferrableColumns()
Returns whether this database support initially deferrable columns.
|
boolean |
supportsSequences()
Does the database type support sequence.
|
boolean |
supportsTablespaces() |
addReservedWords, canCreateChangeLogTable, close, commit, correctSchema, correctSchema, createsIndexesForForeignKeys, dataTypeIsNotModifiable, disableForeignKeyChecks, doesTagExist, dropDatabaseObjects, enableForeignKeyChecks, escapeColumnName, escapeColumnName, escapeColumnNameList, escapeConstraintName, escapeDataTypeName, escapeIndexName, escapeObjectName, escapeSequenceName, escapeStringForDatabase, escapeTableName, escapeViewName, execute, executeRollbackStatements, executeRollbackStatements, executeStatements, filterRollbackVisitors, generateDatabaseFunctionValue, get, getAutoCommitMode, getAutoIncrementByClause, getAutoIncrementClause, getAutoIncrementClause, getAutoIncrementClosing, getAutoIncrementOpening, getAutoIncrementStartWithClause, getConcatSql, getConnection, getConnectionCatalogName, getConnectionSchemaName, getContainingObjects, getCurrentDateTimeFunction, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductName, getDatabaseProductVersion, getDataTypeMaxParameters, getDateFunctions, getDateLiteral, getDateLiteral, getDateLiteral, getDateTimeLiteral, getDefaultCatalogName, getDefaultFractionalDigitsForTimestamp, getDefaultScaleForNativeDataType, getDefaultSchema, getDefaultSchemaName, getFetchSize, getJdbcCatalogName, getJdbcCatalogName, getJdbcSchemaName, getJdbcSchemaName, getLineComment, getLiquibaseCatalogName, getLiquibaseSchemaName, getLiquibaseTablespaceName, getName, getObjectQuotingStrategy, getOutputDefaultCatalog, getOutputDefaultSchema, getQuotingEndCharacter, getQuotingEndReplacement, getQuotingStartCharacter, getRanChangeSet, getRanChangeSetList, getRanDate, getRunStatus, getSchemaFromJdbcInfo, getSystemSchema, getSystemTables, getTimeLiteral, getViewDefinition, isAutoCommit, isCaseSensitive, isDateOnly, isDateTime, isDefaultCatalog, isDefaultSchema, isFunction, isLiquibaseObject, isSafeToRunUpdate, isSystemView, isTimeOnly, isTimestamp, jdbcCallsCatalogsSchemas, markChangeSetExecStatus, mustQuoteObjectName, parseDate, quoteObject, removeRanStatus, requiresExplicitNullForColumns, requiresPassword, requiresUsername, resetInternalState, rollback, saveRollbackStatement, saveStatements, set, setAutoCommit, setCanCacheLiquibaseTableInfo, setCaseSensitive, setCurrentDateTimeFunction, setDatabaseChangeLogLockTableName, setDatabaseChangeLogTableName, setDefaultCatalogName, setDefaultSchemaName, setLiquibaseCatalogName, setLiquibaseSchemaName, setLiquibaseTablespaceName, setObjectQuotingStrategy, setOutputDefaultCatalog, setOutputDefaultSchema, startsWithNumeric, supportsAutoIncrement, supportsBatchUpdates, supportsCatalogs, supportsDDLInTransaction, supportsDropTableCascadeConstraints, supportsForeignKeyDisable, supportsNotNullConstraintNames, supportsPrimaryKeyNames, supportsRestrictForeignKeys, supportsSchemas, tag, toString, unescapeDataTypeName, unescapeDataTypeString, validatepublic static final String PRODUCT_NAME
public static final int MINIMUM_DBMS_MAJOR_VERSION
public static final int MINIMUM_DBMS_MINOR_VERSION
public boolean equals(Object o)
equals in class AbstractJdbcDatabasepublic int hashCode()
hashCode in class AbstractJdbcDatabasepublic String getShortName()
Databaseprotected String getDefaultDatabaseProductName()
getDefaultDatabaseProductName in class AbstractJdbcDatabasepublic Integer getDefaultPort()
public Set<String> getSystemViews()
AbstractJdbcDatabasegetSystemViews in class AbstractJdbcDatabasepublic int getPriority()
public boolean supportsInitiallyDeferrableColumns()
Databasepublic boolean isCorrectDatabaseImplementation(DatabaseConnection conn) throws DatabaseException
DatabaseDatabaseExceptionpublic String getDefaultDriver(String url)
Databasepublic boolean supportsCatalogInObjectName(Class<? extends DatabaseObject> type)
supportsCatalogInObjectName in interface DatabasesupportsCatalogInObjectName in class AbstractJdbcDatabasepublic boolean supportsSequences()
AbstractJdbcDatabasesupportsSequences in interface DatabasesupportsSequences in class AbstractJdbcDatabasepublic String getDatabaseChangeLogTableName()
getDatabaseChangeLogTableName in interface DatabasegetDatabaseChangeLogTableName in class AbstractJdbcDatabasepublic String getDatabaseChangeLogLockTableName()
getDatabaseChangeLogLockTableName in interface DatabasegetDatabaseChangeLogLockTableName in class AbstractJdbcDatabasepublic void setConnection(DatabaseConnection conn)
setConnection in interface DatabasesetConnection in class AbstractJdbcDatabasepublic boolean isSystemObject(DatabaseObject example)
isSystemObject in interface DatabaseisSystemObject in class AbstractJdbcDatabasepublic boolean supportsTablespaces()
public String getAutoIncrementClause()
getAutoIncrementClause in class AbstractJdbcDatabasepublic boolean generateAutoIncrementStartWith(BigInteger startWith)
generateAutoIncrementStartWith in class AbstractJdbcDatabasepublic boolean generateAutoIncrementBy(BigInteger incrementBy)
generateAutoIncrementBy in class AbstractJdbcDatabasepublic String escapeObjectName(String objectName, Class<? extends DatabaseObject> objectType)
escapeObjectName in interface DatabaseescapeObjectName in class AbstractJdbcDatabasepublic String correctObjectName(String objectName, Class<? extends DatabaseObject> objectType)
DatabasecorrectObjectName in interface DatabasecorrectObjectName in class AbstractJdbcDatabaseprotected boolean hasMixedCase(String tableName)
public boolean isReservedWord(String tableName)
isReservedWord in interface DatabaseisReservedWord in class AbstractJdbcDatabaseprotected SqlStatement getConnectionSchemaNameCallStatement()
AbstractJdbcDatabasegetConnectionSchemaNameCallStatement in class AbstractJdbcDatabaseAbstractJdbcDatabase.getConnectionSchemaName()public String generatePrimaryKeyName(String tableName)
generatePrimaryKeyName in interface DatabasegeneratePrimaryKeyName in class AbstractJdbcDatabasepublic int getMaxFractionalDigitsForTimestamp()
AbstractJdbcDatabasegetMaxFractionalDigitsForTimestamp in interface DatabasegetMaxFractionalDigitsForTimestamp in class AbstractJdbcDatabasepublic CatalogAndSchema.CatalogAndSchemaCase getSchemaAndCatalogCase()
AbstractJdbcDatabasegetSchemaAndCatalogCase in interface DatabasegetSchemaAndCatalogCase in class AbstractJdbcDatabasepublic String getDatabaseFullVersion() throws DatabaseException
DatabaseExceptionpublic PostgresDatabase.DbTypes getDbType()
Copyright © 2019 Liquibase.org. All rights reserved.