PostgreSQL 9.5:在 UNIX 终端中描述函数

PostgreSQL 9.5: Describe function in UNIX terminal

我使用下面的命令来描述Unix中的函数。

\\df+ functionName

问题:无法读取函数的描述。

是否有任何其他方法可以查看具有适当缩进的函数。


如果你用 -E (psql -E) 键启动 psql 并运行你的 \\df+ functionName,你会看到它从 pg_catalog.pg_proc 获取定义,所以你可以像 select prosrc from pg_proc where proname = 'functionName';'

同样适用于 \\sf functionName - 这是对 pg_catalog.pg_get_functiondef 的总结。

最后,如果你按照自己的方式进行操作,使用 \\df+,只需在它之前运行 \\xSource code 看起来会更好。

无论如何,在所有这些情况下缩进都会被保存:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
b=# CREATE FUNCTION p() RETURNS text
b-# AS
b-# $$
b$# BEGIN
b$#   --tab
b$#   --two spaces
b$#    --three spaces
b$#   RETURN 't';
b$# END;
b$# $$ LANGUAGE plpgsql
b-# ;
CREATE FUNCTION
b=# \\x
Expanded display IS ON.
b=# \\df+ p
List OF functions
-[ RECORD 1 ]-------+------------------
Schema              | public
Name                | p
RESULT DATA TYPE    | text
Argument DATA types |
TYPE                | normal
Security            | invoker
Volatility          | volatile
Owner               | postgres
LANGUAGE            | plpgsql
SOURCE code         |                  +
                    | BEGIN            +
                    |   --tab          +
                    |   --two spaces   +
                    |    --three spaces+
                    |   RETURN 't';    +
                    | END;             +
                    |
Description         |

b=# \\sf p
CREATE OR REPLACE FUNCTION public.p()
 RETURNS text
 LANGUAGE plpgsql
AS $function$
BEGIN
  --tab
  --two spaces
   --three spaces
  RETURN 't';
END;
$function$