Utility Functions
PostgreSQL 9.4.13 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)))