On Tue, 2005-02-01 at 17:50 -0500, Tom Lane wrote:
> It'd be safe enough within the same transaction, since VACUUM can't kill
> a tuple inserted by an open transaction; nor could VACUUM FULL touch the
> table at all, since you'll be holding at least a writer's lock on the
> table.
True, but it still seems rather fragile -- it would be quite easy for
people to get this wrong and not realize it (and then wonder why their
application is silently corrupting data at odd times). Also, it might
constrain out ability to improve how we garbage collect expired tuples
in the future, although that's less of a concern.
> But this is all moot since INSERT/UPDATE RETURNING is really the way to
> go, on grounds of functionality, speed, and not breaking backward
> compatibility for existing client code.
Agreed. Also, I believe we could do this without needing a protocol
version bump.
-Neil