PostgreSQL uuid-ossp
- F.44.1.
uuid-ossp
函数 - F.44.2. 编译
uuid-ossp
uuid-ossp
模块提供函数使用几种标准算法之一产生通用唯一标识符(UUID)。还提供产生某些特殊 UUID 常量的函数。此模块仅适用于核心PostgreSQL中提供的以外的特殊要求。有关生成UUID的内置方法,请参见第 9.14 节。
这个模块被认为是“可信的”,也就是说,它可以由对当前数据库具有CREATE
权限的非超级用户安装。
F.44.1. uuid-ossp
函数
表 F.32展示了可用来产生 UUID 的函数。相关标准 ITU-T Rec. X.667、ISO/IEC 9834-8:2005 以及 RFC 4122 指定了四种用于产生 UUID 的算法,分别用版本号 1、3、4、5 标识(没有版本 2 的算法)。这些算法中的每一个都适合于不同的应用集合。
表 F.32. 用于 UUID 产生的函数
表 F.33. 返回 UUID 常量的函数
函数 简述 |
---|
返回一个“nil”UUID 常量,它不作为一个真正的 UUID 出现。 |
返回为 UUID 指定 DNS 名字空间的常量。 |
返回为 UUID 指定 URL 名字空间的常量。 |
返回为 UUID 指定 ISO 对象标识符(OID) 名字空间的常量(这属于 ASN.1 OID,它与PostgreSQL使用的 OID 无关)。 |
返回为 UUID 指定 X.500 可识别名(DN)名字空间的常量。 |
F.44.2. 编译uuid-ossp
在历史上这个模块依赖于 OSSP UUID 库,这也是这个模块名称的由来。虽然 现在还能在http://www.ossp.org/pkg/lib/uuid/上 找到 OSSP UUID 库,但是它已经不再被维护并且越来越难以被一直到新的平台。 uuid-ossp
现在在一些平台上可以脱离 OSSP
库被编译。在 FreeBSD、NetBSD 和一些其他源自 BSD 的平台上,在核心的libc
库中已经包括了合适的 UUID 创建函数。在 Linux、macOS和一些其他平台上, libuuid
库中提供了合适的函数,它最初是来自于 e2fsprogs
项目(不过在现代 Linux 上它被认为是 util-linux-ng
的一部分)。在调用
configure
时, 指定--with-uuid=bsd
可使用 BSD 的函数,指定 --with-uuid=e2fs
会使用e2fsprogs
的 libuuid
,指定--with-uuid=ossp
则会
使用 OSSP UUID 库。在一台特定的机器上可能会存在多种上述的库,因此 configure
不会自动选择其中一个。