[BUGS] BUG #1692: Drop table in plpgsql

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[BUGS] BUG #1692: Drop table in plpgsql

Jocelyn Turcotte

The following bug has been logged online:

Bug reference:      1692
Logged by:          Jocelyn Turcotte
Email address:      [hidden email]
PostgreSQL version: 8.0.3
Operating system:   Debian linux 1:3.3.5-12
Description:        Drop table in plpgsql
Details:

I dont know if this bug is known (it seems to be a bug though), did not find
the todo list on the site.
If I execute the folowing code I get the error:

ERROR:  relation with OID 3374698 does not exist
CONTEXT:  SQL statement "INSERT INTO tmp values (1)"
PL/pgSQL function "bugtest" line 8 at SQL statement

Code:

CREATE OR REPLACE FUNCTION bugtest() returns integer as $proc$
    DECLARE
        yo record;
    BEGIN
        CREATE TEMP TABLE tmp (
            col INTEGER
        ) ON COMMIT DROP;

        INSERT INTO tmp values (1);
       
        select into yo col from tmp;
       
        DROP TABLE tmp;
        RETURN 0;
    END;
$proc$ language plpgsql;

select bugtest();
select bugtest();

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [hidden email] so that your
      message can get through to the mailing list cleanly
Reply | Threaded
Open this post in threaded view
|

Re: [BUGS] BUG #1692: Drop table in plpgsql

Michael Fuhr
On Tue, May 31, 2005 at 07:58:50PM +0100, Jocelyn Turcotte wrote:
>
> ERROR:  relation with OID 3374698 does not exist
> CONTEXT:  SQL statement "INSERT INTO tmp values (1)"
> PL/pgSQL function "bugtest" line 8 at SQL statement

See "Why do I get 'relation with OID ##### does not exist' errors
when accessing temporary tables in PL/PgSQL functions?" in the FAQ:

http://www.postgresql.org/docs/faqs.FAQ.html#4.19

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [hidden email])