Tom Lane dijo:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > This case is actually more complicated because after the swap, pg_class
> > still says thisxactonly but the relfilenode points to non-thisactonly
> > buffers, and via versa.
>
> pg_class doesn't say anything (if it did, we could make relcache.c
> track it).
>
> But yes, the problem is that myxactonly has to line up with where the
> buffers are stored. As I mentioned, I think it would work to flush out
> all buffers for both rels before doing the swap.
It does indeed work. Actually, I tried to do that before, but the fact
that RelationFlushBuffers requires a firstDelBlock made me turn around.
I attach a new patch against current cvs HEAD. It works as far as I've
tested it, but I may be missing some cases. I'll post a documentation
patch later if this gets applied.
--
Alvaro Herrera (<alvherre[a]atentus.com>)
"Some men are heterosexual, and some are bisexual, and some
men don't think about sex at all... they become lawyers" (Woody Allen)