PostgreSQL 9.3.25 Documentation | ||||
---|---|---|---|---|
Prev | Up | Chapter 43. PL/Python - Python Procedural Language | Next |
The plpy module also provides the
functions plpy.debug(msg), plpy.log(msg),
plpy.info(msg), plpy.notice(msg),
plpy.warning(msg), plpy.error(msg), and
plpy.fatal(msg). plpy.error
and plpy.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) and raise
plpy.Fatal(msg) are equivalent
to calling plpy.error
and
plpy.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 the
log_min_messages
and client_min_messages
configuration variables. See Chapter
18 for more information.
Another set of utility functions are plpy.quote_literal(string), plpy.quote_nullable(string), and plpy.quote_ident(string). They are equivalent to the built-in quoting functions described in Section 9.4. They are useful when constructing ad-hoc queries. A PL/Python equivalent of dynamic SQL from Example 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)))