PL/Python 语言扩展

本节包含 HashData 数据库的 PL/Python 语言的概述。

上一个话题: HashData 数据库参考指南

关于 HashData 的 PL/Python

PL/Python 是一种可加载的程序语言。使用 HashData 数据库的 PL/Python 扩展,用户可以在 Python 中编写一个 HashData 数据库用户定义的函数,利用 Python 功能和模块的优势可以快速构建强大的数据库应用程序。

用户可以将 PL/Python 代码块作为匿名代码块运行。见 HashData 数据库参考指南中的 DO 命令。

HashData 数据库的 PL/Python 扩展默认安装在 HashData 数据库中。HashData 数据库安装了一个 Python 和 PL/Python 版本。这是 HashData 数据库使用的 Python 的安装位置。

$GPHOME/ext/Python/

HashData 数据库的 PL/Python 的限制

  • HashData 数据库不支持 PL/Python 触发器。
  • PL/Python 仅作为 HashData 数据库不可信的语言使用。
  • 不支持可更新的游标 (UPDATE...WHERE CURRENT OF and DELETE...WHERE CURRENT OF)。

启用和删除 PL/Python 支持

PL/Python 语言与 HashData 数据库一起安装。为了在数据库中创建和运行 PL/Python 用户定义的函数( UDF ),用户必须使用数据库注册 PL/Python 语言。

启用 PL/Python 支持

对于每个需要使用的数据库,请使用 SQL 命令 CREATE LANGUAGE 或 HashData 数据库功能 createlang 注册 PL/Python 语言。因为 PL/Python 是不可信的语言,只有超级用户可以使用数据库注册 PL/Python。例如,作为 gpadmin 系统用户使用名为 testdb 的数据库注册 PL/Python 时运行以下命令:

$ createlang pl Python u -d testdb

PL/Python 被注册了成一种不可信语言。

删除 PL/Python 支持

对于一个不再需要 PL/Python 语言支持的数据库来说, 可以使用 SQL 命令 DROP LANGUAGE 或者 HashData 数据库 droplang 功能删除对 PL/Python 的支持。 因为 PL/Python 是一种不可信语言, 只有超级用户能够从数据库中删除对 PL/Python 语言的支持。例如,作为 gpadmin 系统用户使用名为testdb的数据库删除对 PL/Python 语言的支持时运行以下命令:

$ droplang plPython u -d testdb

当用户删除对 PL/Python 语言的支持时, 用户在数据库中创建的 PL/Python 用户自定义函数将不再有效。