diff --git a/doc/src/sgml/event-trigger.sgml b/doc/src/sgml/event-trigger.sgml index 3b6a5361b34..ff369bed19f 100644 --- a/doc/src/sgml/event-trigger.sgml +++ b/doc/src/sgml/event-trigger.sgml @@ -80,6 +80,11 @@ control statements are available to rewrite a table, like CLUSTER and VACUUM, the table_rewrite event is not triggered by them. + To find the OID of the table that was rewritten, use the function + pg_event_trigger_table_rewrite_oid() (see + ). To discover the reason(s) + for the rewrite, use the function + pg_event_trigger_table_rewrite_reason(). diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 847fee1684f..51fcfc26c91 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -29206,8 +29206,12 @@ CREATE EVENT TRIGGER test_event_trigger_for_drops integer - Returns a code explaining the reason(s) for rewriting. The exact - meaning of the codes is release dependent. + Returns a code explaining the reason(s) for rewriting. The value is + a bitmap built from the following values: 1 + (the table has changed its persistence), 2 + (default value of a column has changed), 4 + (a column has a new data type) and 8 + (the table access method has changed). diff --git a/src/include/commands/event_trigger.h b/src/include/commands/event_trigger.h index 5ed6ece555d..eb84a1a9dc4 100644 --- a/src/include/commands/event_trigger.h +++ b/src/include/commands/event_trigger.h @@ -29,6 +29,12 @@ typedef struct EventTriggerData CommandTag tag; } EventTriggerData; +/* + * Reasons for relation rewrites. + * + * pg_event_trigger_table_rewrite_reason() uses these values, so make sure to + * update the documentation when changing this list. + */ #define AT_REWRITE_ALTER_PERSISTENCE 0x01 #define AT_REWRITE_DEFAULT_VAL 0x02 #define AT_REWRITE_COLUMN_REWRITE 0x04