> Alternatively we could make MultiXactIdIsRunning() return false < 9.3 > when in recovery. I think that'd end up fixing things, but it seems > awfully fragile to me.
Hm, why fragile? It seems a pretty decent answer -- pre-9.3, it's not possible for a tuple to be "locked" in recovery, is it? I mean, in the standby you can't lock it nor update it; the only thing you can do is read (select), and that is not affected by whether there is a multixact in it.
It can't return true and won't ever change for <9.3 so I don't see what the objection is.
--
Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services