PostgreSQL 9.4.1 Documentation | |||
---|---|---|---|
Prev | Up | Chapter 43. PL/Python - Python Procedural Language | Next |
43.9. Utility Functions
Theplpy module also provides the functionsplpy.debug(msg),plpy.log(msg),plpy.info(msg),plpy.notice(msg),plpy.warning(msg),plpy.error(msg), andplpy.fatal(msg).plpy.error
andplpy.fatal
actually raise a Python exception which, if uncaught, propagates out to the calling query, causing the current transaction or subtransaction to be aborted.raise plpy.Error(msg) andraise plpy.Fatal(msg) are equivalent to callingplpy.error
andplpy.fatal
, respectively. The other functions only generate messages of different priority levels. Whether messages of a particular priority are reported to the client, written to the server log, or both is controlled by thelog_min_messages andclient_min_messages configuration variables. SeeChapter 18 for more information.
Another set of utility functions areplpy.quote_literal(string),plpy.quote_nullable(string), andplpy.quote_ident(string). They are equivalent to the built-in quoting functions described inSection 9.4. They are useful when constructing ad-hoc queries. A PL/Python equivalent of dynamic SQL fromExample 40-1 would be:
plpy.execute("UPDATE tbl SET %s = %s WHERE key = %s" % ( plpy.quote_ident(colname), plpy.quote_nullable(newvalue), plpy.quote_literal(keyvalue)))