转换 (transform) 是一个函数,它指定如何将原生 SQL 数据类型转换为 过程语言 的本地变量类型。
默认情况下,传递给过程语言的任何 SQL 数据类型都会被转换为该语言的文本表示。然而,特别是对于像 hstore 或 JSON 这样的复杂数据类型,通常希望将其转换为更合适的表示形式,例如关联数组、哈希、字典、列表等。
Transform 功能是在 PostgreSQL 9.5 中添加的。
实现
Transforms 是使用 CREATE TRANSFORM 创建的,它会在 pg_transform 系统目录表中创建一个相应的条目。通常,转换的创建将由提供特定 过程语言 转换的 扩展 来处理。
Transforms 是使用 DROP TRANSFORM 删除的,尽管这通常作为 DROP EXTENSION 操作的一部分而被透明地执行。
提供转换的扩展
截至 PostgreSQL 14,以下 contrib 模块提供了 transforms:
bool_plperl(PostgreSQL 14 及更高版本)hstore_plperl(PostgreSQL 9.5 及更高版本)hstore_plpython(PostgreSQL 9.5 及更高版本)jsonb_plperl(PostgreSQL 11 及更高版本)jsonb_plpython(PostgreSQL 11 及更高版本)ltree_plpython(PostgreSQL 9.5 及更高版本)
变更历史
- PostgreSQL 9.5
- 添加于(提交 cac76582)
