public abstract class AbstractSQLChange extends AbstractChange implements DbmsTargetedChange
Modifier and Type | Class and Description |
---|---|
static class |
AbstractSQLChange.NormalizingStream |
LiquibaseSerializable.SerializationType
Modifier and Type | Field and Description |
---|---|
protected String |
encoding |
NODENAME_COLUMN
EMPTY_CHANGE
GENERIC_CHANGELOG_EXTENSION_NAMESPACE, GENERIC_SNAPSHOT_EXTENSION_NAMESPACE, STANDARD_CHANGELOG_NAMESPACE, STANDARD_SNAPSHOT_NAMESPACE
PRIORITY_DEFAULT, PRIORITY_NOT_APPLICABLE, PRIORITY_SPECIALIZED
Modifier | Constructor and Description |
---|---|
protected |
AbstractSQLChange() |
Modifier and Type | Method and Description |
---|---|
ChangeStatus |
checkStatus(Database database)
Validate that this change executed successfully against the given database.
|
CheckSum |
generateCheckSum()
Calculates the checksum based on the contained SQL.
|
boolean |
generateRollbackStatementsVolatile(Database database)
Implementation delegates logic to the
SqlGenerator.generateRollbackStatementsIsVolatile(Database)
method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database)
If no or null SqlStatements are returned by generateRollbackStatements then this method returns false. |
SqlStatement[] |
generateStatements(Database database)
Generates one or more SqlStatements depending on how the SQL should be parsed.
|
boolean |
generateStatementsVolatile(Database database)
Implementation delegates logic to the
SqlGenerator.generateStatementsIsVolatile(Database) method on the
SqlStatement objects returned by Change.generateStatements(liquibase.database.Database) . |
String |
getDbms() |
String |
getEndDelimiter()
Set the end delimiter used to split statements.
|
String |
getSql()
Return the raw SQL managed by this Change
|
Boolean |
isSplitStatements()
Return if the SQL should be split into multiple statements before passing it to the database.
|
boolean |
isSplitStatementsSet()
Deprecated.
To be removed when splitStatements is changed to be Boolean type
|
Boolean |
isStripComments()
Return if comments should be stripped from the SQL before passing it to the database.
|
protected String |
normalizeLineEndings(String string) |
InputStream |
openSqlStream() |
void |
setDbms(String dbms) |
void |
setEndDelimiter(String endDelimiter)
Set the end delimiter for splitting SQL statements.
|
void |
setSplitStatements(Boolean splitStatements)
Set whether SQL should be split into multiple statements.
|
void |
setSql(String sql)
Set the raw SQL managed by this Change.
|
void |
setStripComments(Boolean stripComments)
Return true if comments should be stripped from the SQL before passing it to the database.
|
boolean |
supports(Database database)
Implementation delegates logic to the
SqlGenerator.supports(liquibase.statement.SqlStatement, liquibase.database.Database)
method on the SqlStatement objects returned by Change.generateStatements(liquibase.database.Database) . |
ValidationErrors |
validate(Database database)
Implementation checks the ChangeParameterMetaData for declared required fields
and also delegates logic to the
SqlGenerator.validate(liquibase.statement.SqlStatement,
liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain) method on the SqlStatement
objects returned by Change.generateStatements(liquibase.database.Database) . |
Warnings |
warn(Database database)
Implementation delegates logic to the
SqlGenerator.warn(liquibase.statement.SqlStatement, liquibase.database.Database,
liquibase.sqlgenerator.SqlGeneratorChain) method on the SqlStatement objects returned by
Change.generateStatements(liquibase.database.Database) . |
createChangeMetaData, createChangeParameterMetadata, createDescriptionMetaData, createEmptyColumnConfig, createExampleValueMetaData, createInverses, createMustEqualExistingMetaData, createRequiredDatabasesMetaData, createSerializationTypeMetaData, createSinceMetaData, createSupportedDatabasesMetaData, customLoadLogic, finishInitialization, generateRollbackStatements, getAffectedDatabaseObjects, getChangeSet, getDescription, getResourceAccessor, getSerializableFieldNamespace, getSerializableFields, getSerializableFieldType, getSerializableFieldValue, getSerializedObjectName, getSerializedObjectNamespace, isInvalidProperty, load, serialize, serializeValue, setChangeSet, setResourceAccessor, supportsRollback, toString
clone, describe, equals, get, get, get, getAttributes, getFieldValue, getObjectMetaData, getValuePath, has, hashCode, set
finalize, getClass, notify, notifyAll, wait, wait, wait
getConfirmationMessage
clone, describe, get, get, getAttributes, getObjectMetaData, getValuePath, has, set
protected String encoding
public InputStream openSqlStream() throws IOException
IOException
public String getDbms()
getDbms
in interface DbmsTargetedChange
public void setDbms(String dbms)
setDbms
in interface DbmsTargetedChange
public boolean supports(Database database)
SqlGenerator.supports(liquibase.statement.SqlStatement, liquibase.database.Database)
method on the SqlStatement
objects returned by Change.generateStatements(liquibase.database.Database)
.
If no or null SqlStatements are returned by generateStatements then this method returns true.
If AbstractChange.generateStatementsVolatile(liquibase.database.Database)
returns true, we cannot call generateStatements and so assume true.supports
in interface Change
supports
in class AbstractChange
database
- public Warnings warn(Database database)
AbstractChange
SqlGenerator.warn(liquibase.statement.SqlStatement, liquibase.database.Database,
liquibase.sqlgenerator.SqlGeneratorChain)
method on the SqlStatement
objects returned by
Change.generateStatements(liquibase.database.Database)
.
If a generated statement is not supported for the given database, no warning will be added since that is a
validation error. If no or null SqlStatements are returned by generateStatements then this method returns no
warnings.warn
in interface Change
warn
in class AbstractChange
public ValidationErrors validate(Database database)
AbstractChange
SqlGenerator.validate(liquibase.statement.SqlStatement,
liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain)
method on the SqlStatement
objects returned by Change.generateStatements(liquibase.database.Database)
.
If no or null SqlStatements are returned by generateStatements then this method returns no errors.
If there are no parameters than this method returns no errorsvalidate
in interface Change
validate
in class AbstractChange
public Boolean isStripComments()
public void setStripComments(Boolean stripComments)
public Boolean isSplitStatements()
public void setSplitStatements(Boolean splitStatements)
@Deprecated public boolean isSplitStatementsSet()
public String getSql()
public void setSql(String sql)
public String getEndDelimiter()
splitStatements
public void setEndDelimiter(String endDelimiter)
endDelimiter
- public CheckSum generateCheckSum()
generateCheckSum
in interface Change
generateCheckSum
in class AbstractChange
AbstractChange.generateCheckSum()
public SqlStatement[] generateStatements(Database database)
Connection.nativeSQL(java.lang.String)
method if a connection is available.generateStatements
in interface Change
public boolean generateStatementsVolatile(Database database)
AbstractChange
SqlGenerator.generateStatementsIsVolatile(Database)
method on the
SqlStatement
objects returned by Change.generateStatements(liquibase.database.Database)
.
If zero or null SqlStatements are returned by generateStatements then this method returns false.generateStatementsVolatile
in interface Change
generateStatementsVolatile
in class AbstractChange
public boolean generateRollbackStatementsVolatile(Database database)
AbstractChange
SqlGenerator.generateRollbackStatementsIsVolatile(Database)
method on the SqlStatement
objects returned by Change.generateStatements(liquibase.database.Database)
If no or null SqlStatements are returned by generateRollbackStatements then this method returns false.generateRollbackStatementsVolatile
in interface Change
generateRollbackStatementsVolatile
in class AbstractChange
public ChangeStatus checkStatus(Database database)
Change
checkStatus
in interface Change
checkStatus
in class AbstractChange
Copyright © 2023 Liquibase.org. All rights reserved.