pgsql: Fix event triggers for partitioned tables
От | Alvaro Herrera |
---|---|
Тема | pgsql: Fix event triggers for partitioned tables |
Дата | |
Msg-id | E1g8uuM-00056y-DP@gemulon.postgresql.org обсуждение исходный текст |
Список | 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_10_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/101b21ead356023c0b86d28dac3d6c08828c77b5 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 +++ src/test/regress/expected/event_trigger.out | 20 +++++++++++++++++++- src/test/regress/sql/event_trigger.sql | 13 +++++++++++++ 9 files changed, 58 insertions(+), 11 deletions(-)
В списке pgsql-committers по дате отправления: