On 7/10/08, Pavel Stehule <[EMAIL PROTECTED]> wrote: > I am sending actualized patch > > Regards > Pavel Stehule > > 2008/7/9 Pavel Stehule <[EMAIL PROTECTED]>: > > > 2008/7/9 Marko Kreen <[EMAIL PROTECTED]>: > >> Generally, the patch looks fine. There are few issues still: > >> > >> - plpgsql: the result columns _do_ create local variables. > >> AIUI, they should not? > > > > it was my mistake - it doesn't do local variables - fixed > >> > >> - pg_dump: is the psql_assert() introduction necessary, considering it > >> is used only in one place? > > > > removed - argmode variables is checked before > >> > >> - There should be regression test for plpgsql too, that test if > >> the behaviour is correct. > >> > > > > addeded > >> - The documentation should mention behaviour difference from OUT > >> parameters. > > > > I will do it. > >> > >> Wishlist (probably out of scope for this patch): > > > > this is in my wishlist too, but postgresql doesn't support types like > > result of functions. > >> > >> - 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 > >> > > I'll send patch early, thank you much
Ok, last items: - Attached is a patch that fixes couple C comments. - I think plpgsql 38.1.2 chapter of "Supported Argument and Result Data Types" should also have a mention of TABLE functions. Then I'm content with the patch. -- marko
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 3f90c93..6ae4521 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -6847,7 +6847,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo) appendPQExpBuffer(q, "CREATE FUNCTION %s ", funcsig); - /* swich between RETURNS SETOF RECORD and RETURNS TABLE functions */ + /* switch between RETURNS SETOF RECORD and RETURNS TABLE functions */ if (!is_returns_table_function(nallargs, argmodes)) { rettypename = getFormattedTypeName(finfo->prorettype, zeroAsOpaque); diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c index 612a84f..c683aea 100644 --- a/src/pl/plpgsql/src/pl_comp.c +++ b/src/pl/plpgsql/src/pl_comp.c @@ -402,7 +402,7 @@ do_compile(FunctionCallInfo fcinfo, PLpgSQL_variable *argvariable; int argitemtype; - /* skip PROARGMODE_TABLE params - these params hasn't local variables */ + /* PROARGMODE_TABLE params should not create local variables */ if (argmode == PROARGMODE_TABLE) continue;
-- Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-patches