Top Fields Constructors Methods
liquibase.snapshot.jvm

public Class ColumnSnapshotGenerator

extends JdbcSnapshotGenerator
Class Inheritance
Known Direct Subclasses
liquibase.snapshot.jvm.ColumnSnapshotGeneratorH2, liquibase.snapshot.jvm.ColumnSnapshotGeneratorInformix, liquibase.snapshot.jvm.ColumnSnapshotGeneratorOracle
Imports
liquibase.Scope, liquibase.database.AbstractJdbcDatabase, .Database, .OfflineConnection, liquibase.database.core.*, liquibase.exception.DatabaseException, liquibase.executor.ExecutorService, liquibase.logging.Logger, liquibase.snapshot.CachedRow, .DatabaseSnapshot, .JdbcDatabaseSnapshot, liquibase.statement.DatabaseFunction, liquibase.statement.core.RawSqlStatement, liquibase.structure.DatabaseObject, liquibase.structure.core.*, liquibase.util.BooleanUtil, .SqlUtil, .StringUtil, java.sql.*, java.util.*, java.util.regex.Matcher, .Pattern

Field Summary

Modifier and TypeField and Description
protected static final String
private final ColumnAutoIncrementService
private static final String
private static final String
private static final String
LIQUIBASE_COMPLETE

This attribute indicates whether we need to process a column object.

private static final String
private static final Pattern
private static final String
private static final Pattern
private static final String
private static final String

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
private static boolean
private boolean
looksLikeFunction(String columnName)

IndexSnapshotGenerator fails to differentiate computed and non-computed column's for PostgresDatabase assume that if COLUMN_NAME contains parentesised expression -- its function reference.

private void
populateValidateNullableIfNeeded(Column column, List<CachedRow> metaDataNotNullConst, Database database)

protected Column
readColumn(CachedRow columnMetadataResultSet, Relation table, Database database)

protected DataType

Returns:

a DataType object with detailed information about the type
readDataType
(CachedRow
the result from the JDBC getColumns() call for the column
columnMetadataResultSet
,
Column
logical definition of the column (object form)
column
,
Database
the database from which the column originates
database
)

Processes metadata of a column, e.g. name, type and default value.

protected Object
readDefaultValue(CachedRow columnMetadataResultSet, Column columnInfo, Database database)

private void
readDefaultValueForMysqlDatabase(CachedRow columnMetadataResultSet, Column column, Database database)

private void
readDefaultValueForPostgresDatabase(CachedRow columnMetadataResultSet, Column columnInfo)

protected void
protected DatabaseObject
Inherited from liquibase.snapshot.jvm.JdbcSnapshotGenerator:
addStatusListeneraddsTocleanNameFromDatabasegetDatabaseCatalogNamesgetPriorityreplacesshouldAddTosnapshotupdateListeners

Field Detail

COLUMN_DEF_COLback to summary
protected static final String COLUMN_DEF_COL
columnAutoIncrementServiceback to summary
private final ColumnAutoIncrementService columnAutoIncrementService
GENERATED_ALWAYS_ASback to summary
private static final String GENERATED_ALWAYS_AS
IS_GENERATED_COLUMNback to summary
private static final String IS_GENERATED_COLUMN
LIQUIBASE_COMPLETEback to summary
private static final String LIQUIBASE_COMPLETE

This attribute indicates whether we need to process a column object. It is visible only in scope of snapshot process.

MYSQL_DEFAULT_GENERATEDback to summary
private static final String MYSQL_DEFAULT_GENERATED
POSTGRES_NUMBER_VALUE_PATTERNback to summary
private static final Pattern POSTGRES_NUMBER_VALUE_PATTERN
POSTGRES_NUMBER_VALUE_REGEXback to summary
private static final String POSTGRES_NUMBER_VALUE_REGEX
POSTGRES_STRING_VALUE_PATTERNback to summary
private static final Pattern POSTGRES_STRING_VALUE_PATTERN
POSTGRES_STRING_VALUE_REGEXback to summary
private static final String POSTGRES_STRING_VALUE_REGEX
YES_VALUEback to summary
private static final String YES_VALUE

Constructor Detail

ColumnSnapshotGeneratorback to summary
public ColumnSnapshotGenerator()

Method Detail

addToback to summary
protected void addTo(DatabaseObject foundObject, DatabaseSnapshot snapshot) throws DatabaseException

Implements abstract liquibase.snapshot.jvm.JdbcSnapshotGenerator.addTo.

Annotations
@Override
hasValidObjectNameback to summary
private static boolean hasValidObjectName(String objectName)
looksLikeFunctionback to summary
private boolean looksLikeFunction(String columnName)

IndexSnapshotGenerator fails to differentiate computed and non-computed column's for PostgresDatabase assume that if COLUMN_NAME contains parentesised expression -- its function reference. should handle cases like: - ((name)::text) - lower/upper((name)::text) - (name)::text || '- concatenation example'

populateValidateNullableIfNeededback to summary
private void populateValidateNullableIfNeeded(Column column, List<CachedRow> metaDataNotNullConst, Database database)
readColumnback to summary
protected Column readColumn(CachedRow columnMetadataResultSet, Relation table, Database database) throws SQLException, DatabaseException
readDataTypeback to summary
protected DataType readDataType(CachedRow columnMetadataResultSet, Column column, Database database) throws DatabaseException

Processes metadata of a column, e.g. name, type and default value. We start with the result of the JDBC DatabaseMetaData.getColumns() method. Depending on Database, additional columns might be present.

Parameters
columnMetadataResultSet:CachedRow

the result from the JDBC getColumns() call for the column

column:Column

logical definition of the column (object form)

database:Database

the database from which the column originates

Returns:DataType

a DataType object with detailed information about the type

Exceptions
DatabaseException:
If an error occurs during processing (mostly caused by Exceptions in JDBC calls)
readDefaultValueback to summary
protected Object readDefaultValue(CachedRow columnMetadataResultSet, Column columnInfo, Database database)
readDefaultValueForMysqlDatabaseback to summary
private void readDefaultValueForMysqlDatabase(CachedRow columnMetadataResultSet, Column column, Database database)
readDefaultValueForPostgresDatabaseback to summary
private void readDefaultValueForPostgresDatabase(CachedRow columnMetadataResultSet, Column columnInfo)
setAutoIncrementDetailsback to summary
protected void setAutoIncrementDetails(Column column, Database database, DatabaseSnapshot snapshot)
snapshotObjectback to summary
protected DatabaseObject snapshotObject(DatabaseObject example, DatabaseSnapshot snapshot) throws DatabaseException

Implements abstract liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshotObject.

Annotations
@Override