java.lang.Object
org.postgresql.pljava.internal.TriggerData
All Implemented Interfaces:
TriggerData

public class TriggerData extends Object implements TriggerData
The TriggerData correspons to the internal PostgreSQL TriggerData.
Author:
Thomas Hallgren
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the arguments for this trigger (as declared in the CREATE TRIGGER statement.
    Returns the name of the trigger (as declared in the CREATE TRIGGER statement).
    Returns the ResultSet that represents the new row.
    Returns a Tuple reflecting the new version of the row, if the trigger was fired for an UPDATE, and null if it is for an INSERT or a DELETE.
    Returns the ResultSet that represents the old row.
    Returns a descriptor for the Tuples exposed by this trigger.
     
     
    long
    Commits the changes made on the ResultSet representing new and returns the native pointer of new tuple.
    Returns a Tuple reflecting the row for which the trigger was fired.
    boolean
    Returns true if the trigger was fired after the statement or row action that it is associated with.
    boolean
    Returns true if the trigger was fired before the statement or row action that it is associated with.
    boolean
    Returns true if this trigger was fired by a DELETE.
    boolean
    Returns true if this trigger was fired by an INSERT.
    boolean
    Returns true if this trigger was fired by an UPDATE.
    boolean
    Returns true if this trigger is fired once for each row (as opposed to once for the entire statement).
    boolean
    Returns true if this trigger is fired once for the entire statement (as opposed to once for each row).
    void
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • suppress

      public void suppress() throws SQLException
      Specified by:
      suppress in interface TriggerData
      Throws:
      SQLException
    • getNew

      public ResultSet getNew() throws SQLException
      Returns the ResultSet that represents the new row. This ResultSet will be null for delete triggers and for triggers that was fired for statement.
      The returned set will be updateable and positioned on a valid row.
      Specified by:
      getNew in interface TriggerData
      Returns:
      An updateable ResultSet containing one row or null.
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • getOld

      public ResultSet getOld() throws SQLException
      Returns the ResultSet that represents the old row. This ResultSet will be null for insert triggers and for triggers that was fired for statement.
      The returned set will be read-only and positioned on a valid row.
      Specified by:
      getOld in interface TriggerData
      Returns:
      A read-only ResultSet containing one row or null.
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • getTriggerReturnTuple

      public long getTriggerReturnTuple() throws SQLException
      Commits the changes made on the ResultSet representing new and returns the native pointer of new tuple. This method is called automatically by the trigger handler and should not be called in any other way.

      Note: starting with PostgreSQL 10, this method can fail if SPI is not connected; it is the caller's responsibility in PG 10 and up to ensure that SPI is connected and that a longer-lived memory context than SPI's has been selected, if the caller wants the result of this call to survive SPI_finish.

      Returns:
      The modified tuple, or if no modifications have been made, the original tuple.
      Throws:
      SQLException
    • getTableName

      public String getTableName() throws SQLException
      Specified by:
      getTableName in interface TriggerData
      Throws:
      SQLException
    • getSchemaName

      public String getSchemaName() throws SQLException
      Specified by:
      getSchemaName in interface TriggerData
      Throws:
      SQLException
    • getRelation

      public Relation getRelation() throws SQLException
      Returns a descriptor for the Tuples exposed by this trigger.
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • getTriggerTuple

      public Tuple getTriggerTuple() throws SQLException
      Returns a Tuple reflecting the row for which the trigger was fired. This is the row being inserted, updated, or deleted. If this trigger was fired for an INSERT or DELETE then this is what you should return to from the method if you don't want to replace the row with a different one (in the case of INSERT ) or skip the operation.
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • getNewTuple

      public Tuple getNewTuple() throws SQLException
      Returns a Tuple reflecting the new version of the row, if the trigger was fired for an UPDATE, and null if it is for an INSERT or a DELETE. This is what you have to return from the function if the event is an UPDATE and you don't want to replace this row by a different one or skip the operation.
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • getArguments

      public String[] getArguments() throws SQLException
      Returns the arguments for this trigger (as declared in the CREATE TRIGGER statement. If the trigger has no arguments, this method will return an array with size 0.
      Specified by:
      getArguments in interface TriggerData
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • getName

      public String getName() throws SQLException
      Returns the name of the trigger (as declared in the CREATE TRIGGER statement).
      Specified by:
      getName in interface TriggerData
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • isFiredAfter

      public boolean isFiredAfter() throws SQLException
      Returns true if the trigger was fired after the statement or row action that it is associated with.
      Specified by:
      isFiredAfter in interface TriggerData
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • isFiredBefore

      public boolean isFiredBefore() throws SQLException
      Returns true if the trigger was fired before the statement or row action that it is associated with.
      Specified by:
      isFiredBefore in interface TriggerData
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • isFiredForEachRow

      public boolean isFiredForEachRow() throws SQLException
      Returns true if this trigger is fired once for each row (as opposed to once for the entire statement).
      Specified by:
      isFiredForEachRow in interface TriggerData
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • isFiredForStatement

      public boolean isFiredForStatement() throws SQLException
      Returns true if this trigger is fired once for the entire statement (as opposed to once for each row).
      Specified by:
      isFiredForStatement in interface TriggerData
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • isFiredByDelete

      public boolean isFiredByDelete() throws SQLException
      Returns true if this trigger was fired by a DELETE.
      Specified by:
      isFiredByDelete in interface TriggerData
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • isFiredByInsert

      public boolean isFiredByInsert() throws SQLException
      Returns true if this trigger was fired by an INSERT.
      Specified by:
      isFiredByInsert in interface TriggerData
      Throws:
      SQLException - if the contained native buffer has gone stale.
    • isFiredByUpdate

      public boolean isFiredByUpdate() throws SQLException
      Returns true if this trigger was fired by an UPDATE.
      Specified by:
      isFiredByUpdate in interface TriggerData
      Throws:
      SQLException - if the contained native buffer has gone stale.