Palle Girgensohn <girgen(at)pingpong(dot)net> writes:
> Please note that this problem does not go away by disconnecting and reconnecting, and other sessions get the error immediately, so the claim that it is bound to a session is false.
Huh? The test case you provided certainly doesn't exhibit any such
behavior. I get
regression=# SELECT * FROM test_func();
ERROR: wrong record type supplied in RETURN NEXT
CONTEXT: PL/pgSQL function test_func() line 6 at RETURN NEXT
regression=# \c -
You are now connected to database "regression" as user "postgres".
regression=# SELECT * FROM test_func();
id | foo
----+-----
1 |
(1 row)
regards, tom lane