pgsql: Fix event triggers for partitioned tables - Mailing list pgsql-committers

From Alvaro Herrera
Subject pgsql: Fix event triggers for partitioned tables
Date
Msg-id E1g8uuM-00056w-D4@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix event triggers for partitioned tables

Index DDL cascading on partitioned tables introduced a way for ALTER
TABLE to be called reentrantly.  This caused an an important deficiency
in event trigger support to be exposed: on exiting the reentrant call,
the alter table state object was clobbered, causing a crash when the
outer alter table tries to finalize its processing.  Fix the crash by
creating a stack of event trigger state objects.  There are still ways
to cause things to misbehave (and probably other crashers) with more
elaborate tricks, but at least it now doesn't crash in the obvious
scenario.

Backpatch to 9.5, where DDL deparsing of event triggers was introduced.

Reported-by: Marco Slot
Authors: Michaël Paquier, Álvaro Herrera
Discussion: https://postgr.es/m/CANNhMLCpi+HQ7M36uPfGbJZEQLyTy7XvX=5EFkpR-b1bo0uJew@mail.gmail.com

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/1a852f7c1e27eef563cf0577c2604baec1be5512

Modified Files
--------------
src/backend/catalog/index.c                          |  8 +++++++-
src/backend/commands/event_trigger.c                 | 13 +++++++------
src/backend/commands/indexcmds.c                     |  3 ++-
src/backend/commands/tablecmds.c                     |  2 +-
src/backend/commands/view.c                          |  4 ++++
src/include/catalog/index.h                          |  3 ++-
src/include/tcop/deparse_utility.h                   |  3 +++
.../test_ddl_deparse/expected/alter_table.out        | 12 ++++++++++++
.../modules/test_ddl_deparse/sql/alter_table.sql     |  8 ++++++++
src/test/regress/expected/event_trigger.out          | 20 +++++++++++++++++++-
src/test/regress/sql/event_trigger.sql               | 13 +++++++++++++
11 files changed, 78 insertions(+), 11 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Restore sane locking behavior during parallel query.
Next
From: Alvaro Herrera
Date:
Subject: pgsql: Fix catalog insertion order for ATTACH PARTITION