The following bug has been logged online: Bug reference: 1546 Logged by: Oliver Siegmar Email address: [EMAIL PROTECTED] PostgreSQL version: 7.4.7 / 8.0.1 Operating system: Linux x86 Description: Temp table isn't deleted at the end of a transaction / ON COMMIT DROP has no effect Details:
Hello, I've probably found a temp table bug in PostgreSQL (tested with 7.4.7 and 8.0.1 on Linux x86). Here's a demonstration of the bug: CREATE FUNCTION testfunction() RETURNS void AS ' BEGIN CREATE TEMP TABLE testtable (field int4) ON COMMIT DROP; INSERT INTO testtable (field) VALUES (1); -- DROP TABLE testtable; RETURN; END; ' LANGUAGE 'plpgsql'; database=# SELECT testfunction(); testfunction -------------- (1 row) database=# SELECT testfunction(); ERROR: relation with OID 29308882 does not exist CONTEXT: SQL statement "INSERT INTO testtable (field) VALUES (1)" PL/pgSQL function "testfunction" line 4 at SQL statement No transaction has been started manually. If I drop the temporary testtable manually within the PL/pgSQL function, everything runs fine. Bug or feature? ;-) Cheers, Oliver ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq