| PostgreSQL 9.1.14 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Chapter 42. 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 39-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)))