liquibase.database.core
Class H2Database

java.lang.Object
  extended by liquibase.database.AbstractJdbcDatabase
      extended by liquibase.database.core.H2Database
All Implemented Interfaces:
Database, PrioritizedService

public class H2Database
extends AbstractJdbcDatabase


Field Summary
 
Fields inherited from class liquibase.database.AbstractJdbcDatabase
caseSensitive, currentDateTimeFunction, dateFunctions, defaultAutoIncrementBy, defaultAutoIncrementStartWith, defaultCatalogName, defaultSchemaName, quotingEndCharacter, quotingEndReplacement, quotingStartCharacter, quotingStrategy, sequenceCurrentValueFunction, sequenceNextValueFunction, unmodifiableDataTypes, unquotedObjectsAreUppercased
 
Fields inherited from interface liquibase.servicelocator.PrioritizedService
COMPARATOR, PRIORITY_DATABASE, PRIORITY_DEFAULT
 
Constructor Summary
H2Database()
           
 
Method Summary
 boolean createsIndexesForForeignKeys()
           
protected  String getAutoIncrementByClause()
           
protected  String getAutoIncrementClause()
           
protected  String getAutoIncrementStartWithClause()
           
 String getConcatSql(String... values)
          Returns SQL to concat the passed values.
protected  String getConnectionSchemaName()
          Overwrite this method to get the default schema name for the connection.
 String getDateLiteral(String isoDate)
          Return a date literal with the same value as a string formatted using ISO 8601.
protected  String getDefaultDatabaseProductName()
           
 String getDefaultDriver(String url)
          If this database understands the given url, return the default driver class name.
 Integer getDefaultPort()
           
 int getPriority()
           
 String getShortName()
          Returns an all-lower-case short name of the product.
 String getViewDefinition(CatalogAndSchema schema, String name)
           
 boolean isCorrectDatabaseImplementation(DatabaseConnection conn)
          Is this AbstractDatabase subclass the correct one to use for the given connection.
 boolean isReservedWord(String objectName)
           
 boolean isSafeToRunUpdate()
          Default implementation, just look for "local" IPs.
 Date parseDate(String dateAsString)
           
 void setConnection(DatabaseConnection conn)
           
 boolean supportsDropTableCascadeConstraints()
           
 boolean supportsInitiallyDeferrableColumns()
          Returns whether this database support initially deferrable columns.
 boolean supportsSequences()
          Does the database type support sequence.
 boolean supportsTablespaces()
           
 
Methods inherited from class liquibase.database.AbstractJdbcDatabase
addReservedWords, canCreateChangeLogTable, close, commit, correctObjectName, correctSchema, correctSchema, dataTypeIsNotModifiable, disableForeignKeyChecks, doesTagExist, dropDatabaseObjects, enableForeignKeyChecks, equals, escapeColumnName, escapeColumnName, escapeColumnNameList, escapeConstraintName, escapeDataTypeName, escapeIndexName, escapeObjectName, escapeObjectName, escapeSequenceName, escapeStringForDatabase, escapeTableName, escapeViewName, execute, executeRollbackStatements, executeRollbackStatements, executeStatements, filterRollbackVisitors, generateAutoIncrementBy, generateAutoIncrementStartWith, generateDatabaseFunctionValue, generatePrimaryKeyName, get, getAutoCommitMode, getAutoIncrementClause, getAutoIncrementClosing, getAutoIncrementOpening, getConnection, getConnectionCatalogName, getConnectionSchemaNameCallStatement, getContainingObjects, getCurrentDateTimeFunction, getDatabaseChangeLogLockTableName, getDatabaseChangeLogTableName, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductName, getDatabaseProductVersion, getDataTypeMaxParameters, getDateFunctions, getDateLiteral, getDateLiteral, getDateTimeLiteral, getDefaultCatalogName, getDefaultSchema, getDefaultSchemaName, getFetchSize, getJdbcCatalogName, getJdbcCatalogName, getJdbcSchemaName, getJdbcSchemaName, getLineComment, getLiquibaseCatalogName, getLiquibaseSchemaName, getLiquibaseTablespaceName, getName, getObjectQuotingStrategy, getOutputDefaultCatalog, getOutputDefaultSchema, getRanChangeSet, getRanChangeSetList, getRanDate, getRunStatus, getSchemaFromJdbcInfo, getSystemSchema, getSystemTables, getSystemViews, getTimeLiteral, hashCode, isAutoCommit, isCaseSensitive, isDateOnly, isDateTime, isDefaultCatalog, isDefaultSchema, isFunction, isLiquibaseObject, isSystemObject, isSystemView, isTimeOnly, isTimestamp, jdbcCallsCatalogsSchemas, markChangeSetExecStatus, mustQuoteObjectName, quoteObject, removeRanStatus, requiresPassword, requiresUsername, resetInternalState, rollback, saveRollbackStatement, saveStatements, set, setAutoCommit, setCanCacheLiquibaseTableInfo, setCaseSensitive, setCurrentDateTimeFunction, setDatabaseChangeLogLockTableName, setDatabaseChangeLogTableName, setDefaultCatalogName, setDefaultSchemaName, setLiquibaseCatalogName, setLiquibaseSchemaName, setLiquibaseTablespaceName, setObjectQuotingStrategy, setOutputDefaultCatalog, setOutputDefaultSchema, startsWithNumeric, supportsAutoIncrement, supportsCatalogInObjectName, supportsCatalogs, supportsDDLInTransaction, supportsForeignKeyDisable, supportsPrimaryKeyNames, supportsRestrictForeignKeys, supportsSchemas, tag, toString, unescapeDataTypeName, unescapeDataTypeString, validate
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

H2Database

public H2Database()
Method Detail

getShortName

public String 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.


getDefaultPort

public Integer getDefaultPort()

getDefaultDatabaseProductName

protected String getDefaultDatabaseProductName()
Specified by:
getDefaultDatabaseProductName in class AbstractJdbcDatabase

getDefaultDriver

public String getDefaultDriver(String url)
Description copied from interface: Database
If this database understands the given url, return the default driver class name. Otherwise return null.


getPriority

public int getPriority()

isCorrectDatabaseImplementation

public boolean isCorrectDatabaseImplementation(DatabaseConnection conn)
                                        throws DatabaseException
Description copied from interface: Database
Is this AbstractDatabase subclass the correct one to use for the given connection.

Throws:
DatabaseException

supportsTablespaces

public boolean supportsTablespaces()

getViewDefinition

public String getViewDefinition(CatalogAndSchema schema,
                                String name)
                         throws DatabaseException
Specified by:
getViewDefinition in interface Database
Overrides:
getViewDefinition in class AbstractJdbcDatabase
Throws:
DatabaseException

parseDate

public Date parseDate(String dateAsString)
               throws DateParseException
Specified by:
parseDate in interface Database
Overrides:
parseDate in class AbstractJdbcDatabase
Throws:
DateParseException

isSafeToRunUpdate

public boolean isSafeToRunUpdate()
                          throws DatabaseException
Description copied from class: AbstractJdbcDatabase
Default implementation, just look for "local" IPs. If the database returns a null URL we return false since we don't know it's safe to run the update.

Specified by:
isSafeToRunUpdate in interface Database
Overrides:
isSafeToRunUpdate in class AbstractJdbcDatabase
Throws:
DatabaseException

supportsSequences

public boolean supportsSequences()
Description copied from class: AbstractJdbcDatabase
Does the database type support sequence.

Specified by:
supportsSequences in interface Database
Overrides:
supportsSequences in class AbstractJdbcDatabase

getConnectionSchemaName

protected String getConnectionSchemaName()
Description copied from class: AbstractJdbcDatabase
Overwrite this method to get the default schema name for the connection. If you only need to change the statement that obtains the current schema then override

Overrides:
getConnectionSchemaName in class AbstractJdbcDatabase
Returns:
See Also:
AbstractJdbcDatabase.getConnectionSchemaNameCallStatement()

getConcatSql

public String getConcatSql(String... values)
Description copied from interface: Database
Returns SQL to concat the passed values.

Specified by:
getConcatSql in interface Database
Overrides:
getConcatSql in class AbstractJdbcDatabase

getDateLiteral

public String getDateLiteral(String isoDate)
Description copied from class: AbstractJdbcDatabase
Return a date literal with the same value as a string formatted using ISO 8601.

Note: many databases accept date literals in ISO8601 format with the 'T' replaced with a space. Only databases which do not accept these strings should need to override this method.

Implementation restriction: Currently, only the following subsets of ISO8601 are supported: yyyy-MM-dd hh:mm:ss yyyy-MM-ddThh:mm:ss

Specified by:
getDateLiteral in interface Database
Overrides:
getDateLiteral in class AbstractJdbcDatabase

isReservedWord

public boolean isReservedWord(String objectName)
Specified by:
isReservedWord in interface Database
Overrides:
isReservedWord in class AbstractJdbcDatabase

supportsInitiallyDeferrableColumns

public boolean supportsInitiallyDeferrableColumns()
Description copied from interface: Database
Returns whether this database support initially deferrable columns.


getAutoIncrementClause

protected String getAutoIncrementClause()
Overrides:
getAutoIncrementClause in class AbstractJdbcDatabase

getAutoIncrementStartWithClause

protected String getAutoIncrementStartWithClause()
Overrides:
getAutoIncrementStartWithClause in class AbstractJdbcDatabase

getAutoIncrementByClause

protected String getAutoIncrementByClause()
Overrides:
getAutoIncrementByClause in class AbstractJdbcDatabase

createsIndexesForForeignKeys

public boolean createsIndexesForForeignKeys()
Specified by:
createsIndexesForForeignKeys in interface Database
Overrides:
createsIndexesForForeignKeys in class AbstractJdbcDatabase

supportsDropTableCascadeConstraints

public boolean supportsDropTableCascadeConstraints()
Specified by:
supportsDropTableCascadeConstraints in interface Database
Overrides:
supportsDropTableCascadeConstraints in class AbstractJdbcDatabase

setConnection

public void setConnection(DatabaseConnection conn)
Specified by:
setConnection in interface Database
Overrides:
setConnection in class AbstractJdbcDatabase


Copyright © 2016 Liquibase.org. All rights reserved.