WIP:plpython3
来自 PostgreSQL 维基
跳转到导航跳转到搜索功能方面,这已经完成了——实际上,我计划删除一些功能。如果你有兴趣在 PostgreSQL 中看到它,请发邮件给我,因为我想知道(x <at sign> jwp.name)。
信息
pl/python3 是 Python 3.x 的过程语言实现。
这个 WIP 针对 8.5 的补丁。
git 分支位于 http://git.postgresql.org/gitweb?p=plpython3.git;a=summary
进度
- 基于模块的函数
- 函数 PEP302 支持(__loader__,用于 linecache 支持)
- CONTEXT 中的追踪信息
- IST 支持(子事务)
- 数据库错误支持;Postgres 错误 -> Python 异常 -> Postgres 错误
- SRFs(VPC 和 物化 & Postgres.Cursor 优化)
- 触发器(语句 & 行)
- 类型接口(原生类型)
- 多态类型。
- SPI/准备好的语句和游标
- Postgres.execute(sql_statements_string) (SPI_execute_statements() 用于批量、无参数的 DDL/DML)
- 大型对象类(io.IOBase;一些协议一致性目前无法实现)
- @pytypes 装饰器,用于将 Postgres.Object 参数转换为标准 Python 类型
- 属性用于获取时间类型的部分(ts.day、ddate.month、intv.second 等)
- 直接函数调用(仅限于非多态、非 SRF 和非 TRIGGER)
- 有状态函数(主函数是生成器的普通函数 =)
- DO 语句支持。
- Postgres.preload(...) (加载指定模式中的所有 Python 函数)
- 测试 [基本 I/O、ISTs、错误、SRFs、触发器、域、枚举、SPI、多态]
- 包含大量参考部分的文档
快速入门
使用 git 进行基本安装。
获取带有 pl/python3 的 PostgreSQL
使用 git,pg 的全新克隆(如果你还没有的话)
git clone git://git.postgresql.org/git/postgresql.git cd postgresql
获取并检出 plpython3 分支
git remote add plpython3 git://git.postgresql.org/git/plpython3.git git fetch plpython3 git branch plpython3 plpython3/plpython3 git checkout plpython3
安装带有 pl/python3 的 PostgreSQL
与 pl/python 一样,pl/python3 可以使用配置参数进行配置和安装:--with-python3
$ ./configure --with-python3
但是,对于测试,建议使用以下方法
$ env "CFLAGS=-O0 -ggdb3" ./configure --enable-depend --enable-debug --enable-cassert --with-python3 # Don't forget to add an appropriate --prefix=
这依赖于 PATH 中可以访问 python3 可执行文件。(注意:目前不支持 Python 3.0。请使用 Python 3.1)
安装完成后,可以使用以下方法在数据库中创建语言
CREATE LANGUAGE plpython3u;
这使用与其他 PL 相同的 pg_pltemplate 条目。
文档
暂时可在此处获取