本节描述的函数用于获取关于一个 PostgreSQL 安装的各种信息。
Table 9.71 展示了若干提取会话和系统信息的函数。
除了本节列出的函数之外, 还有许多与统计系统相关的函数也提供系统信息。 更多信息请参见 Section 27.2.26。
Table 9.71. 会话信息函数
函数 说明 |
|---|
|
返回当前数据库的名字。
(在 SQL
标准中数据库被称为
“目录”,
因此
|
|
返回当前正在执行的查询的文本, 由客户端提交 (它可能包含多于一条语句)。 |
|
这等同于
|
|
返回搜索路径中排在最前的模式的名字 (如果搜索路径为空, 则返回一个空值)。 这就是在创建任何表或其他命名对象而没有指定目标模式时, 将会被使用的那个模式。 |
返回一个数组,
其中包含当前有效搜索路径中的全部模式的名字,
按它们的优先顺序排列。
(当前
search_path
设置中不对应于现有可搜索模式的项会被省略。)
如果布尔参数为
|
|
返回当前执行上下文的用户名。 |
|
返回当前客户端的 IP 地址,
如果当前连接是通过 Unix
域套接字建立的,
则返回
|
|
返回当前客户端的 IP
端口号,
如果当前连接是通过 Unix
域套接字建立的,
则返回
|
|
返回服务器接受当前连接时所用的 IP
地址,
如果当前连接是通过 Unix
域套接字建立的,
则返回
|
|
返回服务器接受当前连接时所用的 IP
端口号,
如果当前连接是通过 Unix
域套接字建立的,
则返回
|
|
返回附加到当前会话的服务器进程的进程 ID。 |
返回一个数组, 其中包含正在阻塞具有指定进程 ID 的服务器进程获取锁的那些会话的进程 ID, 如果没有这样的服务器进程, 或者它没有被阻塞, 则返回一个空数组。
如果一个服务器进程持有一个与被阻塞进程的锁请求相冲突的锁
(硬阻塞),
或者它正在等待一个与被阻塞进程的锁请求相冲突、
并且在等待队列中位于其之前的锁
(软阻塞),
那么它就阻塞另一个服务器进程。
在使用并行查询时,
结果总是列出客户端可见的进程 ID
(即
频繁调用这个函数可能对数据库性能产生一些影响, 因为它需要在短时间内独占访问锁管理器的共享状态。 |
返回服务器配置文件最后一次被加载的时间。 如果当前会话在那时还活着, 那么这将是该会话自身重新读取配置文件的时间 (因此读取在不同会话中会略有不同)。 否则, 它是 postmaster 进程重新读取配置文件的时间。 |
返回日志收集器当前正在使用的日志文件的路径名。
路径中包括
log_directory
目录和单独的日志文件名。
如果日志收集器被禁用,
结果为
默认情况下,
这个函数被限制为超级用户以及具有
|
返回被加载到当前服务器会话中的可加载模块的列表。
除非模块作者使用
|
|
返回当前会话的临时模式的 OID, 如果它没有临时模式 (因为它尚未创建任何临时表), 则返回零。 |
如果给定的 OID 是另一个会话的临时模式的 OID, 则返回真。 (例如, 在目录显示中排除其他会话的临时表时, 这可能有用。) |
|
如果一个
JIT
编译器扩展可用
(参见
Chapter 30)
并且
jit
配置参数被设置为
|
如果服务器编译时带有 NUMA 支持, 则返回真。 |
返回当前会话正在监听的异步通知通道的名字集合。 |
返回异步通知队列最大尺寸中当前被等待处理的通知所占用的比例 (0–1)。 更多信息请参见 LISTEN 和 NOTIFY。 |
返回服务器启动的时间。 |
返回一个数组, 其中包含正在阻塞具有指定进程 ID 的服务器进程获取一个安全快照的那些会话的进程 ID, 如果没有这样的服务器进程, 或者它没有被阻塞, 则返回一个空数组。
一个运行
频繁调用这个函数可能对数据库性能产生一些影响, 因为它需要在短时间内访问谓词锁管理器的共享状态。 |
|
返回 PostgreSQL 触发器的当前嵌套层级 (如果不是从触发器内部直接或间接调用的, 则为 0)。 |
|
返回会话用户的名字。 |
|
返回用户在被赋予数据库角色之前的身份验证周期内出示的身份验证方法和身份
(如果有)。
它表示为
|
|
这等同于
|
current_catalog、
current_role、
current_schema、
current_user、
session_user
和
user
在
SQL
中具有特殊的语法地位:
它们必须不带尾随的圆括号调用。
在 PostgreSQL 中,
圆括号可以选择性地与
current_schema
一起使用,
但与其他函数不行。
session_user
通常是发起当前数据库连接的用户;
但超级用户可以用
SET SESSION AUTHORIZATION
更改这个设置。
current_user
是适用于权限检查的用户标识符。
通常它等于会话用户,
但可以用
SET ROLE
更改。
在执行带有
SECURITY DEFINER
属性的函数期间,
它同样会发生变化。
用 Unix
的行话来说,
会话用户是
“真实用户”,
而当前用户是
“有效用户”。
current_role 和
user
是
current_user
的同义词。
(SQL 标准在
current_role 和
current_user
之间做了区分,
但
PostgreSQL
没有,
因为它把用户和角色统一为单一类型的实体。)
Table 9.72
列出了允许以编程方式查询对象访问特权的函数。
(关于特权的更多信息请参见
Section 5.8。)
在这些函数中,
被查询特权的用户可以通过名字或 OID
(pg_authid.oid)
指定,
或者如果名字被给为
public,
则检查 PUBLIC
伪角色的特权。
此外,
user
参数可以被完全省略,
在这种情况下假定使用的是
current_user。
被查询的对象同样可以按名字或 OID
指定。
当按名字指定时,
如果相关,
可以包括一个模式名。
所关心的访问特权由一个文本字符串指定,
它必须对对象的类型求值为一个适当的特权关键字
(例如
SELECT)。
可以选择性地在特权类型上添加
WITH GRANT
OPTION,
来测试该特权是否以授予选项的形式持有。
此外,
可以列出用逗号分隔的多种特权类型,
在这种情况下,
只要持有所列特权中的任何一种,
结果就为真。
(特权字符串的大小写不敏感,
并且在特权名字之间允许有额外的空白,
但在特权名字之内不允许。)
一些例子:
SELECT has_table_privilege('myschema.mytable', 'select');
SELECT has_table_privilege('joe', 'mytable', 'INSERT, SELECT WITH GRANT OPTION');
Table 9.72. 访问特权查询函数
函数 说明 |
|---|
用户是否拥有对表中任何一列的特权?
如果对整张表持有该特权,
或者至少有一列存在该特权的列级授予,
则此操作成功。
允许的特权类型是
|
用户是否拥有对指定的表列的特权?
如果对整张表持有该特权,
或者该列存在该特权的列级授予,
则此操作成功。
该列可以按名字或属性编号
( |
用户是否拥有对数据库的特权?
允许的特权类型是
|
用户是否拥有对外部数据封装器的特权?
唯一允许的特权类型是
|
用户是否拥有对函数的特权?
唯一允许的特权类型是
当按名字而非 OID
指定函数时,
允许的输入与
SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');
|
用户是否拥有对语言的特权?
唯一允许的特权类型是
|
用户是否拥有对大对象的特权?
允许的特权类型是
|
用户是否拥有对配置参数的特权?
参数名不区分大小写。
允许的特权类型是
|
用户是否拥有对模式的特权?
允许的特权类型是
|
用户是否拥有对序列的特权?
允许的特权类型是
|
用户是否拥有对外部服务器的特权?
唯一允许的特权类型是
|
用户是否拥有对表的特权?
允许的特权类型是
|
用户是否拥有对表空间的特权?
唯一允许的特权类型是
|
用户是否拥有对数据类型的特权?
唯一允许的特权类型是
|
用户是否拥有对角色的特权?
允许的特权类型是
|
在当前用户和当前环境的上下文中, 指定的表是否激活了行级安全? |
Table 9.73
展示了
aclitem
类型可用的操作符,
该类型是访问特权的目录表示。
有关如何读取访问特权值的信息,
请参见
Section 5.8。
Table 9.73. aclitem 操作符
Table 9.74
展示了一些管理
aclitem
类型的额外函数。
Table 9.74. aclitem 函数
函数 说明 |
|---|
构造一个
|
以一组行的形式返回
|
构造一个具有给定属性的
|
Table 9.75 展示了用于判断某个对象在当前模式搜索路径中是否 可见的函数。 例如, 如果一张表所属于的模式在搜索路径中, 并且搜索路径中没有更早出现同名的表, 则称该表可见。 这等同于说该表可以被不带显式模式限定的名字引用。 因此, 要列出所有可见表的名字:
SELECT relname FROM pg_class WHERE pg_table_is_visible(oid);
对于函数和操作符, 如果路径中没有更早出现同名 且参数数据类型相同的对象, 则搜索路径中的对象被称为可见。 对于操作符类和操作符族, 名字以及关联的索引访问方法都会被考虑。
Table 9.75. 模式可见性查询函数
所有这些函数都要求用对象 OID
来标识要检查的对象。
如果你想按名字测试一个对象,
那么使用 OID
别名类型
(regclass、
regtype、
regprocedure、
regoperator、
regconfig
或
regdictionary)
会很方便,
例如:
SELECT pg_type_is_visible('myschema.widget'::regtype);
注意, 以这种方式测试一个不带模式限定的类型名没有太大意义 — 如果这个名字能被识别, 那它必然是可见的。
Table 9.76 列出了从系统目录中提取信息的函数。
Table 9.76. 系统目录信息函数
函数 说明 |
|---|
返回一个由其类型 OID 和可能的类型修饰符所标识的数据类型的 SQL 名字。 如果不知道具体的修饰符, 请为类型修饰符传入 NULL。 |
返回一个由其类型 OID 标识的域的基本类型的 OID。 如果参数是一个非域类型的 OID, 则原样返回该参数。 如果参数不是一个有效的类型 OID, 则返回 NULL。 如果存在一条域依赖链, 它会递归直到找到基本类型。
假设
|
把所提供的编码名转换为表示某些系统目录表中使用的内部标识符的
整数。
如果提供了一个未知的编码名,
则返回
|
把某些系统目录表中用作编码内部标识符的整数, 转换为一个人类可读的字符串。 如果提供了一个无效的编码编号, 则返回一个空字符串。 |
返回一组记录,
描述
PostgreSQL
系统目录中存在的外键关系。
|
重构一个约束的创建命令。 (这是一个反编译的重构结果, 而非该命令的原始文本。) |
反编译存储在系统目录中的表达式的内部形式, 例如一列的默认值。 如果该表达式可能包含变量, 请把它们所引用的关系的 OID 作为第二个参数指定; 如果预期没有变量, 传零就足够了。 |
重构一个函数或过程的创建命令。
(这是一个反编译的重构结果,
而非该命令的原始文本。)
结果是一条完整的
|
重构一个函数或过程的参数列表,
其形式是它在
|
重构标识一个函数或过程所必需的参数列表,
其形式是它在诸如
|
重构一个函数的
|
重构一个索引的创建命令。
(这是一个反编译的重构结果,
而非该命令的原始文本。)
如果提供了
|
返回一组记录,
描述服务器识别的 SQL
关键字。
|
重构一个分区约束的定义。 (这是一个反编译的重构结果, 而非该命令的原始文本。) |
重构一个分区表的分区键的定义,
其形式是它应当在
|
重构一个规则的创建命令。 (这是一个反编译的重构结果, 而非该命令的原始文本。) |
返回与一列相关联的序列的名字,
如果没有序列与该列相关联,
则返回 NULL。
如果该列是一个标识列,
那么关联的序列就是为该列内部创建的那个序列。
对于使用 serial
类型
( 一个典型的用途是读取一个标识列或 serial 列的序列的当前值, 例如:
SELECT currval(pg_get_serial_sequence('sometable', 'id'));
|
重构一个扩展统计对象的创建命令。 (这是一个反编译的重构结果, 而非该命令的原始文本。) |
重构一个触发器的创建命令。 (这是一个反编译的重构结果, 而非该命令的原始文本。) |
在给定其 OID 的情况下返回角色的名字。 |
重构一个视图或物化视图的底层
|
重构一个视图或物化视图的底层
|
重构一个视图或物化视图的底层
|
测试一个索引列是否具有命名的属性。
常见的索引列属性列在
Table 9.77
中。
(注意,
扩展访问方法可以为它们的索引定义额外的属性名。)
如果属性名未知,
或者不适用于特定的对象,
或者 OID
或列编号未能标识一个有效的对象,
则返回
|
测试一个索引是否具有命名的属性。
常见的索引属性列在
Table 9.78
中。
(注意,
扩展访问方法可以为它们的索引定义额外的属性名。)
如果属性名未知,
或者不适用于特定的对象,
或者 OID
未能标识一个有效的对象,
则返回
|
测试一个索引访问方法是否具有命名的属性。
访问方法属性列在
Table 9.79
中。
如果属性名未知,
或者不适用于特定的对象,
或者 OID
未能标识一个有效的对象,
则返回
|
返回由
|
返回一个由与给定 GUC
关联的标志组成的数组,
如果它不存在,
则返回
|
返回在指定的表空间中存储了对象的那些数据库的 OID
集合。
如果这个函数返回了任何行,
那么该表空间不是空的,
因而不能被删除。
要识别填充该表空间的具体对象,
你将需要连接到由
|
返回该表空间所在的文件系统路径。 |
|
返回传递给它的值的数据类型的 OID。
这对于排查故障或动态构造 SQL
查询可能很有帮助。
该函数被声明为返回
|
返回传递给它的值的排序规则的名字。
必要时,
该值会被加引号并带上模式限定。
如果没有为参数表达式推导出排序规则,
则返回
|
把一个文本关系名转换为它的 OID。
把该字符串转换为
|
把一个文本排序规则名转换为它的 OID。
把该字符串转换为
|
把一个文本模式名转换为它的 OID。
把该字符串转换为
|
|
把一个文本操作符名转换为它的 OID。
把该字符串转换为
|
把一个文本操作符名
(带参数类型)
转换为它的 OID。
把该字符串转换为
|
|
把一个文本函数或过程名转换为它的 OID。
把该字符串转换为
|
把一个文本函数或过程名
(带参数类型)
转换为它的 OID。
把该字符串转换为
|
|
把一个文本角色名转换为它的 OID。
把该字符串转换为
|
|
解析一个文本字符串,
从中提取一个可能的类型名,
并把该名字转换为一个类型 OID。
字符串中的语法错误会导致错误;
但如果该字符串是一个语法上有效、
只是在目录中碰巧找不到的类型名,
结果为
|
解析一个文本字符串,
从中提取一个可能的类型名,
并转换它的类型修饰符
(如果有)。
字符串中的语法错误会导致错误;
但如果该字符串是一个语法上有效、
只是在目录中碰巧找不到的类型名,
结果为
|
重构
(反编译)
数据库对象的大多数函数都有一个可选的
pretty
标志,
如果它为
true,
会使结果被
“美化打印”。
美化打印会抑制不必要的圆括号,
并添加空白以提高可读性。
美化打印的格式更可读,
但默认的格式更可能被未来版本的
PostgreSQL
以相同的方式解释;
因此应避免将美化打印的输出用于转储目的。
为
pretty
参数传递
false
会产生与省略该参数相同的结果。
Table 9.77. 索引列属性
| 名称 | 说明 |
|---|---|
asc | 该列在前向扫描上是否按升序排序? |
desc | 该列在前向扫描上是否按降序排序? |
nulls_first | 该列在前向扫描上是否把空值排在最前? |
nulls_last | 该列在前向扫描上是否把空值排在最后? |
orderable | 该列是否拥有任何已定义的排序顺序? |
distance_orderable | 能否通过一个“距离”操作符对该列按序扫描,例如 ORDER BY col <-> constant? |
returnable | 仅索引扫描能否返回该列的值? |
search_array | 该列是否原生支持 <> 搜索?
|
search_nulls | 该列是否支持 IS NULL 和 IS NOT NULL 搜索?
|
Table 9.78. 索引属性
| 名称 | 说明 |
|---|---|
clusterable | 该索引能否用于 CLUSTER 命令?
|
index_scan | 该索引是否支持普通(非位图)扫描? |
bitmap_scan | 该索引是否支持位图扫描? |
backward_scan | 能否在扫描中途改变扫描方向(以支持游标上的 FETCH BACKWARD 而无需物化)? |
Table 9.79. 索引访问方法属性
| 名称 | 说明 |
|---|---|
can_order | 该访问方法是否支持 CREATE INDEX 中的 ASC、DESC 及相关关键字? |
can_unique | 该访问方法是否支持唯一索引? |
can_multi_col | 该访问方法是否支持多列索引? |
can_exclude | 该访问方法是否支持排除约束? |
can_include | 该访问方法是否支持 CREATE INDEX 的 INCLUDE 子句? |
Table 9.80. GUC 标志
| 标志 | 说明 |
|---|---|
EXPLAIN | 带有此标志的参数会包含在 EXPLAIN (SETTINGS) 命令中。 |
NO_SHOW_ALL | 带有此标志的参数不会出现在 SHOW ALL 命令中。 |
NO_RESET | 带有此标志的参数不支持 RESET 命令。 |
NO_RESET_ALL | 带有此标志的参数不会出现在 RESET ALL 命令中。 |
NOT_IN_SAMPLE | 带有此标志的参数默认不会包含在 postgresql.conf 中。 |
RUNTIME_COMPUTED | 带有此标志的参数是在运行时计算的。 |
Table 9.81 列出了与数据库对象标识和寻址相关的函数。
Table 9.81. 对象信息与寻址函数
pg_get_acl
对于在不查看具体目录的情况下检索和检查与数据库对象关联的特权
很有用。
例如,
要检索当前数据库中对象上所有已被授予的特权:
postgres=# SELECT
(pg_identify_object(s.classid,s.objid,s.objsubid)).*,
pg_catalog.pg_get_acl(s.classid,s.objid,s.objsubid) AS acl
FROM pg_catalog.pg_shdepend AS s
JOIN pg_catalog.pg_database AS d
ON d.datname = current_database() AND
d.oid = s.dbid
JOIN pg_catalog.pg_authid AS a
ON a.oid = s.refobjid AND
s.refclassid = 'pg_authid'::regclass
WHERE s.deptype = 'a';
-[ RECORD 1 ]-----------------------------------------
type | table
schema | public
name | testtab
identity | public.testtab
acl | {postgres=arwdDxtm/postgres,foo=r/postgres}
Table 9.82 中展示的函数提取先前用 COMMENT 命令存储的注释。 如果对指定的参数找不到注释, 则返回一个空值。
Table 9.82. 注释信息函数
Table 9.83 中展示的函数对于检查候选输入数据的有效性会有帮助。
Table 9.83. 数据有效性检查函数
Table 9.84 中展示的函数以可导出的形式提供服务器事务信息。 这些函数的主要用途是确定在两个快照之间提交了哪些事务。
Table 9.84. 事务 ID 和快照信息函数
函数 说明 |
|---|
|
返回所提供的事务 ID 与当前事务计数器之间的事务数量。 |
|
返回所提供的多事务 ID 与当前多事务计数器之间的多事务 ID 数量。 |
|
返回当前事务的 ID。 如果当前事务还没有 ID (因为它尚未执行任何数据库更新), 它会分配一个新的; 细节请参见 Section 67.1。 如果在一个子事务中执行, 这会返回顶层事务 ID; 细节请参见 Section 67.3。 |
返回当前事务的 ID,
如果尚未分配 ID
则返回
|
报告一个近期事务的提交状态。
只要该事务足够新、
系统仍保留着它的提交状态,
结果就是
|
返回一个当前的 快照, 即一个显示哪些事务 ID 现在处于进行中的数据结构。 快照中只包括顶层事务 ID; 不显示子事务 ID; 细节请参见 Section 67.3。 |
返回快照中包含的进行中事务 ID 的集合。 |
返回快照的
|
返回快照的
|
根据这个快照, 给定的事务 ID 是否 可见 (也就是说, 它是否在快照被获取之前完成)? 注意, 对于一个子事务 ID (subxid), 这个函数不会给出正确的答案; 细节请参见 Section 67.3。 |
返回指定的多事务 ID
的每个成员的事务 ID
和锁模式。
锁模式
|
内部事务 ID
类型
xid
的宽度为 32 位,
每过 40
亿个事务就会回绕。
然而,
Table 9.84
中展示的函数
(age、
mxid_age 和
pg_get_multixact_members
除外)
使用一种 64
位的
xid8
类型,
它在安装的生命周期内不会回绕,
并且在需要时可以通过转换转换为
xid;
细节请参见
Section 67.1。
数据类型
pg_snapshot
存储关于某个特定时刻事务 ID
可见性的信息。
它的组成部分在
Table 9.85
中描述。
pg_snapshot
的文本表示是
。
例如,
xmin:xmax:xip_list10:20:10,14,15
表示
xmin=10, xmax=20, xip_list=10, 14, 15。
Table 9.85. 快照组成
| 名称 | 说明 |
|---|---|
xmin | 仍然处于活动状态的最低事务 ID。所有小于 xmin 的事务 ID 要么已经提交且可见,要么已经回滚且失效。 |
xmax | 最高已完成事务 ID 加一。在快照时刻,所有大于等于 xmax 的事务 ID 尚未完成,因此不可见。 |
xip_list | 快照时刻正在进行中的事务。一个满足 xmin <= 并且不在此列表中的事务 ID,在快照时刻已经完成,因此根据其提交状态要么可见要么失效。此列表不包括子事务(subxid)的事务 ID。 |
在
PostgreSQL 13
之前的发行版中没有
xid8
类型,
因此提供了使用
bigint
表示 64
位 XID
的这些函数的变体,
并配有相应不同的快照数据类型
txid_snapshot。
这些较老的函数的名字中带有
txid。
为了向后兼容它们仍然受支持,
但可能会在未来的发行版中被移除。
请参见
Table 9.86。
Table 9.86. 已废弃的事务 ID 和快照信息函数
Table 9.87 中展示的函数提供关于过去事务何时被提交的信息。 只有当 track_commit_timestamp 配置选项被启用时, 它们才提供有用的数据, 并且只针对在它被启用之后提交的事务。 提交时间戳信息会在清理过程中被例行移除。
Table 9.87. 已提交事务信息函数
Table 9.88
中展示的函数打印在
initdb
期间初始化的信息,
例如目录版本。
它们还显示关于预写日志和检查点处理的信息。
这些信息是集群范围的,
而非特定于任何一个数据库。
这些函数从相同的来源提供与
pg_controldata
应用程序大致相同的信息。
Table 9.88. 控制数据函数
函数 说明 |
|---|
返回关于当前检查点状态的信息, 如 Table 9.89 所示。 |
|
返回关于当前控制文件状态的信息, 如 Table 9.90 所示。 |
|
返回关于集群初始化状态的信息, 如 Table 9.91 所示。 |
返回关于恢复状态的信息, 如 Table 9.92 所示。 |
Table 9.89. pg_control_checkpoint 的输出列
| 列名 | 类型 |
|---|---|
checkpoint_lsn | pg_lsn |
redo_lsn | pg_lsn |
redo_wal_file | text |
timeline_id | integer |
prev_timeline_id | integer |
full_page_writes | boolean |
next_xid | text |
next_oid | oid |
next_multixact_id | xid |
next_multi_offset | xid |
oldest_xid | xid |
oldest_xid_dbid | oid |
oldest_active_xid | xid |
oldest_multi_xid | xid |
oldest_multi_dbid | oid |
oldest_commit_ts_xid | xid |
newest_commit_ts_xid | xid |
checkpoint_time | timestamp with time zone |
Table 9.90. pg_control_system 的输出列
| 列名 | 类型 |
|---|---|
pg_control_version | integer |
catalog_version_no | integer |
system_identifier | bigint |
pg_control_last_modified | timestamp with time zone |
Table 9.91. pg_control_init 的输出列
| 列名 | 类型 |
|---|---|
max_data_alignment | integer |
database_block_size | integer |
blocks_per_segment | integer |
wal_block_size | integer |
bytes_per_wal_segment | integer |
max_identifier_length | integer |
max_index_columns | integer |
max_toast_chunk_size | integer |
large_object_chunk_size | integer |
float8_pass_by_value | boolean |
data_page_checksum_version | integer |
default_char_signedness | boolean |
Table 9.92. pg_control_recovery 的输出列
| 列名 | 类型 |
|---|---|
min_recovery_end_lsn | pg_lsn |
min_recovery_end_timeline | integer |
backup_start_lsn | pg_lsn |
backup_end_lsn | pg_lsn |
end_of_backup_record_required | boolean |
Table 9.93 中展示的函数打印版本信息。
Table 9.93. 版本信息函数
函数 说明 |
|---|
|
返回一个描述
PostgreSQL
服务器版本的字符串。
也可以从
server_version
获取这一信息,
而要获得机器可读的版本,
请使用
server_version_num。
软件开发者应当使用
|
|
返回一个表示 PostgreSQL 所使用的 Unicode 版本的字符串。 |
|
如果服务器构建时带有 ICU
支持,
则返回一个表示 ICU
所使用的 Unicode
版本的字符串;
否则返回
|
Table 9.94 中展示的函数打印关于 WAL 汇总状态的信息。 参见 summarize_wal。
Table 9.94. WAL 汇总信息函数