BUG #6511: calling spi_exec_query from non-main package, results in: couldn't fetch $_TD
От | marko@kobaz.net |
---|---|
Тема | BUG #6511: calling spi_exec_query from non-main package, results in: couldn't fetch $_TD |
Дата | |
Msg-id | E1S3uUe-0005ER-RD@wrigleys.postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #6511: calling spi_exec_query from non-main package,
results in: couldn't fetch $_TD
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 6511 Logged by: Mark Murawski Email address: marko@kobaz.net PostgreSQL version: 9.1.3 Operating system: Linux - Debian Squeeze postgres 9.1 from backports Description:=20=20=20=20=20=20=20=20 create table mytable ( id integer ); -- CREATE OR REPLACE FUNCTION mytrigger() RETURNS trigger AS $BODY$ return undef $BODY$ LANGUAGE plperlu VOLATILE COST 100; -- CREATE TRIGGER "insert" BEFORE INSERT ON mytable FOR EACH ROW EXECUTE PROCEDURE mytrigger(); -- CREATE OR REPLACE FUNCTION myfunc() RETURNS text AS $BODY$ package foo; sub foo { main::spi_exec_query(q{INSERT INTO mytable VALUES (1) RETURNING id}); }; package main; foo::foo(); return; $BODY$ LANGUAGE plperlu VOLATILE COST 100; -- pbx=3D# select * from myfunc(); ERROR: couldn't fetch $_TD at line 4. CONTEXT: PL/Perl function "myfunc" -- this works: CREATE OR REPLACE FUNCTION myfunc() RETURNS text AS $BODY$ package foo; sub foo { package main; spi_exec_query(q{INSERT INTO mytable VALUES (1) RETURNING id}); }; package main; foo::foo(); return; $BODY$ LANGUAGE plperlu VOLATILE COST 100; select * from myfunc(); myfunc -------- (1 row) drop table mytable; drop function mytrigger(); drop function myfunc();
В списке pgsql-bugs по дате отправления: