↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 函数百科 / 13 变更

PostgreSQL 13 函数变更

相对 PostgreSQL 12 的差异:13 共有 582 个函数、749 条签名。

PostgreSQL 13 重排了函数表的写法,签名文本整体改变,此处不逐条比较。本页只列函数的增删与分组变动。

换一个对比基准

汇总

  1. 27新增函数
  2. 1移除函数
  3. 0签名变化
  4. 7换了分组

「签名变化」指函数还在,但它的签名有增有删;只改说明文字不计入。「换了分组」指手册把这个函数挪到了另一页。

新增函数27

  • gcd数学函数和操作符

    最大公约数(能将两个输入数整除而无余数的最大正数);如果两个输入为零则返回 0;适用于 integer、bigint 和 numeric

    gcd ( numeric_type, numeric_type ) → numeric_type

    1 条签名

  • lcm数学函数和操作符

    最小公倍数(同时为两个输入的整数倍的最小严格正数);如果任意一个输入值为零则返回 0;适用于 integer、bigint 和 numeric

    lcm ( numeric_type, numeric_type ) → numeric_type

    1 条签名

  • min_scale数学函数和操作符

    精确表示给定值所需的最少小数位数

    min_scale ( numeric ) → integer

    1 条签名

  • trim_scale数学函数和操作符

    通过移除尾随零来减少值的小数位数

    trim_scale ( numeric ) → numeric

    1 条签名

  • normalize字符串函数和操作符

    将字符串转换为指定的 Unicode 规范化形式。可选的 form 关键字指定如下形式:NFC(默认值)、NFD、NFKC 或 NFKD。该函数只能在服务器编码为 UTF8 时使用。

    normalize ( text [, form ] ) → text

    1 条签名

  • diagonal几何函数和操作符

    提取框的对角线作为线段(与 lseg(box) 相同)。

    diagonal ( box ) → lseg

    1 条签名

  • slope几何函数和操作符

    计算通过两点所画直线的斜率。

    slope ( point, point ) → double precision

    1 条签名

  • 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

    1 条签名

  • 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

    1 条签名

  • gen_random_uuidUUID 函数

    生成一个版本 4(随机)的 UUID

    gen_random_uuid () → uuid

    1 条签名

  • jsonb_path_exists_tzJSON 函数和操作符

    这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。

    jsonb_path_exists_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean

    1 条签名

  • jsonb_path_match_tzJSON 函数和操作符

    这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。

    jsonb_path_match_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean

    1 条签名

  • jsonb_path_query_array_tzJSON 函数和操作符

    这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。

    jsonb_path_query_array_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb

    1 条签名

  • jsonb_path_query_first_tzJSON 函数和操作符

    这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。

    jsonb_path_query_first_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb

    1 条签名

  • jsonb_path_query_tzJSON 函数和操作符

    这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。

    jsonb_path_query_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → setof jsonb

    1 条签名

  • 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

    1 条签名

  • mxid_age系统信息函数和操作符

    返回给定多事务 ID 与当前多事务计数器之间的多事务 ID 数。

    mxid_age ( xid ) → integer

    1 条签名

  • pg_current_snapshot系统信息函数和操作符

    返回当前快照,即显示哪些事务 ID 正在进行中的数据结构。快照中只包含顶层事务 ID,不显示子事务 ID;详见第 67.3 节。

    pg_current_snapshot () → pg_snapshot

    1 条签名

  • pg_current_xact_id系统信息函数和操作符

    返回当前事务的 ID。如果当前事务还没有一个 ID(因为它还没有执行任何数据库更新),它将分配一个新的事务 ID;详见第 67.1 节。如果在子事务中执行,它将返回顶层事务的 ID;详见第 67.3 节。

    pg_current_xact_id () → xid8

    1 条签名

  • pg_current_xact_id_if_assigned系统信息函数和操作符

    返回当前事务的 ID;如果尚未分配 ID,则返回 NULL。(如果事务本来可能是只读的,最好使用此变体,以免不必要地消耗 XID。)如果在子事务中执行,则返回顶层事务 ID。

    pg_current_xact_id_if_assigned () → xid8

    1 条签名

  • 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 )

    1 条签名

  • pg_snapshot_xip系统信息函数和操作符

    返回快照中包含的正在进行的事务 ID 集。

    pg_snapshot_xip ( pg_snapshot ) → setof xid8

    1 条签名

  • pg_snapshot_xmax系统信息函数和操作符

    返回快照的 xmax。

    pg_snapshot_xmax ( pg_snapshot ) → xid8

    1 条签名

  • pg_snapshot_xmin系统信息函数和操作符

    返回快照的 xmin。

    pg_snapshot_xmin ( pg_snapshot ) → xid8

    1 条签名

  • pg_visible_in_snapshot系统信息函数和操作符

    根据此快照,给定的事务 ID 是否可见(即该事务是否在生成快照之前完成)?注意,此函数无法为子事务 ID(subxid)给出正确结果;详见第 67.3 节。

    pg_visible_in_snapshot ( xid8, pg_snapshot ) → boolean

    1 条签名

  • pg_xact_status系统信息函数和操作符

    报告近期事务的提交状态。只要事务足够新,系统仍保留其提交状态,结果就为 in progress、committed 或 aborted。如果事务已足够旧,系统中不再有对它的引用,且提交状态信息已被丢弃,则返回 NULL。例如,在 COMMIT 进行过程中应用与数据库服务器断开连接时,应用可以用此函数判断事务是提交了还是中止了。注意,预备事务被报告为 in progress;如果需要确定某个事务 ID 是否为预备事务,应用必须检查 pg_prepared_xacts。

    pg_xact_status ( xid8 ) → text

    1 条签名

  • to_regcollation系统信息函数和操作符

    将文本排序规则名称转换为它的 OID。通过将字符串类型转换为 regcollation(参见第 8.19 节)可以得到类似的结果;但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。

    to_regcollation ( text ) → regcollation

    1 条签名

移除函数1

  • json文本检索函数和操作符

    将给定的 text 或 bytea 字符串表达式(采用 UTF8 编码)转换为 JSON 值。如果 expression 为 NULL,则返回 SQL 空值。如果指定了 WITH UNIQUE,则 expression 不能包含重复的对象键。

    json ( b ) _to_tsvector([ config regconfig, ] document json(b), filter json(b)) → tsvector

    于 13 移除上一版有 1 条签名

签名变化0

这一版没有函数改动签名。

换了分组7

7 个函数被手册挪到了另一页
  • convert 字符串函数和操作符 二进制串函数和操作符
  • convert_from 字符串函数和操作符 二进制串函数和操作符
  • convert_to 字符串函数和操作符 二进制串函数和操作符
  • decode 字符串函数和操作符 二进制串函数和操作符
  • encode 字符串函数和操作符 二进制串函数和操作符
  • tsvector_update_trigger 文本搜索函数和操作符 触发器函数
  • tsvector_update_trigger_column 文本搜索函数和操作符 触发器函数