> On Sep 30, 2019, at 15:37, Bryn Llewellyn <b...@yugabyte.com> wrote:
> I wrote up the problem here:
> 
> https://github.com/yugabyte/yugabyte-db/issues/2464

This is documented; it's the very last line of the page you reference in the 
Github issue:

        A transaction cannot be ended inside a block with exception handlers.

Your discussion doesn't answer the specific issue: BEGIN/EXCEPTION/END in 
pl/pgSQL is implemented by savepoints.  What semantics should COMMIT / ROLLBACK 
have inside of that?  Doing a COMMIT / ROLLBACK (at the database level) at that 
point would lose the savepoints, which would break the BEGIN/EXCEPTION/END 
semantics.

It's not clear to me what the alternative semantics would be.  Can you propose 
specific database behavior for a COMMIT or ROLLBACK inside a 
BEGIN/EXCEPTION/END block which retain the savepoint behavior of 
BEGIN/EXCEPTION/END?
--
-- Christophe Pettus
   x...@thebuild.com



Reply via email to