Top Description Constructors Methods
liquibase.sqlgenerator.core

public abstract Class AbstractSqlGenerator<T extends SqlStatement>

extends Object
implements SqlGenerator<T extends SqlStatement>
Class Inheritance
All Implemented Interfaces
liquibase.sqlgenerator.SqlGenerator, liquibase.servicelocator.PrioritizedService
Known Direct Subclasses
liquibase.sqlgenerator.core.AddAutoIncrementGenerator, liquibase.sqlgenerator.core.AddColumnGenerator, liquibase.sqlgenerator.core.AddDefaultValueGenerator, liquibase.sqlgenerator.core.CreateViewGeneratorInformix, liquibase.sqlgenerator.core.DeleteGenerator, liquibase.sqlgenerator.core.DropColumnGenerator, liquibase.sqlgenerator.core.DropDefaultValueGenerator, liquibase.sqlgenerator.core.DropForeignKeyConstraintGenerator, liquibase.sqlgenerator.core.DropIndexGenerator, liquibase.sqlgenerator.core.DropPrimaryKeyGenerator, liquibase.sqlgenerator.core.DropProcedureGenerator, liquibase.sqlgenerator.core.DropSequenceGenerator, liquibase.sqlgenerator.core.DropTableGenerator, liquibase.sqlgenerator.core.DropUniqueConstraintGenerator, liquibase.sqlgenerator.core.DropViewGenerator, liquibase.sqlgenerator.core.GetNextChangeSetSequenceValueGenerator, liquibase.sqlgenerator.core.GetViewDefinitionGenerator, liquibase.sqlgenerator.core.InsertSetGenerator, liquibase.sqlgenerator.core.LockDatabaseChangeLogGenerator, liquibase.sqlgenerator.core.MarkChangeSetRanGenerator, liquibase.sqlgenerator.core.ModifyDataTypeGenerator, liquibase.sqlgenerator.core.RawParameterizedSqlGenerator, liquibase.sqlgenerator.core.RawSqlGenerator, liquibase.sqlgenerator.core.ReindexGeneratorSQLite, liquibase.sqlgenerator.core.RemoveChangeSetRanStatusGenerator, liquibase.sqlgenerator.core.RenameColumnGenerator, liquibase.sqlgenerator.core.RenameSequenceGenerator, liquibase.sqlgenerator.core.RenameTableGenerator, liquibase.sqlgenerator.core.RenameViewGenerator, liquibase.sqlgenerator.core.ReorganizeTableGeneratorDB2, liquibase.sqlgenerator.core.InitializeDatabaseChangeLogLockTableGenerator, liquibase.sqlgenerator.core.InsertDataChangeGenerator, liquibase.sqlgenerator.core.InsertGenerator, liquibase.sqlgenerator.core.InsertOrUpdateGenerator, liquibase.sqlgenerator.core.CreateViewGenerator, liquibase.sqlgenerator.core.RuntimeGenerator, liquibase.sqlgenerator.core.AddForeignKeyConstraintGenerator, liquibase.sqlgenerator.core.AddPrimaryKeyGenerator, liquibase.sqlgenerator.core.AddUniqueConstraintGenerator, liquibase.sqlgenerator.core.AlterSequenceGenerator, liquibase.sqlgenerator.core.BatchDmlExecutablePreparedStatementGenerator, liquibase.sqlgenerator.core.ClearDatabaseChangeLogTableGenerator, liquibase.sqlgenerator.core.CommentGenerator, liquibase.sqlgenerator.core.CopyRowsGenerator, liquibase.sqlgenerator.core.CreateDatabaseChangeLogLockTableGenerator, liquibase.sqlgenerator.core.CreateDatabaseChangeLogTableGenerator, liquibase.sqlgenerator.core.CreateDatabaseChangeLogTableGeneratorSybase, liquibase.sqlgenerator.core.CreateIndexGenerator, liquibase.sqlgenerator.core.CreateProcedureGenerator, liquibase.sqlgenerator.core.CreateSequenceGenerator, liquibase.sqlgenerator.core.CreateTableGenerator, liquibase.sqlgenerator.core.SelectFromDatabaseChangeLogGenerator, liquibase.sqlgenerator.core.SelectFromDatabaseChangeLogLockGenerator, liquibase.sqlgenerator.core.SetColumnRemarksGenerator, liquibase.sqlgenerator.core.SetNullableGenerator, liquibase.sqlgenerator.core.SetTableRemarksGenerator, liquibase.sqlgenerator.core.SetViewRemarksGenerator, liquibase.sqlgenerator.core.StoredProcedureGenerator, liquibase.sqlgenerator.core.TableIsEmptyGenerator, liquibase.sqlgenerator.core.TableRowCountGenerator, liquibase.sqlgenerator.core.TagDatabaseGenerator, liquibase.sqlgenerator.core.UnlockDatabaseChangeLogGenerator, liquibase.sqlgenerator.core.UpdateChangeSetChecksumGenerator, liquibase.sqlgenerator.core.UpdateDataChangeGenerator, liquibase.sqlgenerator.core.UpdateGenerator
Type Parameters
<T>
an implementation of the liquibase.statement.SqlStatement specifying which logical SQL statement an instance of this template class is able to generate SQL for.
Imports
liquibase.database.Database, liquibase.exception.Warnings, liquibase.sqlgenerator.SqlGenerator, .SqlGeneratorChain, liquibase.statement.SqlStatement

Generic template class for an SQL generator able to generate SQL for an object-form liquibase.statement.SqlStatement.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public boolean
public boolean
generateStatementsIsVolatile(Database database)

Implements liquibase.sqlgenerator.SqlGenerator.generateStatementsIsVolatile.

Does this change require access to the database metadata?

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

public boolean

Returns:

true if value looks like a function call, false if it looks like a literal.
looksLikeFunctionCall
(String
The string to test
value
,
Database
the database object to test against
database
)

Tries to find out if a given value (part a database-specific SQL statement) is just a simple literal (e.g. 'Jones', 149.99 or false) or if it is a call to a function within the database (e.g. TO_DATE('28.12.2017', 'dd.mm.yyyy') in Oracle DB).

public boolean
supports(T statement, Database database)

Implements liquibase.sqlgenerator.SqlGenerator.supports.

Does this generator support the given statement/database combination?

public Warnings
warn(T statementType, Database database, SqlGeneratorChain<T> sqlGeneratorChain)

Implements liquibase.sqlgenerator.SqlGenerator.warn.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

AbstractSqlGeneratorback to summary
public AbstractSqlGenerator()

Method Detail

generateRollbackStatementsIsVolatileback to summary
public boolean generateRollbackStatementsIsVolatile(Database database)

Implements liquibase.sqlgenerator.SqlGenerator.generateRollbackStatementsIsVolatile.

Annotations
@Override
generateStatementsIsVolatileback to summary
public boolean generateStatementsIsVolatile(Database database)

Implements liquibase.sqlgenerator.SqlGenerator.generateStatementsIsVolatile.

Doc from liquibase.sqlgenerator.SqlGenerator.generateStatementsIsVolatile.

Does this change require access to the database metadata? If true, the change cannot be used in an updateSql-style command.

Annotations
@Override
getPriorityback to summary
public int 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
looksLikeFunctionCallback to summary
public boolean looksLikeFunctionCall(String value, Database database)

Tries to find out if a given value (part a database-specific SQL statement) is just a simple literal (e.g. 'Jones', 149.99 or false) or if it is a call to a function within the database (e.g. TO_DATE('28.12.2017', 'dd.mm.yyyy') in Oracle DB). This method is often used to determine if we need to quote literals which are Strings, e.g. if we determine "Dr. Jones" to be a literal, then we generate

INSERT INTO customers(last_name) VALUES('Dr. Jones')
but if the value is a function call, we may not quote it, e.g. for "TO_DATE('28.12.2017', 'dd.mm.yyyy')", we need to generate (note the absence of the apostrophes!):
INSERT INTO bookings(booking_date) VALUES (TO_DATE('28.12.2017', 'dd.mm.yyyy'))
Parameters
value:String

The string to test

database:Database

the database object to test against

Returns:boolean

true if value looks like a function call, false if it looks like a literal.

supportsback to summary
public boolean supports(T statement, Database database)

Implements liquibase.sqlgenerator.SqlGenerator.supports.

Doc from liquibase.sqlgenerator.SqlGenerator.supports.

Does this generator support the given statement/database combination? Do not validate the statement with this method, only return if it can support it.

Annotations
@Override
warnback to summary
public Warnings warn(T statementType, Database database, SqlGeneratorChain<T> sqlGeneratorChain)

Implements liquibase.sqlgenerator.SqlGenerator.warn.

Annotations
@Override