I notice that the large-object operations in pg_largeobject.c and inv_api.c all use SnapshotNow to access large-object tuples. This means they are not really MVCC compliant. For example, I could be reading a large object that someone else is writing; if he commits mid-read, then I will see some old data and some updated data. This seems wrong.
In particular, pg_dump cannot promise to dump a consistent snapshot of large objects, because what it reads will be read under SnapshotNow. I suggest that large object tuples are user data and so should be read using the QuerySnapshot established at start of transaction. Comments anyone? Is it possible that changing this will break any existing applications that depend on the current behavior? regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html