Test IsInTransactionChain, not IsTransactionBlock, in vac_update_relstats.

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

Commit: 7f4ece03d675a2a6cb6cec14f564744b5c01e5a4
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2014-10-30T17:04:13Z
Releases: 9.4.0
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.

Files