Re: BUG #4907: stored procedures and changed tables

From: Sergey Burladyan <eshkinkot(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Michael Tenenbaum <michael(at)strategic-techs(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #4907: stored procedures and changed tables
Date: 2009-07-10 01:12:48
Message-ID: 87vdm12ve7.fsf@seb.progtech.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Alvaro Herrera <alvherre(at)commandprompt(dot)com> writes:

> Michael Tenenbaum wrote:
>
> > If I have a stored procedure that returns a set of records of a table, I get
> > an error message that the procedure's record is the wrong type after I
> > change some columns in the table.
> >
> > Deleting the procedure then rewriting the procedure does not help. The only
> > thing that works is deleting both the stored procedure and the table and
> > starting over again.
>
> Does it work if you disconnect and connect again?

No, example:

PostgreSQL 8.4.0 on i486-pc-linux-gnu, compiled by GCC gcc-4.3.real (Debian 4.3.3-13) 4.3.3, 32-bit

create table t (i int);
create function foo() returns setof t language plpgsql as $$begin return query select * from t; end$$;
select foo();
alter table t add v text; alter table t drop i;
select foo();
ERROR: 42804: structure of query does not match function result type
ПОДРОБНО: Number of returned columns (1) does not match expected column count (2).
КОНТЕКСТ: PL/pgSQL function "foo" line 1 at RETURN QUERY
РАСПОЛОЖЕНИЕ: validate_tupdesc_compat, pl_exec.c:5143
drop function foo();
\c
psql (8.4.0)
You are now connected to database "seb".
create function foo() returns setof t language plpgsql as $$begin return query select * from t; end$$;
select foo();
ERROR: 42804: structure of query does not match function result type
ПОДРОБНО: Number of returned columns (1) does not match expected column count (2).
КОНТЕКСТ: PL/pgSQL function "foo" line 1 at RETURN QUERY
РАСПОЛОЖЕНИЕ: validate_tupdesc_compat, pl_exec.c:5143

--
Sergey Burladyan

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Sergey Burladyan 2009-07-10 01:27:30 Re: BUG #4907: stored procedures and changed tables
Previous Message Alvaro Herrera 2009-07-10 01:03:00 Re: BUG #4915: installation failure: Failure to set permissions on the installed files