Truncate Triggers

Started by Simon Riggsover 18 years ago2 messagespatches
Jump to latest
#1Simon Riggs
simon@2ndQuadrant.com

Full implementation of truncate triggers on CVS HEAD, for Postgres 8.4

Includes various docs, regression tests for PL/pgSQL trigger support,
psql and pg_dump support.

Some further discussion on -hackers required around statement skipping.
Prototype code for that aspect included in this patch, #ifdef'd out.

Most interesting discussion point is the handling of multiple truncate
triggers when we are performing a multi-table TRUNCATE. Please read docs
in patch for details, plus comments.

This includes changes to PL/tcl, PL/perl and PL/python but support in
those languages have not yet been tested, not even a little bit. This
will be performed after review.

Provisional Slony support patch will also be posted to appropriate list.

diffstat
doc/src/sgml/ref/create_trigger.sgml | 32 +++!
doc/src/sgml/ref/truncate.sgml | 4
doc/src/sgml/trigger.sgml | 32 ++!!
src/backend/commands/tablecmds.c | 126 ++++++++++++++++++
src/backend/commands/trigger.c | 111 ++++++++++++++++
src/backend/parser/gram.y | 1
src/backend/utils/adt/ruleutils.c | 7 +
src/bin/pg_dump/pg_dump.c | 7 +
src/include/catalog/pg_trigger.h | 3
src/include/commands/trigger.h | 31 +!!!
src/include/utils/rel.h | 2
src/pl/plperl/plperl.c | 4
src/pl/plpgsql/src/pl_exec.c | 6
src/pl/plpython/plpython.c | 2
src/pl/tcl/pltcl.c | 2
src/test/regress/expected/truncate.out | 226 ++++++++++++++++++++...
src/test/regress/sql/truncate.sql | 127 ++++++++++++++++++
17 files changed, 672 insertions(+), 51 modifications(!)

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

Attachments:

truncate_trigger.v1.patchtext/x-patch; charset=UTF-8; name=truncate_trigger.v1.patchDownload+723-51
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Simon Riggs (#1)
Re: Truncate Triggers

Simon Riggs <simon@2ndquadrant.com> writes:

Full implementation of truncate triggers on CVS HEAD, for Postgres 8.4

Applied with minor revisions.

regards, tom lane