Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd77f73e

Browse files
author
Neil Conway
committed
Improve psql's \df slash command to include the argument names and modes
(OUT or INOUT) of the function. Patch from David Fetter, editorializationby Neil Conway.
1 parentc1e59cc commitd77f73e

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

‎src/bin/psql/describe.c

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
55
*
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 $
77
*/
88
#include"postgres_fe.h"
99
#include"describe.h"
@@ -170,8 +170,35 @@ describeFunctions(const char *pattern, bool verbose)
170170
"SELECT n.nspname as \"%s\",\n"
171171
" p.proname as \"%s\",\n"
172172
" 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\"",
175202
_("Schema"),_("Name"),_("Result data type"),
176203
_("Argument data types"));
177204

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp