> 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