"PostgreSQL Bugs List" <[EMAIL PROTECTED]> writes: > CREATE OR REPLACE FUNCTION _test_delete_and_drop() > RETURNS void AS $$ > BEGIN > DELETE FROM _test; > DROP TABLE _test; > RETURN; > END; > $$ LANGUAGE plpgsql;
This will work fine the first time. When you recreate the "_test" table and try to use the function again, the DELETE will fail because it's cached a plan referring to the prior incarnation of the table. plpgsql has always worked like that; it's not a new issue. You can work around this by executing the DELETE with EXECUTE, viz EXECUTE 'DELETE FROM _test'; so that it gets re-planned each time. There are plans to improve this situation, but it won't happen in the near future (certainly not for 8.0). regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html