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

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

百科 / 函数百科 / 16.16 变更

PostgreSQL 16.16 函数变更

相对 PostgreSQL 15.20 的差异:16.16 共有 633 个函数、822 条签名。

换一个对比基准

汇总

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

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

新增函数25

  • erf数学函数和操作符

    误差函数

    erf ( double precision ) → double precision

    1 条签名

  • erfc数学函数和操作符

    互补误差函数(1 - erf(x),对较大输入不会损失精度)

    erfc ( double precision ) → double precision

    1 条签名

  • random_normal数学函数和操作符

    从具有给定参数的正态分布中返回一个随机值;mean 默认为 0.0,stddev 默认为 1.0。

    random_normal ( [mean double precision [, stddev double precision]] ) → double precision

    1 条签名

  • date_add时间/日期函数和操作符

    将一个 interval 加到 timestamp with time zone 上,并根据第三个参数命名的时区,或在省略该参数时根据当前 TimeZone 设置,计算时刻和夏令时调整。双参数形式等价于 timestamp with time zone + interval 操作符。

    date_add ( timestamp with time zone, interval [, text] ) → timestamp with time zone

    1 条签名

  • date_subtract时间/日期函数和操作符

    从一个 timestamp with time zone 中减去 interval,并根据第三个参数命名的时区,或在省略该参数时根据当前 TimeZone 设置,计算时刻和夏令时调整。双参数形式等价于 timestamp with time zone - interval 操作符。

    date_subtract ( timestamp with time zone, interval [, text] ) → timestamp with time zone

    1 条签名

  • json_arrayJSON 函数和操作符

    从一系列 value_expression 参数或 query_expression 的结果构造 JSON 数组;后者必须是返回单列的 SELECT 查询。如果指定了 ABSENT ON NULL,则忽略 NULL 值。使用 query_expression 时始终如此。如果查询不返回任何行,则返回空 JSON 数组。

    json_array ( [ { value_expression [FORMAT JSON] } [, ...] ] [ { NULL | ABSENT } ON NULL] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ])

    2 条签名

  • array_sample数组函数和操作符

    从 array 中随机选取 n 个项并返回一个数组。n 不能超过 array 第一维的长度。如果 array 是多维数组,则一个“项”是具有给定第一维下标的一个切片。

    array_sample ( array anyarray, n integer ) → anyarray

    1 条签名

  • array_shuffle数组函数和操作符

    随机打乱数组的第一维。

    array_shuffle ( anyarray ) → anyarray

    1 条签名

  • any_value聚合函数

    从非空输入值中返回任意一个值。

    any_value ( anyelement ) → 与输入类型相同

    1 条签名

  • json_agg_strict聚合函数

    将所有非空输入值收集到一个 JSON 数组中,跳过空值。根据 to_json 或 to_jsonb 将值转换为 JSON。

    json_agg_strict ( anyelement ) → json

    1 条签名

  • json_arrayagg聚合函数

    行为与 json_array 相同,只是它作为一个聚合函数,因此只接受一个 value_expression 参数。如果指定了 ABSENT ON NULL,则会省略所有 NULL 值。如果指定了 ORDER BY,元素将按该顺序出现在数组中,而不是按输入顺序。

    json_arrayagg ( [value_expression] [ORDER BY sort_expression] [ { NULL | ABSENT } ON NULL] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ])

    1 条签名

  • json_object_agg_strict聚合函数

    将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。移除所有值为空的键值对后,重复键的处理方式与 json_object_agg 和 jsonb_object_agg 相同。

    json_object_agg_strict ( key "any", value "any" ) → json

    1 条签名

  • json_object_agg_unique聚合函数

    将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能为空。如果存在重复键,则会抛出错误。

    json_object_agg_unique ( key "any", value "any" ) → json

    1 条签名

  • json_object_agg_unique_strict聚合函数

    将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。如果存在重复键(包括值为空的键值对),则会抛出错误。

    json_object_agg_unique_strict ( key "any", value "any" ) → json

    1 条签名

  • json_objectagg聚合函数

    行为与 json_object 相同,只是它作为一个聚合函数,因此只接受一个 key_expression 参数和一个 value_expression 参数。

    json_objectagg ( [ { key_expression { VALUE | ':' } value_expression } ] [ { NULL | ABSENT } ON NULL] [ { WITH | WITHOUT } UNIQUE [KEYS] ] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ])

    1 条签名

  • jsonb_agg_strict聚合函数

    将所有非空输入值收集到一个 JSON 数组中,跳过空值。根据 to_json 或 to_jsonb 将值转换为 JSON。

    jsonb_agg_strict ( anyelement ) → jsonb

    1 条签名

  • jsonb_object_agg_strict聚合函数

    将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。移除所有值为空的键值对后,重复键的处理方式与 json_object_agg 和 jsonb_object_agg 相同。

    jsonb_object_agg_strict ( key "any", value "any" ) → jsonb

    1 条签名

  • jsonb_object_agg_unique聚合函数

    将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能为空。如果存在重复键,则会抛出错误。

    jsonb_object_agg_unique ( key "any", value "any" ) → jsonb

    1 条签名

  • jsonb_object_agg_unique_strict聚合函数

    将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。如果存在重复键(包括值为空的键值对),则会抛出错误。

    jsonb_object_agg_unique_strict ( key "any", value "any" ) → jsonb

    1 条签名

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

    重建分区表的分区键定义,采用其在 CREATE TABLE 的 PARTITION BY 子句中的形式。(这是反编译重建的结果,并非命令的原始文本。)

    pg_get_partkeydef ( table oid ) → text

    1 条签名

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

    测试给定的 string 是否是指定数据类型的有效输入;如果不是,则返回本应抛出的错误详情。如果输入有效,则结果为 NULL。输入参数与 pg_input_is_valid 相同。

    pg_input_error_info ( value text, type_name text ) → record ( message text, detail text, hint text, sql_error_code text )

    1 条签名

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

    测试给定的 string 是否是指定数据类型的有效输入,返回 true 或 false。

    pg_input_is_valid ( string text, type text ) → boolean

    1 条签名

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

    返回用户在被分配数据库角色之前,于认证周期中提供的认证方法和身份(如果有)。结果表示为 auth_method:identity;如果用户未被认证(例如使用了 Trust 认证),则返回 NULL。

    system_user → text

    1 条签名

  • pg_log_standby_snapshot系统管理函数

    为进行中的事务拍摄快照并将其写入 WAL,无须等待后台写入器或检查点进程记录快照。这对备用服务器上的逻辑解码很有用,因为创建逻辑复制槽必须等待此类记录在备用服务器上重放。

    pg_log_standby_snapshot () → pg_lsn

    1 条签名

  • pg_split_walfile_name系统管理函数

    从 WAL 文件名中提取序列号和时间线 ID。

    pg_split_walfile_name ( file_name text ) → record ( segment_number numeric, timeline_id bigint )

    1 条签名

移除函数0

这一版没有移除函数。

签名变化4

函数 分组 增删 第一条新增签名
json_object JSON 函数和操作符 +1 json_object ( [ { key_expression { VALUE | ':' } value_expression [FORMAT JSON [ENCODING UTF8] ] }[, ...] ] [ { NULL | ABSENT } ON NULL] [ { WITH | WITHOUT } UNIQUE [KEYS] ] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ])
generate_series 集合返回函数 +1−1 generate_series ( start timestamp with time zone, stop timestamp with time zone, step interval [, timezone text ] ) → setof timestamp with time zone
pg_read_binary_file 系统管理函数 +1−1 pg_read_binary_file ( filename text [, offset bigint, length bigint] [, missing_ok boolean] ) → bytea
pg_read_file 系统管理函数 +1−1 pg_read_file ( filename text [, offset bigint, length bigint] [, missing_ok boolean] ) → text

换了分组0

这一版没有函数换分组。