> There is, I believe, a problem there; there is a scenario where data
> can get "dropped out from under" those old connections.
>
> This has been added to the TODO...
>
> http://www.postgresql.org/docs/faqs.TODO.html
>
> * Make CLUSTER preserve recently-dead tuples per MVCC requirements
OK, I can see this being a problem in the general case.
However, for my queue table the current behavior is a life-saver. Would
it be possible to still provide a variant of rebuild which is documented
to not be MVCC compliant ? Something like: I don't care the old
transactions which did not touch yet this table to see the old data for
this table, I want to rebuild it.
I actually don't care about clustering in this case, only about
rebuilding the table once I can get an exclusive lock on it. I guess
this would be possible with the "switch to a copy" method except the new
table is a different entity (as mentioned in another post) and it will
not preserve the dependencies of the original table.
I guess what I'm asking for is a kind of "REBUILD TABLE" which is not
MVCC by definition but it would be useful in the mentioned queue table
case.
Cheers,
Csaba.