Stream triggers manipulation interfaces v5
You can create stream triggers only on tables with REPLICA IDENTITY FULL
or tables without any columns to which TOAST
applies.
bdr.create_conflict_trigger
This function creates a new conflict trigger.
Synopsis
Parameters
trigger_name
— Name of the new trigger.events
— Array of events on which to fire this trigger. Valid values are 'INSERT
', 'UPDATE
', and 'DELETE
'.relation
— Relation to fire this trigger for.function
— The function to execute.args
— Optional. Specifies the array of parameters the trigger function receives on execution (contents ofTG_ARGV
variable).
Notes
This function uses the same replication mechanism as DDL
statements. This
means that the replication is affected by the
ddl filters configuration.
The function takes a global DML lock on the relation on which the trigger is being created.
This function is transactional. You can roll back the effects with the
ROLLBACK
of the transaction. The changes are visible to the current
transaction.
Similar to normal PostgreSQL triggers, the bdr.create_conflict_trigger
function requires TRIGGER
privilege on the relation
and EXECUTE
privilege on the function. This applies with a
bdr.backwards_compatibility
of 30619 or above. Additional
security rules apply in PGD to all triggers including conflict
triggers. See Security and roles.
bdr.create_transform_trigger
This function creates a transform trigger.
Synopsis
Parameters
trigger_name
— Name of the new trigger.events
— Array of events on which to fire this trigger. Valid values are 'INSERT
', 'UPDATE
', and 'DELETE
'.relation
— Relation to fire this trigger for.function
— The function to execute.args
— Optional. Specify array of parameters the trigger function receives on execution (contents ofTG_ARGV
variable).
Notes
This function uses the same replication mechanism as DDL
statements. This
means that the replication is affected by the
ddl filters configuration.
The function takes a global DML lock on the relation on which the trigger is being created.
This function is transactional. You can roll back the effects with the
ROLLBACK
of the transaction. The changes are visible to the current
transaction.
Similarly to normal PostgreSQL triggers, the bdr.create_transform_trigger
function requires the TRIGGER
privilege on the relation
and EXECUTE
privilege on the function. Additional security rules apply in PGD to all
triggers including transform triggers. See
Security and roles.
bdr.drop_trigger
This function removes an existing stream trigger (both conflict and transform).
Synopsis
Parameters
trigger_name
— Name of an existing trigger.relation
— The relation the trigger is defined for.ifexists
— When set totrue
, this function ignores missing triggers.
Notes
This function uses the same replication mechanism as DDL
statements. This
means that the replication is affected by the
ddl filters configuration.
The function takes a global DML lock on the relation on which the trigger is being created.
This function is transactional. You can roll back the effects with the
ROLLBACK
of the transaction. The changes are visible to the current
transaction.
Only the owner of the relation
can execute the bdr.drop_trigger
function.