Robert Haas <robertmh...@gmail.com> writes: > On Tue, Mar 4, 2014 at 2:39 PM, Simon Riggs <si...@2ndquadrant.com> wrote: >> Your earlier claim that the dump is inconsistent just isn't accurate. >> We now have MVCC catalogs, so any dump is going to see a perfectly >> consistent set of data plus DDL. OK the catalogs may change AFTER the >> snapshot was taken for the dump, but then so can the data change - >> that's just MVCC.
> Unfortunately, this isn't correct. The MVCC snapshots taken for > catalog scans are "instantaneous"; that is, we take a new, current > snapshot for each catalog scan. If all of the ruleutils.c stuff were > using the transaction snapshot rather than instantaneous snapshots, > this would be right. But as has been previously discussed, that's not > the case. Yeah. And that's *necessary* for catalog lookups in a normally functioning backend, because we have to see latest data (eg, it wouldn't do for a backend to fail to enforce a just-added CHECK constraint because it was committed after the backend's transaction started). However, it seems possible that we could have a mode in which a read-only session did all its catalog fetches according to the transaction snapshot. That would get us to a situation where the backend-internal lookups that ruleutils relies on would give the same answers as queries done by pg_dump. Robert's work on getting rid of SnapshotNow has probably moved that much closer than it was before, but it's still not exactly a trivial patch. Meanwhile, Andres claimed upthread that none of the currently-proposed reduced-lock ALTER commands affect data that pg_dump is using ruleutils to fetch. If that's the case, then maybe this is a problem that we can punt till later. I've not gone through the list to verify it though. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers