Class LoggingExecutor

java.lang.Object
liquibase.executor.AbstractExecutor
liquibase.executor.LoggingExecutor
All Implemented Interfaces:
Executor, Plugin
Direct Known Subclasses:
MockExecutor

public class LoggingExecutor extends AbstractExecutor
A variant of the Executor service that does not actually modify the target database(s). Instead, it creates the SQL statements that would be executed. This is intended for cautious DBAs who want to examine and verify the generated changes.
  • Constructor Details

  • Method Details

    • getName

      public String getName()
      Return the name of the Executor
      Specified by:
      getName in interface Executor
      Specified by:
      getName in class AbstractExecutor
      Returns:
      String The Executor name
    • getPriority

      public int getPriority()
      Return the Executor priority
      Specified by:
      getPriority in interface Executor
      Specified by:
      getPriority in class AbstractExecutor
      Returns:
      int The Executor priority
    • getOutput

      protected Writer getOutput()
    • execute

      public void execute(SqlStatement sql) throws DatabaseException
      Throws:
      DatabaseException
    • update

      public int update(SqlStatement sql) throws DatabaseException
      Throws:
      DatabaseException
    • execute

      public void execute(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
      Throws:
      DatabaseException
    • update

      public int update(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
      Throws:
      DatabaseException
    • comment

      public void comment(String message) throws DatabaseException
      Description copied from interface: Executor
      Adds a comment to the database. Currently does nothing but is overridden in the output JDBC template
      Throws:
      DatabaseException
    • queryForObject

      public <T> T queryForObject(SqlStatement sql, Class<T> requiredType) throws DatabaseException
      Description copied from interface: Executor
      Execute a query that is expected to return a scalar (1 row, 1 column). It is expected that the scalar can be cast into an object of type T.
      Parameters:
      sql - The query to execute
      Returns:
      An object of type T, if successful. May also return null if no object is found.
      Throws:
      DatabaseException - in case something goes wrong during the query execution
    • queryForObject

      public <T> T queryForObject(SqlStatement sql, Class<T> requiredType, List<SqlVisitor> sqlVisitors) throws DatabaseException
      Description copied from interface: Executor
      Applies a number of SqlVisitors to the sql query. Then, executes the (possibly modified) query. The query is expected to return a scalar (1 row, 1 column). That scalar is expected to return a single value that can be cast into an object of type T.
      Parameters:
      sql - The query to execute
      Returns:
      An object of type T, if successful. May also return null if no object is found.
      Throws:
      DatabaseException - in case something goes wrong during the query execution
    • queryForLong

      public long queryForLong(SqlStatement sql) throws DatabaseException
      Description copied from interface: Executor
      Executes a query that is expected to return a scalar (1 row, 1 column). It is expected that the scalar can be cast into a long.
      Parameters:
      sql - The query to execute
      Returns:
      A long value, if successful
      Throws:
      DatabaseException - in case something goes wrong during the query execution
    • queryForLong

      public long queryForLong(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
      Description copied from interface: Executor
      Applies a number of SqlVisitors to the sql query. Then, executes the (possibly modified) query. The query is expected to return a scalar (1 row, 1 column), and that scalar is expected to be a long value.
      Parameters:
      sql - The query to execute
      Returns:
      A long value, if successful
      Throws:
      DatabaseException - in case something goes wrong during the query execution
    • queryForInt

      public int queryForInt(SqlStatement sql) throws DatabaseException
      Description copied from interface: Executor
      Executes a query that is expected to return a scalar (1 row, 1 column). It is expected that the scalar can be cast into an int.
      Parameters:
      sql - The query to execute
      Returns:
      An integer, if successful
      Throws:
      DatabaseException - in case something goes wrong during the query execution
    • queryForInt

      public int queryForInt(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
      Description copied from interface: Executor
      Applies a number of SqlVisitors to the sql query. Then, executes the (possibly modified) query. The query is expected to return a scalar (1 row, 1 column), and that scalar is expected to be an int.
      Parameters:
      sql - The query to execute
      Returns:
      An integer, if successful
      Throws:
      DatabaseException - in case something goes wrong during the query execution
    • queryForList

      public List queryForList(SqlStatement sql, Class elementType) throws DatabaseException
      Throws:
      DatabaseException
    • queryForList

      public List queryForList(SqlStatement sql, Class elementType, List<SqlVisitor> sqlVisitors) throws DatabaseException
      Throws:
      DatabaseException
    • queryForList

      public List<Map<String,?>> queryForList(SqlStatement sql) throws DatabaseException
      Description copied from interface: Executor
      Executes a given SQL statement and returns a List of rows. Each row is represented a a Map<String, ?>, where the String is the column name and the value if the content of the column in the row (=cell).
      Parameters:
      sql - the SQL query to execute
      Returns:
      a List of [Column name] -> [column value]-mapped rows.
      Throws:
      DatabaseException - if an error occurs during SQL processing (e.g. the SQL is not valid for the database)
    • queryForList

      public List<Map<String,?>> queryForList(SqlStatement sql, List<SqlVisitor> sqlVisitors) throws DatabaseException
      Description copied from interface: Executor
      Applies a list of SqlVisitors to the SQL query, then executes the (possibly modified) SQL query and lastly, returns the list of rows. Each row is represented a a Map<String, ?>, where the String is the column name and the value if the content of the column in the row (=cell).
      Parameters:
      sql - the SQL query to execute
      Returns:
      a List of [Column name] -> [column value]-mapped rows.
      Throws:
      DatabaseException - if an error occurs during SQL processing (e.g. the SQL is not valid for the database)
    • updatesDatabase

      public boolean updatesDatabase()