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(
, andmsg
)plpy.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(
andmsg
)raise plpy.Fatal(
are equivalent to callingmsg
)plpy.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(
, andstring
)plpy.quote_ident(
. 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:string
)
plpy.execute("UPDATE tbl SET %s = %s WHERE key = %s" % ( plpy.quote_ident(colname), plpy.quote_nullable(newvalue), plpy.quote_literal(keyvalue)))