pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
相对 PostgreSQL 15.20 的差异:16.16 共有 633 个函数、822 条签名。
「签名变化」指函数还在,但它的签名有增有删;只改说明文字不计入。「换了分组」指手册把这个函数挪到了另一页。
erf数学函数和操作符
误差函数
erf ( double precision ) → double precision
erfc数学函数和操作符
互补误差函数(1 - erf(x),对较大输入不会损失精度)
erfc ( double precision ) → double precision
random_normal数学函数和操作符
从具有给定参数的正态分布中返回一个随机值;mean 默认为 0.0,stddev 默认为 1.0。
random_normal ( [mean double precision [, stddev double precision]] ) → double precision
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
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
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] ] ])
array_sample数组函数和操作符
从 array 中随机选取 n 个项并返回一个数组。n 不能超过 array 第一维的长度。如果 array 是多维数组,则一个“项”是具有给定第一维下标的一个切片。
array_sample ( array anyarray, n integer ) → anyarray
array_shuffle数组函数和操作符
随机打乱数组的第一维。
array_shuffle ( anyarray ) → anyarray
any_value聚合函数
从非空输入值中返回任意一个值。
any_value ( anyelement ) → 与输入类型相同
json_agg_strict聚合函数
将所有非空输入值收集到一个 JSON 数组中,跳过空值。根据 to_json 或 to_jsonb 将值转换为 JSON。
json_agg_strict ( anyelement ) → json
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] ] ])
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。移除所有值为空的键值对后,重复键的处理方式与 json_object_agg 和 jsonb_object_agg 相同。
json_object_agg_strict ( key "any", value "any" ) → json
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能为空。如果存在重复键,则会抛出错误。
json_object_agg_unique ( key "any", value "any" ) → json
json_object_agg_unique_strict聚合函数
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。如果存在重复键(包括值为空的键值对),则会抛出错误。
json_object_agg_unique_strict ( key "any", value "any" ) → json
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] ] ])
jsonb_agg_strict聚合函数
将所有非空输入值收集到一个 JSON 数组中,跳过空值。根据 to_json 或 to_jsonb 将值转换为 JSON。
jsonb_agg_strict ( anyelement ) → jsonb
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。移除所有值为空的键值对后,重复键的处理方式与 json_object_agg 和 jsonb_object_agg 相同。
jsonb_object_agg_strict ( key "any", value "any" ) → jsonb
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能为空。如果存在重复键,则会抛出错误。
jsonb_object_agg_unique ( key "any", value "any" ) → jsonb
jsonb_object_agg_unique_strict聚合函数
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。如果存在重复键(包括值为空的键值对),则会抛出错误。
jsonb_object_agg_unique_strict ( key "any", value "any" ) → jsonb
pg_get_partkeydef系统信息函数和操作符
重建分区表的分区键定义,采用其在 CREATE TABLE 的 PARTITION BY 子句中的形式。(这是反编译重建的结果,并非命令的原始文本。)
pg_get_partkeydef ( table oid ) → text
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 )
pg_input_is_valid系统信息函数和操作符
测试给定的 string 是否是指定数据类型的有效输入,返回 true 或 false。
pg_input_is_valid ( string text, type text ) → boolean
system_user系统信息函数和操作符
返回用户在被分配数据库角色之前,于认证周期中提供的认证方法和身份(如果有)。结果表示为 auth_method:identity;如果用户未被认证(例如使用了 Trust 认证),则返回 NULL。
system_user → text
pg_log_standby_snapshot系统管理函数
为进行中的事务拍摄快照并将其写入 WAL,无须等待后台写入器或检查点进程记录快照。这对备用服务器上的逻辑解码很有用,因为创建逻辑复制槽必须等待此类记录在备用服务器上重放。
pg_log_standby_snapshot () → pg_lsn
pg_split_walfile_name系统管理函数
从 WAL 文件名中提取序列号和时间线 ID。
pg_split_walfile_name ( file_name text ) → record ( segment_number numeric, timeline_id bigint )
这一版没有移除函数。
| 函数 | 分组 | 增删 | 第一条新增签名 |
|---|---|---|---|
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 |
这一版没有函数换分组。