Generate a table_rewrite event when ALTER TABLE attempts to rewrite a table. Provide helper functions to identify table and reason.
Intended use case is to help assess or to react to schema changes that might hold exclusive locks for long periods.
Dimitri Fontaine, triggering an edit by Simon Riggs
Reviewed in detail by Michael Paquier
618c943 Event Trigger for table_rewrite
doc/src/sgml/event-trigger.sgml | 150 +++++++++++++++++++++
doc/src/sgml/func.sgml | 85 ++++++++++--
src/backend/commands/event_trigger.c | 192 +++++++++++++++++++++++++--
src/backend/commands/tablecmds.c | 64 ++++++---
src/backend/utils/cache/evtcache.c | 2 +
src/include/catalog/pg_proc.h | 4 +
src/include/commands/event_trigger.h | 6 +
src/include/utils/builtins.h | 2 +
src/include/utils/evtcache.h | 3 +-
src/test/regress/expected/event_trigger.out | 38 ++++++
src/test/regress/parallel_schedule | 5 +-
src/test/regress/serial_schedule | 2 +-
src/test/regress/sql/event_trigger.sql | 42 ++++++
13 files changed, 556 insertions(+), 39 deletions(-)
Upstream: git.postgresql.org