The following bug has been logged on the website: Bug reference: 6511 Logged by: Mark Murawski Email address: ma...@kobaz.net PostgreSQL version: 9.1.3 Operating system: Linux - Debian Squeeze postgres 9.1 from backports Description:
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=# 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(); -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs