java.lang.Object
org.postgresql.pljava.internal.TriggerData
- All Implemented Interfaces:
TriggerData
The
TriggerData
correspons to the internal PostgreSQL TriggerData
.- Author:
- Thomas Hallgren
-
Method Summary
Modifier and TypeMethodDescriptionString[]
Returns the arguments for this trigger (as declared in theCREATE TRIGGER
statement.getName()
Returns the name of the trigger (as declared in theCREATE TRIGGER
statement).getNew()
Returns the ResultSet that represents the new row.Returns aTuple
reflecting the new version of the row, if the trigger was fired for anUPDATE
, andnull
if it is for anINSERT
or aDELETE
.getOld()
Returns the ResultSet that represents the old row.Returns a descriptor for the Tuples exposed by this trigger.long
Commits the changes made on theResultSet
representingnew
and returns the native pointer of new tuple.Returns aTuple
reflecting the row for which the trigger was fired.boolean
Returnstrue
if the trigger was fired after the statement or row action that it is associated with.boolean
Returnstrue
if the trigger was fired before the statement or row action that it is associated with.boolean
Returnstrue
if this trigger was fired by aDELETE
.boolean
Returnstrue
if this trigger was fired by anINSERT
.boolean
Returnstrue
if this trigger was fired by anUPDATE
.boolean
Returnstrue
if this trigger is fired once for each row (as opposed to once for the entire statement).boolean
Returnstrue
if this trigger is fired once for the entire statement (as opposed to once for each row).void
suppress()
-
Method Details
-
suppress
- Specified by:
suppress
in interfaceTriggerData
- Throws:
SQLException
-
getNew
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 interfaceTriggerData
- Returns:
- An updateable
ResultSet
containing one row ornull
. - Throws:
SQLException
- if the contained native buffer has gone stale.
-
getOld
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 interfaceTriggerData
- Returns:
- A read-only
ResultSet
containing one row ornull
. - Throws:
SQLException
- if the contained native buffer has gone stale.
-
getTriggerReturnTuple
Commits the changes made on theResultSet
representingnew
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
- Specified by:
getTableName
in interfaceTriggerData
- Throws:
SQLException
-
getSchemaName
- Specified by:
getSchemaName
in interfaceTriggerData
- Throws:
SQLException
-
getRelation
Returns a descriptor for the Tuples exposed by this trigger.- Throws:
SQLException
- if the contained native buffer has gone stale.
-
getTriggerTuple
Returns aTuple
reflecting the row for which the trigger was fired. This is the row being inserted, updated, or deleted. If this trigger was fired for anINSERT
orDELETE
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 ofINSERT
) or skip the operation.- Throws:
SQLException
- if the contained native buffer has gone stale.
-
getNewTuple
Returns aTuple
reflecting the new version of the row, if the trigger was fired for anUPDATE
, andnull
if it is for anINSERT
or aDELETE
. This is what you have to return from the function if the event is anUPDATE
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
Returns the arguments for this trigger (as declared in theCREATE TRIGGER
statement. If the trigger has no arguments, this method will return an array with size 0.- Specified by:
getArguments
in interfaceTriggerData
- Throws:
SQLException
- if the contained native buffer has gone stale.
-
getName
Returns the name of the trigger (as declared in theCREATE TRIGGER
statement).- Specified by:
getName
in interfaceTriggerData
- Throws:
SQLException
- if the contained native buffer has gone stale.
-
isFiredAfter
Returnstrue
if the trigger was fired after the statement or row action that it is associated with.- Specified by:
isFiredAfter
in interfaceTriggerData
- Throws:
SQLException
- if the contained native buffer has gone stale.
-
isFiredBefore
Returnstrue
if the trigger was fired before the statement or row action that it is associated with.- Specified by:
isFiredBefore
in interfaceTriggerData
- Throws:
SQLException
- if the contained native buffer has gone stale.
-
isFiredForEachRow
Returnstrue
if this trigger is fired once for each row (as opposed to once for the entire statement).- Specified by:
isFiredForEachRow
in interfaceTriggerData
- Throws:
SQLException
- if the contained native buffer has gone stale.
-
isFiredForStatement
Returnstrue
if this trigger is fired once for the entire statement (as opposed to once for each row).- Specified by:
isFiredForStatement
in interfaceTriggerData
- Throws:
SQLException
- if the contained native buffer has gone stale.
-
isFiredByDelete
Returnstrue
if this trigger was fired by aDELETE
.- Specified by:
isFiredByDelete
in interfaceTriggerData
- Throws:
SQLException
- if the contained native buffer has gone stale.
-
isFiredByInsert
Returnstrue
if this trigger was fired by anINSERT
.- Specified by:
isFiredByInsert
in interfaceTriggerData
- Throws:
SQLException
- if the contained native buffer has gone stale.
-
isFiredByUpdate
Returnstrue
if this trigger was fired by anUPDATE
.- Specified by:
isFiredByUpdate
in interfaceTriggerData
- Throws:
SQLException
- if the contained native buffer has gone stale.
-