BUG #6559: PLPython INSERT trigger fails with composite types

Поиск
Список
Период
Сортировка
От xi@resolvent.net
Тема BUG #6559: PLPython INSERT trigger fails with composite types
Дата
Msg-id E1SCESi-0005Nq-Dd@wrigleys.postgresql.org
обсуждение исходный текст
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      6559
Logged by:          Kirill Simonov
Email address:      xi@resolvent.net
PostgreSQL version: 9.1.3
Operating system:   Debian squeeze+backports
Description:=20=20=20=20=20=20=20=20

A PlPython INSERT trigger fails to modify a row when a column of a composite
type is affected.  Worked with 8.4.

Here is a test case:

CREATE TYPE rec_t AS (val INTEGER);
CREATE TABLE tbl (rec rec_t, val INTEGER);

INSERT INTO tbl (val) VALUES (NULL);
INSERT INTO tbl (rec.val) VALUES (NULL);

CREATE LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION trg() RETURNS trigger
LANGUAGE plpythonu
AS $$
return 'MODIFY';
$$;

CREATE TRIGGER "!trg()"
BEFORE INSERT OR UPDATE ON tbl
FOR EACH ROW
EXECUTE PROCEDURE trg();

INSERT INTO tbl (val) VALUES (NULL);
INSERT INTO tbl (rec.val) VALUES (NULL);

The output:
$ psql
psql (9.1.3)
Type "help" for help.

postgres=3D#=20
postgres=3D# CREATE TYPE rec_t AS (val INTEGER);
CREATE TYPE
postgres=3D# CREATE TABLE tbl (rec rec_t, val INTEGER);
CREATE TABLE
postgres=3D#=20
postgres=3D# INSERT INTO tbl (val) VALUES (NULL);
INSERT 0 1
postgres=3D# INSERT INTO tbl (rec.val) VALUES (NULL);
INSERT 0 1
postgres=3D#=20
postgres=3D# CREATE LANGUAGE plpythonu;
CREATE LANGUAGE
postgres=3D# CREATE OR REPLACE FUNCTION trg() RETURNS trigger
postgres-# LANGUAGE plpythonu
postgres-# AS $$
postgres$# return 'MODIFY';
postgres$# $$;
CREATE FUNCTION
postgres=3D#=20
postgres=3D# CREATE TRIGGER "!trg()"
postgres-# BEFORE INSERT OR UPDATE ON tbl
postgres-# FOR EACH ROW
postgres-# EXECUTE PROCEDURE trg();
CREATE TRIGGER
postgres=3D#=20
postgres=3D# INSERT INTO tbl (val) VALUES (NULL);
INSERT 0 1
postgres=3D# INSERT INTO tbl (rec.val) VALUES (NULL);
ERROR:  length of returned sequence did not match number of columns in row
CONTEXT:  while modifying trigger row
PL/Python function "trg"

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

Предыдущее
От: vikas.arora@rbs.com
Дата:
Сообщение: BUG #6557: post gre sql odbc connection issue
Следующее
От: "Weiss, Wilfried"
Дата:
Сообщение: BUG #6334: initdb not working