PL/PGSQL and drop/create table

Started by Teodor Sigaevover 20 years ago2 messages
#1Teodor Sigaev
teodor@sigaev.ru

# create table foo ( bar int );
CREATE TABLE
# create or replace function func (int)
returns int as
$$
DECLARE
IID alias for $1;
CNT int;
BEGIN
select into CNT count(*) from foo where bar = IID;
RETURN CNT;
END;
$$
language plpgsql;
CREATE FUNCTION
# select func(1);
func
------
0
(1 row)

# drop table foo;
DROP TABLE
# create table foo ( bar int );
CREATE TABLE
# select func(1);
ERROR: relation with OID 16628 does not exist
CONTEXT: SQL statement "SELECT count(*) from foo where bar = $1 "
PL/pgSQL function "func" line 5 at select into variables

After reconnecting to database all is ok. Is it supposed behaviour?

--
Teodor Sigaev E-mail: teodor@sigaev.ru
WWW: http://www.sigaev.ru/

#2Michael Fuhr
mike@fuhr.org
In reply to: Teodor Sigaev (#1)
Re: PL/PGSQL and drop/create table

On Wed, Sep 07, 2005 at 03:51:05PM +0400, Teodor Sigaev wrote:

ERROR: relation with OID 16628 does not exist
CONTEXT: SQL statement "SELECT count(*) from foo where bar = $1 "

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

--
Michael Fuhr