云原生数据仓库AnalyticDB PostgreSQL版支持用户使用PL/Python过程语言自定义函数。
限制
- 不支持在PL/Python中使用触发器。
- 不支持可更新的游标(例如
UPDATE...WHERE CURRENT OF
和DELETE...WHERE CURRENT OF
)。 - 只支持python2,暂不支持python3。
创建或删除PL/Python插件
在AnalyticDB PostgreSQL版中,执行如下命令,创建或删除PL/Python插件(每个数据库只需执行一次)。因为PL/Python是非授信语言,只支持使用数据库的高权限(初始)账号,执行该命令。以下示例中,高权限账号为admin,需要创建PL/Python所在的数据库名为testdb。
创建PL/Python插件
$ psql -U admin -d testdb -c 'CREATE EXTENSION plpythonu;'
删除PL/Python插件
$ psql -U admin -d testdb -c 'DROP EXTENSION plpythonu;'
使用PL/Python开发Python函数
重要 由于安全原因PL/Python没有直接开放,创建Python函数请提交工单,经技术人员确认无安全风险后,由技术人员创建。
示例:创建Python函数
CREATE FUNCTION return_int_array()
RETURNS int[]
AS $$
return [1, 2, 3, 4]
$$ LANGUAGE plpythonu;
使用函数
SELECT return_int_array();
return_int_array
---------------------
{1,11,21,31}
(1 row)
参考文档
关于Python的更多用法,请参见Python官网。
关于PL/Python的更多用法,请参见PostgreSQL文档。