Transform

一个指定如何将原生 SQL 数据类型转换为 过程语言 本地变量类型的函数

转换 (transform) 是一个函数,它指定如何将原生 SQL 数据类型转换为 过程语言 的本地变量类型。

默认情况下,传递给过程语言的任何 SQL 数据类型都会被转换为该语言的文本表示。然而,特别是对于像 hstoreJSON 这样的复杂数据类型,通常希望将其转换为更合适的表示形式,例如关联数组、哈希、字典、列表等。

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 及更高版本)

变更历史

分类

过程语言

另请参阅

CREATE TRANSFORM, DROP TRANSFORM, pg_transform

反馈

在此处提交关于“Transform”的任何评论、建议或更正 here