Truncate Triggers

Поиск
Список
Период
Сортировка
От Simon Riggs
Тема Truncate Triggers
Дата
Msg-id 1201261219.4257.437.camel@ebony.site
обсуждение исходный текст
Ответы Re: Truncate Triggers  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Truncate Triggers  (Robert Treat <xzilla@users.sourceforge.net>)
Re: Truncate Triggers  (Decibel! <decibel@decibel.org>)
Список pgsql-hackers
(for 8.4 ...)
I'd like to introduce triggers that fire when we issue a truncate:

CREATE TRIGGER name [BEFORE | AFTER ] TRUNCATE ON table
FOR EACH STATEMENT EXECUTE PROCEDURE function (arguments);

The truncate trigger would fire separately from a statement-level DELETE
statement, to allow us to distinguish those two events. There would be
nothing to stop both triggers executing the same function however, if
desired.

COPY already provides a model for how a utility command can execute
triggers. tablecmds.c would invoke ExecBSTruncateTriggers() and
ExecASTruncateTriggers(), both of which would live in triggers.c

There doesn't seem much too difficult about the implementation or
behaviour, but I want to make sure we have the discussion at least, to
see if anybody has concerns or additional requirements.

Notes: As the syntax shows, these would be statement-level triggers
(only). Requesting row level triggers will cause an error. [As Chris
Browne explained, if people really want, they can use these facilities
to create a Before Statement trigger that executes a DELETE, which then
fires row level calls.]

I also plan to add a TRUNCATE privilege, though that will be a separate
patch in a later post. That will widen the use case of TRUNCATE, which
should be OK to do once we've covered the replication concerns.

--  Simon Riggs 2ndQuadrant  http://www.2ndQuadrant.com



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Florian Weimer
Дата:
Сообщение: plperl: Documentation on BYTEA decoding is wrong
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Default index tablespace