pgsql: Test IsInTransactionChain, not IsTransactionBlock, in vac_update

Started by Tom Laneover 11 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Test IsInTransactionChain, not IsTransactionBlock, in vac_update_relstats.

As noted by Noah Misch, my initial cut at fixing bug #11638 didn't cover
all cases where ANALYZE might be invoked in an unsafe context. We need to
test the result of IsInTransactionChain not IsTransactionBlock; which is
notationally a pain because IsInTransactionChain requires an isTopLevel
flag, which would have to be passed down through several levels of callers.
I chose to pass in_outer_xact (ie, the result of IsInTransactionChain)
rather than isTopLevel per se, as that seemed marginally more apropos
for the intermediate functions to know about.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/fd0f651a867ce4a25160e37bcb9085f3b3209bf8

Modified Files
--------------
src/backend/commands/analyze.c | 19 ++++++++++++-------
src/backend/commands/vacuum.c | 21 ++++++++++++---------
src/backend/commands/vacuumlazy.c | 6 ++++--
src/include/commands/vacuum.h | 5 +++--
4 files changed, 31 insertions(+), 20 deletions(-)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers