pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
相对 PostgreSQL 12 的差异:13 共有 582 个函数、749 条签名。
PostgreSQL 13 重排了函数表的写法,签名文本整体改变,此处不逐条比较。本页只列函数的增删与分组变动。
「签名变化」指函数还在,但它的签名有增有删;只改说明文字不计入。「换了分组」指手册把这个函数挪到了另一页。
gcd数学函数和操作符
最大公约数(能将两个输入数整除而无余数的最大正数);如果两个输入为零则返回 0;适用于 integer、bigint 和 numeric
gcd ( numeric_type, numeric_type ) → numeric_type
lcm数学函数和操作符
最小公倍数(同时为两个输入的整数倍的最小严格正数);如果任意一个输入值为零则返回 0;适用于 integer、bigint 和 numeric
lcm ( numeric_type, numeric_type ) → numeric_type
min_scale数学函数和操作符
精确表示给定值所需的最少小数位数
min_scale ( numeric ) → integer
trim_scale数学函数和操作符
通过移除尾随零来减少值的小数位数
trim_scale ( numeric ) → numeric
normalize字符串函数和操作符
将字符串转换为指定的 Unicode 规范化形式。可选的 form 关键字指定如下形式:NFC(默认值)、NFD、NFKC 或 NFKD。该函数只能在服务器编码为 UTF8 时使用。
normalize ( text [, form ] ) → text
diagonal几何函数和操作符
提取框的对角线作为线段(与 lseg(box) 相同)。
diagonal ( box ) → lseg
slope几何函数和操作符
计算通过两点所画直线的斜率。
slope ( point, point ) → double precision
json_to_tsvector文本检索函数和操作符
选择 filter 请求的 JSON 文档中的每个项,并将每个项转换为 tsvector,根据指定的或默认配置对单词进行正规化。然后将结果按文档顺序连接起来以产生输出。位置信息就像在每对选定的项目之间存在一个停用词一样生成。(注意,当输入为 jsonb 时,JSON 对象字段的“文档顺序”取决于实现。)filter 必须是一个 jsonb 数组,其中包含 0 个或多个关键字:"string"(包括所有字符串值),"numeric"(包括所有数值),"boolean"(包括所有布尔值),"key"(包括所有键),或 "all"(包括以上所有内容)。作为一种特殊情况,该 filter 也可以是这些关键字之一的简单 JSON 值。
json_to_tsvector ( [ config regconfig, ] document json, filter jsonb ) → tsvector
jsonb_to_tsvector文本检索函数和操作符
选择 filter 请求的 JSON 文档中的每个项,并将每个项转换为 tsvector,根据指定的或默认配置对单词进行正规化。然后将结果按文档顺序连接起来以产生输出。位置信息就像在每对选定的项目之间存在一个停用词一样生成。(注意,当输入为 jsonb 时,JSON 对象字段的“文档顺序”取决于实现。)filter 必须是一个 jsonb 数组,其中包含 0 个或多个关键字:"string"(包括所有字符串值),"numeric"(包括所有数值),"boolean"(包括所有布尔值),"key"(包括所有键),或 "all"(包括以上所有内容)。作为一种特殊情况,该 filter 也可以是这些关键字之一的简单 JSON 值。
jsonb_to_tsvector ( [ config regconfig, ] document jsonb, filter jsonb ) → tsvector
gen_random_uuidUUID 函数
生成一个版本 4(随机)的 UUID
gen_random_uuid () → uuid
jsonb_path_exists_tzJSON 函数和操作符
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。
jsonb_path_exists_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean
jsonb_path_match_tzJSON 函数和操作符
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。
jsonb_path_match_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean
jsonb_path_query_array_tzJSON 函数和操作符
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。
jsonb_path_query_array_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb
jsonb_path_query_first_tzJSON 函数和操作符
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。
jsonb_path_query_first_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb
jsonb_path_query_tzJSON 函数和操作符
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。
jsonb_path_query_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → setof jsonb
jsonb_set_laxJSON 函数和操作符
如果 new_value 不是 NULL,则行为与 jsonb_set 完全相同。否则,根据 null_value_treatment 的值进行处理,其值必须是'raise_exception'、'use_json_null'、'delete_key' 或'return_target' 之一。默认值为'use_json_null'。
jsonb_set_lax ( target jsonb, path text[], new_value jsonb [, create_if_missing boolean [, null_value_treatment text ]] ) → jsonb
mxid_age系统信息函数和操作符
返回给定多事务 ID 与当前多事务计数器之间的多事务 ID 数。
mxid_age ( xid ) → integer
pg_current_snapshot系统信息函数和操作符
返回当前快照,即显示哪些事务 ID 正在进行中的数据结构。快照中只包含顶层事务 ID,不显示子事务 ID;详见第 67.3 节。
pg_current_snapshot () → pg_snapshot
pg_current_xact_id系统信息函数和操作符
返回当前事务的 ID。如果当前事务还没有一个 ID(因为它还没有执行任何数据库更新),它将分配一个新的事务 ID;详见第 67.1 节。如果在子事务中执行,它将返回顶层事务的 ID;详见第 67.3 节。
pg_current_xact_id () → xid8
pg_current_xact_id_if_assigned系统信息函数和操作符
返回当前事务的 ID;如果尚未分配 ID,则返回 NULL。(如果事务本来可能是只读的,最好使用此变体,以免不必要地消耗 XID。)如果在子事务中执行,则返回顶层事务 ID。
pg_current_xact_id_if_assigned () → xid8
pg_get_multixact_members系统信息函数和操作符
返回指定多事务 ID 中每个成员的事务 ID 和锁模式。锁模式 forupd、fornokeyupd、sh 和 keysh 分别对应于第 13.3.2 节中描述的行级锁 FOR UPDATE、FOR NO KEY UPDATE、FOR SHARE 和 FOR KEY SHARE。另有两种多事务特有的模式:nokeyupd 用于不修改键列的更新,upd 用于修改键列的更新或删除。
pg_get_multixact_members ( multixid xid ) → setof record ( xid xid, mode text )
pg_snapshot_xip系统信息函数和操作符
返回快照中包含的正在进行的事务 ID 集。
pg_snapshot_xip ( pg_snapshot ) → setof xid8
pg_snapshot_xmax系统信息函数和操作符
返回快照的 xmax。
pg_snapshot_xmax ( pg_snapshot ) → xid8
pg_snapshot_xmin系统信息函数和操作符
返回快照的 xmin。
pg_snapshot_xmin ( pg_snapshot ) → xid8
pg_visible_in_snapshot系统信息函数和操作符
根据此快照,给定的事务 ID 是否可见(即该事务是否在生成快照之前完成)?注意,此函数无法为子事务 ID(subxid)给出正确结果;详见第 67.3 节。
pg_visible_in_snapshot ( xid8, pg_snapshot ) → boolean
pg_xact_status系统信息函数和操作符
报告近期事务的提交状态。只要事务足够新,系统仍保留其提交状态,结果就为 in progress、committed 或 aborted。如果事务已足够旧,系统中不再有对它的引用,且提交状态信息已被丢弃,则返回 NULL。例如,在 COMMIT 进行过程中应用与数据库服务器断开连接时,应用可以用此函数判断事务是提交了还是中止了。注意,预备事务被报告为 in progress;如果需要确定某个事务 ID 是否为预备事务,应用必须检查 pg_prepared_xacts。
pg_xact_status ( xid8 ) → text
to_regcollation系统信息函数和操作符
将文本排序规则名称转换为它的 OID。通过将字符串类型转换为 regcollation(参见第 8.19 节)可以得到类似的结果;但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。
to_regcollation ( text ) → regcollation
json文本检索函数和操作符
将给定的 text 或 bytea 字符串表达式(采用 UTF8 编码)转换为 JSON 值。如果 expression 为 NULL,则返回 SQL 空值。如果指定了 WITH UNIQUE,则 expression 不能包含重复的对象键。
json ( b ) _to_tsvector([ config regconfig, ] document json(b), filter json(b)) → tsvector
这一版没有函数改动签名。
convert
字符串函数和操作符
二进制串函数和操作符
convert_from
字符串函数和操作符
二进制串函数和操作符
convert_to
字符串函数和操作符
二进制串函数和操作符
decode
字符串函数和操作符
二进制串函数和操作符
encode
字符串函数和操作符
二进制串函数和操作符
tsvector_update_trigger
文本搜索函数和操作符
触发器函数
tsvector_update_trigger_column
文本搜索函数和操作符
触发器函数