Don't use static storage for SaveTransactionCharacteristics().

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 12d768e70497afc5a57acf73c251316997b5175a
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2022-02-28T17:54:12Z
Releases: 15.0
Don't use static storage for SaveTransactionCharacteristics().

This is pretty queasy-making on general principles, and the more so
once you notice that CommitTransactionCommand() is actually stomping
on the values saved by _SPI_commit().  It's okay as long as the
active values didn't change during HoldPinnedPortals(); but that's
a larger assumption than I think we want to make, especially since
the fix is so simple.

Discussion: https://postgr.es/m/1533956.1645731245@sss.pgh.pa.us

Files

PathChange+/−
src/backend/access/transam/xact.c modified +14 −18
src/backend/executor/spi.c modified +8 −8
src/include/access/xact.h modified +10 −2

Discussion