Re: SAVEPOINTs and COMMIT performance

Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>

From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Simon Riggs <simon@2ndQuadrant.com>
Cc: Bruce Momjian <bruce@momjian.us>, pgsql-hackers@postgresql.org
Date: 2011-06-06T09:33:21Z
Lists: pgsql-hackers
On 06.02.2011 23:09, Simon Riggs wrote:
> On Sun, 2011-02-06 at 12:11 -0500, Bruce Momjian wrote:
>> Did this ever get addressed?
>
> Patch attached.
>
> Seems like the easiest fix I can come up with.

> @@ -2518,7 +2518,7 @@ CommitTransactionCommand(void)
>  		case TBLOCK_SUBEND:
>  			do
>  			{
> -				CommitSubTransaction();
> +				CommitSubTransaction(true);
>  				s = CurrentTransactionState;	/* changed by pop */
>  			} while (s->blockState == TBLOCK_SUBEND);
>  			/* If we had a COMMIT command, finish off the main xact too */

We also get into this codepath at RELEASE SAVEPOINT, in which case it is 
wrong to not reassign the locks to the parent subtransaction.

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com