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.