Generally, the patch looks fine. There are few issues still:
- plpgsql: the result columns _do_ create local variables. AIUI, they should not?
- pg_dump: is the psql_assert() introduction necessary, considering it is used only in one place?
- There should be regression test for plpgsql too, that test if the behaviour is correct.
- The documentation should mention behaviour difference from OUT parameters.
Wishlist (probably out of scope for this patch):
- plpgsql: a way to create record variable for result row. Something like:
CREATE FUNCTION foo(..) RETURNS TABLE (..) AS $$ DECLARE retval foo%ROWTYPE;
Currently the OUT parameters are quite painful to use due to bad name resolving logic. Such feature would be perfect
replacement.
--
marko