Re: chained transactions

Fabien COELHO <coelho@cri.ensmp.fr>

From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: Michael Paquier <michael@paquier.xyz>, Heikki Linnakangas <hlinnaka@iki.fi>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-12-26T08:47:19Z
Lists: pgsql-hackers
> Updated patch attached.  The previous (v2) patch apparently didn't apply
> anymore.

Second patch applies cleanly, compiles, "make check" ok.

As I do not know much about the SPI stuff, some of the comments below may 
be very stupid.

I'm wary of changing the SPI_commit and SPI_rollback interfaces which are 
certainly being used outside the source tree and could break countless 
code, and it seems quite unclean that commit and rollback would do 
anything else but committing or rollbacking.

ISTM that it should be kept as is and only managed from the PL/pgsql 
exec_stmt_* functions, which have to be adapted anyway. That would 
minimise changes and not break existing code.

If SPI_* functions are modified, which I would advise against, I find 
keeping the next assignment in the chained case doubtful:

 	_SPI_current->internal_xact = false;

-- 
Fabien.


Commits

  1. Transaction chaining

  2. Turn transaction_isolation into GUC enum