Re: fix crash with Python 3.11

Markus Wanner <markus.wanner@enterprisedb.com>

From: Markus Wanner <markus.wanner@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, exclusion@gmail.com, pgsql-hackers@lists.postgresql.org
Date: 2022-06-23T19:57:07Z
Lists: pgsql-hackers
On 6/23/22 15:34, Tom Lane wrote:
> Under what circumstances would it be OK for outside code to call
> SPICleanup?

For the same reasons previous Postgres versions called SPICleanup: from 
a sigsetjmp handler that duplicates most of what Postgres does in such a 
situation.

However, I think that's the wrong question to ask for a stable branch. 
Postgres did export this function in previous versions. Removing it 
altogether constitutes an API change and makes extensions that link to 
it fail to even load, which is a bad way to fail after a patch version 
upgrade. Even if its original use was not sound in the first place.

Ofc my proposed patch is not meant for master, only for stable branches.

Best Regards

Markus



Commits

  1. Re-add SPICleanup for ABI compatibility in stable branch

  2. Fix SPI's handling of errors during transaction commit.

  3. Don't use static storage for SaveTransactionCharacteristics().