Hi,
here is a testcase:
CREATE OR REPLACE FUNCTION testseq() RETURNS void AS
$BODY$
BEGINCREATE TEMP SEQUENCE test;PERFORM testseq1();DROP SEQUENCE test;RETURN;
END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION testseq() OWNER TO postgres;
CREATE OR REPLACE FUNCTION testseq1() RETURNS void AS
$BODY$
DECLARE I INTEGER;
BEGINI:= nextval('test');RETURN;
END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION testseq1() OWNER TO postgres;
SELECT testseq();
-- this works fine.
SELECT testseq();
ERROR: could not open relation with OID 21152
CONTEXT: PL/pgSQL function "testseq1" line 3 at assignment
SQL statement "SELECT testseq1()"
PL/pgSQL function "testseq" line 3 at perform
Greetings,
Daniel.