Index: src/bin/psql/describe.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/bin/psql/describe.c,v retrieving revision 1.124 diff -c -r1.124 describe.c *** src/bin/psql/describe.c 14 Aug 2005 19:20:45 -0000 1.124 --- src/bin/psql/describe.c 29 Aug 2005 02:57:14 -0000 *************** *** 170,186 **** "SELECT n.nspname as \"%s\",\n" " p.proname as \"%s\",\n" " CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||\n" ! " pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n" ! " pg_catalog.oidvectortypes(p.proargtypes) as \"%s\"", ! _("Schema"), _("Name"), _("Result data type"), ! _("Argument data types")); if (verbose) appendPQExpBuffer(&buf, ",\n r.rolname as \"%s\",\n" " l.lanname as \"%s\",\n" " p.prosrc as \"%s\",\n" ! " pg_catalog.obj_description(p.oid, 'pg_proc') as \"%s\"", _("Owner"), _("Language"), _("Source code"), _("Description")); --- 170,203 ---- "SELECT n.nspname as \"%s\",\n" " p.proname as \"%s\",\n" " CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||\n" ! " pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n", ! _("Schema"), _("Name"), _("Result data type")); + if (pset.sversion < 80000) + { + appendPQExpBuffer(&buf, + " pg_catalog.oidvectortypes(p.proargtypes) as \"%s\"", + _("Argument data types")); + } + else + { + appendPQExpBuffer(&buf, + " CASE WHEN array_upper(p.proargnames, 1)>0 THEN\n" + " array_to_string(ARRAY(\n" + " SELECT (p.proargnames)[s.a] || ' ' || (string_to_array(pg_catalog.oidvectortypes(p.proargtypes), ', ' ))[s.a]\n" + " FROM generate_series(1,p.pronargs) AS s(a)\n" + " ), ', ')\n" + " ELSE\n" + " pg_catalog.oidvectortypes(p.proargtypes)\n" + " END as \"%s\"", + _("Argument data types")); + } if (verbose) appendPQExpBuffer(&buf, ",\n r.rolname as \"%s\",\n" " l.lanname as \"%s\",\n" " p.prosrc as \"%s\",\n" ! " pg_catalog.obj_description(p.oid, 'pg_proc') as \"%s\"", _("Owner"), _("Language"), _("Source code"), _("Description")); *************** *** 192,198 **** appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_proc p" "\n LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace" ! "\n LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang" "\n LEFT JOIN pg_catalog.pg_roles r ON r.oid = p.proowner\n"); /* --- 209,215 ---- appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_proc p" "\n LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace" ! "\n LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang" "\n LEFT JOIN pg_catalog.pg_roles r ON r.oid = p.proowner\n"); /*