pgsql: Test IsInTransactionChain, not IsTransactionBlock, in vac_update
pgsql: Test IsInTransactionChain, not IsTransactionBlock, in vac_update
От:
Tom 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 ------ REL9_0_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/73f950fc88eee13192ee538863b76603b030f1c0 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(-)