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

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

百科 / 函数百科 / 17.12 变更

PostgreSQL 17.12 函数变更

相对 PostgreSQL 16.16 的差异:17.12 共有 657 个函数、852 条签名。

换一个对比基准

汇总

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

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

新增函数24

  • to_bin字符串函数和操作符

    将数字转换为等价的二进制补码表示。

    to_bin ( integer ) → text

    2 条签名

  • to_oct字符串函数和操作符

    将数字转换为等价的二进制补码的八进制表示。

    to_oct ( integer ) → text

    2 条签名

  • unicode_assigned字符串函数和操作符

    如果字符串中的所有字符都是已分配的 Unicode 码点,则返回 true;否则返回 false。此函数只能在服务器编码为 UTF8 时使用。

    unicode_assigned ( text ) → boolean

    1 条签名

  • uuid_extract_timestampUUID 函数

    从版本 1、6 或 7 的 UUID 中提取 timestamp with time zone。对于其他版本,该函数返回 null。注意,提取出的时间戳不一定与 UUID 生成时刻完全一致;这取决于生成该 UUID 的实现。

    uuid_extract_timestamp (uuid) → timestamp with time zone

    1 条签名

  • uuid_extract_versionUUID 函数

    从符合 RFC 9562 所描述某一变体的 UUID 中提取版本号。对于其他变体,该函数返回 null。例如,对于由 gen_random_uuid() 生成的 UUID,该函数将返回 4。

    uuid_extract_version (uuid) → smallint

    1 条签名

  • xmltextXML 函数

    函数 xmltext 返回一个只包含单个文本节点的 XML 值,该文本节点的内容就是输入参数。预定义实体,例如和号(&)、左右尖括号(< >)以及引号(""),都会被转义。

    xmltext ( text ) → xml

    1 条签名

  • jsonJSON 函数和操作符

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

    json ( expression [FORMAT JSON [ENCODING UTF8]] [ { WITH | WITHOUT } UNIQUE [KEYS]] ) → json

    1 条签名

  • JSON_EXISTSJSON 函数和操作符

    如果将 SQL/JSON path_expression 应用于 context_item 后产生了任何项,则返回 true,否则返回 false。

    JSON_EXISTS ( context_item, path_expression [PASSING { value AS varname } [, ...]] [{ TRUE | FALSE | UNKNOWN | ERROR } ON ERROR]) → boolean

    1 条签名

  • JSON_QUERYJSON 函数和操作符

    返回将 SQL/JSON path_expression 应用于 context_item 的结果。

    JSON_QUERY ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ] [ { WITHOUT | WITH { CONDITIONAL | [UNCONDITIONAL] } } [ARRAY] WRAPPER] [ { KEEP | OMIT } QUOTES [ON SCALAR STRING] ] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON ERROR]) → jsonb

    1 条签名

  • json_scalarJSON 函数和操作符

    将给定的 SQL 标量值转换为 JSON 标量值。如果输入为 NULL,则返回 SQL 空值。如果输入是数字或布尔值,则返回相应的 JSON 数字或布尔值。对于其他值,则返回 JSON 字符串。

    json_scalar ( expression )

    1 条签名

  • json_serializeJSON 函数和操作符

    将 SQL/JSON 表达式转换为字符或二进制字符串。expression 可以是任意 JSON 类型、任意字符串类型,或采用 UTF8 编码的 bytea。 RETURNING 中使用的返回类型可以是任意字符串类型或 bytea,默认为 text。

    json_serialize ( expression [FORMAT JSON [ENCODING UTF8] ] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ] )

    1 条签名

  • JSON_TABLEJSON 函数和操作符

    下面更详细地说明每个语法元素。

    JSON_TABLE ( context_item, path_expression [ AS json_path_name] [ PASSING { value AS varname } [, ...] ] COLUMNS ( json_table_column [, ...] ) [ { ERROR | EMPTY [ARRAY]} ON ERROR] )

    1 条签名

  • JSON_VALUEJSON 函数和操作符

    返回将 SQL/JSON path_expression 应用于 context_item 的结果。

    JSON_VALUE ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type] [ { ERROR | NULL | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | DEFAULT expression } ON ERROR]) → text

    1 条签名

  • jsonb_populate_record_validJSON 函数和操作符

    用于测试 jsonb_populate_record 的函数。对于给定的输入 JSON 对象,如果 jsonb_populate_record 能够无错误地完成,即该输入有效,则返回 true;否则返回 false。

    jsonb_populate_record_valid ( base anyelement, from_json json ) → boolean

    1 条签名

  • merge_action合并支持函数

    返回为当前行执行的合并操作命令。结果为'INSERT'、'UPDATE' 或'DELETE'。

    merge_action ( ) → text

    1 条签名

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

    如果服务器在构建时启用了 ICU 支持,则返回一个表示 ICU 所使用的 Unicode 版本的字符串;否则返回 NULL。

    icu_unicode_version () → text

    1 条签名

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

    返回数据目录中 pg_wal/summaries 下现有 WAL 汇总文件的信息。每个 WAL 汇总文件返回一行。每个文件都汇总了指定 TLI 上、指定 LSN 范围内的 WAL。该函数可用于判断服务器上是否存在足够的 WAL 汇总,从而基于某个已知起始 LSN 的先前备份执行增量备份。

    pg_available_wal_summaries () → setof record ( tli bigint, start_lsn pg_lsn, end_lsn pg_lsn )

    1 条签名

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

    返回由类型 OID 标识的域的基础类型 OID。如果参数是非域类型的 OID,则原样返回该参数。如果参数不是有效的类型 OID,则返回 NULL。如果存在域依赖链,则递归查找,直到找到基础类型。

    pg_basetype ( regtype ) → regtype

    1 条签名

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

    返回有关 WAL 汇总器进度的信息。如果自实例启动以来 WAL 汇总器从未运行过,则 summarized_tli 和 summarized_lsn 将分别为 0 和 0/00000000;否则,它们将是最近写入磁盘的 WAL 汇总文件的 TLI 和结束 LSN。如果 WAL 汇总器当前正在运行,pending_lsn 将是它已消费的最后一条记录的结束 LSN,该值必定始终大于或等于 summarized_lsn;如果 WAL 汇总器未在运行,则它将等于 summarized_lsn。summarizer_pid 是 WAL 汇总器进程的 PID;如果它正在运行则返回该 PID,否则为 NULL。

    pg_get_wal_summarizer_state () → record ( summarized_tli bigint, summarized_lsn pg_lsn, pending_lsn pg_lsn, summarizer_pid int )

    1 条签名

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

    返回由 TLI 以及起始和结束 LSN 标识的单个 WAL 汇总文件内容的信息。每一行中,如果 is_limit_block 为 false,则表示其余输出列所标识的块在该文件所汇总的 WAL 记录范围内被至少一条 WAL 记录修改过。每一行中,如果 is_limit_block 为 true,则表示以下两种情况之一:(a) 该关系分支在相关 WAL 记录范围内被截断到 relblocknumber 给出的长度;或者 (b) 该关系分支在相关 WAL 记录范围内被创建或删除;在创建或删除的情况下,relblocknumber 将为零。

    pg_wal_summary_contents ( tli bigint, start_lsn pg_lsn, end_lsn pg_lsn ) → setof record ( relfilenode oid, reltablespace oid, reldatabase oid, relforknumber smallint, relblocknumber bigint, is_limit_block boolean )

    1 条签名

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

    解析文本字符串,从中提取可能的类型名称,并转换其类型修饰符(如果有)。字符串中的语法错误会引发错误;但如果字符串是语法有效的类型名称,只是在系统目录中找不到,则结果为 NULL。如果没有类型修饰符,则结果为 -1。

    to_regtypemod ( text ) → integer

    1 条签名

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

    返回一个表示 PostgreSQL 所使用的 Unicode 版本的字符串。

    unicode_version () → text

    1 条签名

  • pg_column_toast_chunk_id系统管理函数

    显示磁盘上经过 TOAST 处理的值的 chunk_id。如果该值未经过 TOAST 处理或不在磁盘上,则返回 NULL。有关 TOAST 的更多信息,请参见第 66.2 节。

    pg_column_toast_chunk_id ( "any" ) → oid

    1 条签名

  • pg_sync_replication_slots系统管理函数

    将逻辑故障切换复制槽从主库同步到备库。此函数只能在备库上执行。临时同步的槽(如果有)不能用于逻辑解码,必须在提升后删除。此函数会循环重试,直到在函数调用开始时存在于主库上的所有故障切换槽都同步完成。详见第 47.2.3 节。请注意,如果 sync_replication_slots 已启用且 slotsync 工作进程已在运行以执行槽同步,则无法执行此函数。

    pg_sync_replication_slots () → void

    1 条签名

移除函数0

这一版没有移除函数。

签名变化10

函数 分组 增删 第一条新增签名
random 数学函数和操作符 +3 random ( min integer, max integer ) → integer
xmlagg XML 函数 +1 xmlagg ( xml ORDER BY input_sort_columns ) → xml
array_agg 聚合函数 +2−2 array_agg ( anynonarray ORDER BY input_sort_columns ) → anyarray
json_agg 聚合函数 +1−1 json_agg ( anyelement ORDER BY input_sort_columns ) → json
json_object_agg 聚合函数 +1−1 json_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → json
jsonb_agg 聚合函数 +1−1 jsonb_agg ( anyelement ORDER BY input_sort_columns ) → jsonb
jsonb_object_agg 聚合函数 +1−1 jsonb_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → jsonb
string_agg 聚合函数 +1−1 string_agg ( value bytea, delimiter bytea ORDER BY input_sort_columns ) → bytea
pg_create_logical_replication_slot 系统管理函数 +1−1 pg_create_logical_replication_slot ( slot_name name, plugin name [, temporary boolean, twophase boolean, failover boolean] ) → record ( slot_name name, lsn pg_lsn )
pg_logical_emit_message 系统管理函数 +2−2 pg_logical_emit_message ( transactional boolean, prefix text, message text [, flush boolean DEFAULT false] ) → pg_lsn

换了分组0

这一版没有函数换分组。