From bc411f25c14f65b459de5dbc96ac79e7741ef9ee Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sat, 26 Feb 2011 16:53:11 +0200 Subject: Table function support for PL/Python MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows functions with multiple OUT parameters returning both one or multiple records (RECORD or SETOF RECORD). Jan UrbaƄski, reviewed by Hitoshi Harada --- src/pl/plpython/sql/plpython_trigger.sql | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/pl/plpython/sql/plpython_trigger.sql') diff --git a/src/pl/plpython/sql/plpython_trigger.sql b/src/pl/plpython/sql/plpython_trigger.sql index 4994d8fe7b..2afdf51127 100644 --- a/src/pl/plpython/sql/plpython_trigger.sql +++ b/src/pl/plpython/sql/plpython_trigger.sql @@ -326,3 +326,23 @@ INSERT INTO pb VALUES ('a', '2010-10-09 21:57:33.930486'); SELECT * FROM pb; UPDATE pb SET a = 'b'; SELECT * FROM pb; + + +-- triggers for tables with composite types + +CREATE TABLE comp1 (i integer, j boolean); +CREATE TYPE comp2 AS (k integer, l boolean); + +CREATE TABLE composite_trigger_test (f1 comp1, f2 comp2); + +CREATE FUNCTION composite_trigger_f() RETURNS trigger AS $$ + TD['new']['f1'] = (3, False) + TD['new']['f2'] = {'k': 7, 'l': 'yes', 'ignored': 10} + return 'MODIFY' +$$ LANGUAGE plpythonu; + +CREATE TRIGGER composite_trigger BEFORE INSERT ON composite_trigger_test + FOR EACH ROW EXECUTE PROCEDURE composite_trigger_f(); + +INSERT INTO composite_trigger_test VALUES (NULL, NULL); +SELECT * FROM composite_trigger_test; -- cgit v1.2.1