I'm looking for a way to enable a function to commit a unit of work that does not affect the caller's transaction. I'm coming from the Oracle world where I've used the "autonomous_transaction" pragma of PL/SQL to do this. I'm new to Postgres, but I'm hopeful that I can move our systems from Oracle. I realize that a plpgsql function cannot commit, and that a rollback happens automatically when an exception is raised. Beyond this, I'm not seeing what transaction management tools I have within a function. Maybe there is a standard idiom out there that employs nested function calls or something. I'm willing to use a different language, or even the libpq API if necessary. ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match