|
3 | 3 | *
|
4 | 4 | * Copyright (c) 2000-2006, PostgreSQL Global Development Group
|
5 | 5 | *
|
6 |
| - * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.140 2006/06/14 16:49:02 tgl Exp $ |
| 6 | + * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.141 2006/07/17 00:21:23 neilc Exp $ |
7 | 7 | */
|
8 | 8 | #include"postgres_fe.h"
|
9 | 9 | #include"describe.h"
|
@@ -170,8 +170,35 @@ describeFunctions(const char *pattern, bool verbose)
|
170 | 170 | "SELECT n.nspname as \"%s\",\n"
|
171 | 171 | " p.proname as \"%s\",\n"
|
172 | 172 | " CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||\n"
|
173 |
| -" pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n" |
174 |
| -" pg_catalog.oidvectortypes(p.proargtypes) as \"%s\"", |
| 173 | +" pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n" |
| 174 | +" CASE WHEN proallargtypes IS NOT NULL THEN\n" |
| 175 | +" pg_catalog.array_to_string(ARRAY(\n" |
| 176 | +" SELECT\n" |
| 177 | +" CASE\n" |
| 178 | +" WHEN p.proargmodes[s.i] = 'i' THEN ''\n" |
| 179 | +" WHEN p.proargmodes[s.i] = 'o' THEN 'OUT '\n" |
| 180 | +" WHEN p.proargmodes[s.i] = 'b' THEN 'INOUT '\n" |
| 181 | +" END ||\n" |
| 182 | +" CASE\n" |
| 183 | +" WHEN COALESCE(p.proargnames[s.i], '') = '' THEN ''\n" |
| 184 | +" ELSE p.proargnames[s.i] || ' ' \n" |
| 185 | +" END ||\n" |
| 186 | +" pg_catalog.format_type(p.proallargtypes[s.i], NULL)\n" |
| 187 | +" FROM\n" |
| 188 | +" pg_catalog.generate_series(1, pg_catalog.array_upper(p.proallargtypes, 1)) AS s(i)\n" |
| 189 | +" ), ', ')\n" |
| 190 | +" ELSE\n" |
| 191 | +" pg_catalog.array_to_string(ARRAY(\n" |
| 192 | +" SELECT\n" |
| 193 | +" CASE\n" |
| 194 | +" WHEN COALESCE(p.proargnames[s.i+1], '') = '' THEN ''\n" |
| 195 | +" ELSE p.proargnames[s.i+1] || ' '\n" |
| 196 | +" END ||\n" |
| 197 | +" pg_catalog.format_type(p.proargtypes[s.i], NULL)\n" |
| 198 | +" FROM\n" |
| 199 | +" pg_catalog.generate_series(0, pg_catalog.array_upper(p.proargtypes, 1)) AS s(i)\n" |
| 200 | +" ), ', ')\n" |
| 201 | +" END AS \"%s\"", |
175 | 202 | _("Schema"),_("Name"),_("Result data type"),
|
176 | 203 | _("Argument data types"));
|
177 | 204 |
|
|