PostgreSQL 9.3.1 中文手册 | ||||
---|---|---|---|---|
Prev | Up | Chapter 43. PL/Python - Python 过程语言 | Next |
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配置变量控制的。参阅Chapter 18获取更多信息。
另一个实用函数集是plpy.quote_literal(string)、 plpy.quote_nullable(string)和 plpy.quote_ident(string)。 它们相当于Section 9.4中描述的内建引用函数。 它们在构造ad-hoc查询的时候是有用的。一个来自Example 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)))