From: | Kevin Grittner <kgrittn(at)postgresql(dot)org> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Follow-on cleanup for the transition table patch. |
Date: | 2017-04-04 23:46:54 |
Message-ID: | E1cvYA2-0008M6-4c@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Follow-on cleanup for the transition table patch.
Commit 59702716 added transition table support to PL/pgsql so that
SQL queries in trigger functions could access those transient
tables. In order to provide the same level of support for PL/perl,
PL/python and PL/tcl, refactor the relevant code into a new
function SPI_register_trigger_data. Call the new function in the
trigger handler of all four PLs, and document it as a public SPI
function so that authors of out-of-tree PLs can do the same.
Also get rid of a second QueryEnvironment object that was
maintained by PL/pgsql. That was previously used to deal with
cursors, but the same approach wasn't appropriate for PLs that are
less tangled up with core code. Instead, have SPI_cursor_open
install the connection's current QueryEnvironment, as already
happens for SPI_execute_plan.
While in the docs, remove the note that transition tables were only
supported in C and PL/pgSQL triggers, and correct some ommissions.
Thomas Munro with some work by Kevin Grittner (mostly docs)
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/5ebeb579b9b281dba5f8415b2fbda86fdae7b366
Modified Files
--------------
doc/src/sgml/ref/create_trigger.sgml | 10 +--
doc/src/sgml/spi.sgml | 125 ++++++++++++++++++++++++++
doc/src/sgml/trigger.sgml | 54 +++++++++--
src/backend/executor/spi.c | 52 +++++++++++
src/include/executor/spi.h | 3 +
src/pl/plperl/expected/plperl_trigger.out | 29 ++++++
src/pl/plperl/plperl.c | 7 ++
src/pl/plperl/sql/plperl_trigger.sql | 32 +++++++
src/pl/plpgsql/src/pl_exec.c | 49 +---------
src/pl/plpgsql/src/plpgsql.h | 4 -
src/pl/plpython/expected/plpython_trigger.out | 21 +++++
src/pl/plpython/plpy_exec.c | 5 ++
src/pl/plpython/sql/plpython_trigger.sql | 24 +++++
src/pl/tcl/expected/pltcl_queries.out | 21 +++++
src/pl/tcl/pltcl.c | 5 ++
src/pl/tcl/sql/pltcl_queries.sql | 20 +++++
16 files changed, 398 insertions(+), 63 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2017-04-05 03:59:55 | pgsql: pageinspect: Add bt_page_items function with bytea argument |
Previous Message | Simon Riggs | 2017-04-04 22:03:51 | pgsql: Make min_wal_size/max_wal_size use MB internally |