Top Constructors Methods
liquibase.sqlgenerator.core

public abstract Class InsertOrUpdateGenerator

extends AbstractSqlGenerator<InsertOrUpdateStatement>
Class Inheritance
Known Direct Subclasses
liquibase.sqlgenerator.core.InsertOrUpdateGeneratorDB2, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorH2, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorHsql, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorInformix, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorMSSQL, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorMySQL, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorOracle, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorPostgres, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorSnowflake, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorSQLite, liquibase.sqlgenerator.core.InsertOrUpdateGeneratorSybaseASA
Imports
liquibase.database.Database, liquibase.database.core.OracleDatabase, liquibase.datatype.DataTypeFactory, liquibase.exception.LiquibaseException, .ValidationErrors, liquibase.sql.Sql, .UnparsedSql, liquibase.sqlgenerator.SqlGeneratorChain, liquibase.statement.core.InsertOrUpdateStatement, .UpdateStatement, liquibase.structure.core.Table, java.util.Arrays, .HashSet

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public Sql[]
generateSql(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain<T extends SqlStatement> sqlGeneratorChain)

Implements liquibase.sqlgenerator.SqlGenerator.generateSql.

Generate the actual Sql for the given statement and database.

protected Table
getAffectedTable(InsertOrUpdateStatement insertOrUpdateStatement)

protected abstract String
getElse(Database database)

protected String
getInsertStatement(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain<T extends SqlStatement> sqlGeneratorChain)

protected String
public int
getPriority()

Overrides liquibase.sqlgenerator.core.AbstractSqlGenerator.getPriority.

Implements liquibase.sqlgenerator.SqlGenerator.getPriority.

Of all the SqlGenerators that "support" a given SqlStatement/Database, SqlGeneratorFactory will return the one with the highest priority.

protected abstract String
getRecordCheck(InsertOrUpdateStatement insertOrUpdateStatement, Database database, String whereClause)

protected String

Returns:

the generated update statement, or null if there is nothing to update
getUpdateStatement
(InsertOrUpdateStatement
the insert or update statement to generate the update statement from
insertOrUpdateStatement
,
Database
the database to generate the update statement for
database
,
String
the WHERE clause to use in the update statement
whereClause
,
SqlGeneratorChain<T extends SqlStatement>
the SQL generator chain to use in the update statement
sqlGeneratorChain
)

Generates an SQL UPDATE statement for the specified insert or update statement, database, and SQL generator chain.

protected String
getWhereClause(InsertOrUpdateStatement insertOrUpdateStatement, Database database)

public ValidationErrors
validate(InsertOrUpdateStatement statement, Database database, SqlGeneratorChain<T extends SqlStatement> sqlGeneratorChain)

Implements liquibase.sqlgenerator.SqlGenerator.validate.

Validate the data contained in the SqlStatement.

Inherited from liquibase.sqlgenerator.core.AbstractSqlGenerator:
generateRollbackStatementsIsVolatilegenerateStatementsIsVolatilelooksLikeFunctionCallsupportswarn

Constructor Detail

InsertOrUpdateGeneratorback to summary
public InsertOrUpdateGenerator()

Method Detail

generateSqlback to summary
public Sql[] generateSql(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain<T extends SqlStatement> sqlGeneratorChain)

Implements liquibase.sqlgenerator.SqlGenerator.generateSql.

Doc from liquibase.sqlgenerator.SqlGenerator.generateSql.

Generate the actual Sql for the given statement and database.

Annotations
@Override
getAffectedTableback to summary
protected Table getAffectedTable(InsertOrUpdateStatement insertOrUpdateStatement)
getElseback to summary
protected abstract String getElse(Database database)
getInsertStatementback to summary
protected String getInsertStatement(InsertOrUpdateStatement insertOrUpdateStatement, Database database, SqlGeneratorChain<T extends SqlStatement> sqlGeneratorChain)
getPostUpdateStatementsback to summary
protected String getPostUpdateStatements(Database database)
getPriorityback to summary
public int getPriority()

Overrides liquibase.sqlgenerator.core.AbstractSqlGenerator.getPriority.

Implements liquibase.sqlgenerator.SqlGenerator.getPriority.

Doc from liquibase.sqlgenerator.SqlGenerator.getPriority.

Of all the SqlGenerators that "support" a given SqlStatement/Database, SqlGeneratorFactory will return the one with the highest priority.

Annotations
@Override
getRecordCheckback to summary
protected abstract String getRecordCheck(InsertOrUpdateStatement insertOrUpdateStatement, Database database, String whereClause)
getUpdateStatementback to summary
protected String getUpdateStatement(InsertOrUpdateStatement insertOrUpdateStatement, Database database, String whereClause, SqlGeneratorChain<T extends SqlStatement> sqlGeneratorChain) throws LiquibaseException

Generates an SQL UPDATE statement for the specified insert or update statement, database, and SQL generator chain.

Parameters
insertOrUpdateStatement:InsertOrUpdateStatement

the insert or update statement to generate the update statement from

database:Database

the database to generate the update statement for

whereClause:String

the WHERE clause to use in the update statement

sqlGeneratorChain:SqlGeneratorChain<T extends SqlStatement>

the SQL generator chain to use in the update statement

Returns:String

the generated update statement, or null if there is nothing to update

Exceptions
LiquibaseException:
if there is an error generating the update statement
getWhereClauseback to summary
protected String getWhereClause(InsertOrUpdateStatement insertOrUpdateStatement, Database database)
validateback to summary
public ValidationErrors validate(InsertOrUpdateStatement statement, Database database, SqlGeneratorChain<T extends SqlStatement> sqlGeneratorChain)

Implements liquibase.sqlgenerator.SqlGenerator.validate.

Doc from liquibase.sqlgenerator.SqlGenerator.validate.

Validate the data contained in the SqlStatement. If there are no errors, return an empty ValidationErrors object, not a null value. Liquibase will inspect the ValidationErrors result before attempting to call generateSql.

Annotations
@Override