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