unicode
使用默认设置的 Unicode 排序算法
当前查看 PostgreSQL 18.6。
说明
使用默认设置的 Unicode 排序算法
- 是否确定性比较(collisdeterministic)
- t
- 排序区域设置(collcollate)
- _null_
- 字符分类区域设置(collctype)
- _null_
- 区域设置(colllocale)
- und
- ICU 规则(collicurules)
- _null_
- 提供者版本(collversion)
- _null_
- 排序规则名称(collname)
- unicode
- 排序规则提供者(collprovider)
- i
- 字符编码(collencoding)
- -1
手册定义
23.2.2.1. 标准排序规则
23.2.2.1. 标准排序规则
在所有平台上,都支持以下排序规则:
unicode-
此 SQL 标准排序规则使用 Unicode 排序算法和默认 Unicode 排序元素表进行排序。它在所有编码中都可用。使用此排序规则需要 ICU 支持,并且如果 PostgreSQL使用不同版本的 ICU 构建,其行为可能会发生变化。(此排序规则与 ICU 根区域设置具有相同的行为;参见
und-x-icu(表示“未定义”)。) ucs_basic-
这一 SQL 标准排序规则按 Unicode 码点值排序,而不按自然语言顺序排序,并且仅将 ASCII 字母 A 到 Z 视为字母。它在各版本中的行为高效且稳定,仅适用于 UTF8 编码;行为与 UTF8 编码下的 libc 区域设置 C 相同。
pg_unicode_fast-
此排序规则按 Unicode 代码点值而不是自然语言顺序进行排序。对于
lower、initcap和upper函数,它使用 Unicode 完整大小写映射。对于模式匹配(包括正则表达式),它使用 Unicode 兼容属性的标准变体。其行为在 Postgres主版本内高效且稳定。仅适用于UTF8编码。 pg_c_utf8-
此排序规则按 Unicode 代码点值而不是自然语言顺序进行排序。对于
lower、initcap和upper函数,它使用 Unicode 简单大小写映射。对于模式匹配(包括正则表达式),它使用 Unicode 兼容属性的 POSIX 兼容变体。其行为在 PostgreSQL主版本内高效且稳定。此排序规则仅适用于UTF8编码。 C(等同于POSIX)-
C和POSIX排序规则基于“传统 C”行为。它们按字节值而不是自然语言顺序排序,并且只有 ASCII 字母“A”到“Z”会被视为字母。对于给定的数据库编码,其行为高效且在所有版本中都稳定,但在不同数据库编码之间可能会有所不同。 - 默认
-
default排序规则会选择数据库创建时指定的区域设置。
根据操作系统支持情况,还可能存在其他排序规则。这些附加排序规则的效率和稳定性取决于排序规则提供程序、提供程序版本以及区域设置。
相关条目
文档与源码
来源构建
- 版本
- 18.6
- 构建
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
版本比较
PostgreSQL 17 → 18: 无变化。
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回排序规则与编码 · 收录范围为 PostgreSQL 16 至 20;最早采样版本不一定是实际引入版本。