PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 43. PL/Python - Python 过程语言 | 下一页

# 43.9. 实用函数

`plpy`模块也提供了函数`plpy.debug(`msg`)`、 `plpy.log(`msg`)`、`plpy.info(`msg`)`、 `plpy.notice(`msg`)`、`plpy.warning(`msg`)`、 `plpy.error(`msg`)`和`plpy.fatal(`msg`)`。 `plpy.error`和 `plpy.fatal`实际上抛出了一个Python异常，如果没有捕获这个异常， 则会传播到调用的查询，导致当前事务或者子事务退出。`raise plpy.Error(`msg`)` 和`raise plpy.Fatal(`msg`)`分别等效于调用`plpy.error` 和`plpy.fatal`。其他函数只生成不同优先级的消息。特定优先级的消息是被报告给客户端、 写到服务器日志、还是两件事都做，是由log_min_messages和 client_min_messages配置参数控制的。参阅第 18 章获取更多信息。

另一个实用函数集是`plpy.quote_literal(`string`)`、 `plpy.quote_nullable(`string`)`和 `plpy.quote_ident(`string`)`。 它们相当于第 9.4 节中描述的内建引用函数。 它们在构造ad-hoc查询的时候是有用的。一个来自例 40-1 的动态SQL的PL/Python等效将是：

    plpy.execute("UPDATE tbl SET %s = %s WHERE key = %s" % (
        plpy.quote_ident(colname),
        plpy.quote_nullable(newvalue),
        plpy.quote_literal(keyvalue)))

上一页 | 起始页 | 下一页
明确的子事务 | 上一级 | 环境变量