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_1_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/fcf0246b2c58d4b7e480ccb11e1bdaeef023a4f6 Modified Files -------------- src/backend/commands/analyze.c | 23 ++++++++++++++++------- src/backend/commands/vacuum.c | 21 ++++++++++++--------- src/backend/commands/vacuumlazy.c | 7 +++++-- src/include/commands/vacuum.h | 5 +++-- 4 files changed, 36 insertions(+), 20 deletions(-) -- Sent via pgsql-committers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
