Stream triggers manipulation interfaces#
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#
bdr.create_conflict_trigger(trigger_name text,
events text[],
relation regclass,
function regprocedure,
args text[] DEFAULT {})
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_ARGVvariable).
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#
bdr.create_transform_trigger(trigger_name text,
events text[],
relation regclass,
function regprocedure,
args text[] DEFAULT {})
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_ARGVvariable).
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#
bdr.drop_trigger(trigger_name text,
relation regclass,
ifexists boolean DEFAULT false)
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.