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 ------ REL9_4_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/7f4ece03d675a2a6cb6cec14f564744b5c01e5a4 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 ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
