On Wednesday, October 31, 2012 11:50 PM Palle Girgensohn  wrote:
Hash: SHA1

Hi!

> This is an old problem, referred to in bug #4907:


>ALTER TABLE test ADD COLUMN foo INTEGER;
> SELECT * FROM test_func();
> - -- ERROR:  wrong record type supplied in RETURN NEXT

> You have to run create or replace again to fix it when changing the
> schema. How come it fails? Is the return type "hardcoded" when the
> function is created?
   I think it is because compiled body of function is created with that type of 
table. You will not see this problem if you reconnect or select from another 
new session.
   
> Is this very hard to fix? 

   Currently the compiled body is not discarded on DDL's, so I believe it is 
not a bug as per current implementation.
   However it can be thought of as a new feature.

> IS there a suggested  work-around?
    Considering DDL's are used less often, you can see how feasible it is for 
you that after a DDL, you reconnect sessions which use functions.
    I know this is not good workaround, but I am sorry nothing else comes to my 
mind for now.

    Anybody else can think of any other better workarounds for this problem?

With Regards,
Amit Kapila.

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to