在Postgres中,使用PL/Python存储过程语言来支持使用python语言编写的UDF函数。PL/Python以‘非信任’语言( ’untrusted’ language)的形式存在,这意味着它不限制用户如何使用Python。所以这种语言被命名为plpythonu。如果Python将来提供了新的安全机制,会提供plpython语言。未信任的PL/Python的编写者必须谨慎编写这些函数,不要用来做非法操作,因为这个功能使得拥有DBA身份的用户可以执行任意脚本。只有超级用户才有权限创建这些函数。
1、匿名执行任意python脚本
支持参数传入,输出参数返回字符串类型的执行结果。
语法格式:
python(code,[<parameter_1>[,…] [,parameter_n])
code为字符串类型的python代码
parameter可选,type是GBase 8a MPP Cluster支持的数据类型
示例:
gbase> select python('return 1+1');
+----------------------+
| python('return 1+1') |
+----------------------+
| 2 |
+----------------------+
gbase> select python('import datetime\nreturn datetime.datetime.now()');
+-----------------------------------------------------------+
| python('import datetime\nreturn datetime.datetime.now()') |
+-----------------------------------------------------------+
| 2017-01-03 17:38:47.138760 |
+-----------------------------------------------------------+
gbase> select python('import platform\nreturn platform.platform()') as result;
+-------------------------------------------------------------+
| result |
+-------------------------------------------------------------+
| Linux-2.6.32-431.el6.x86_64-x86_64-with-redhat-6.5-Santiago |
gbase> set @a=1,@b=2;
gbase>