On Fri, 2010-04-16 at 10:39 -0400, Tom Lane wrote:
> Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> > I didn't handle xid wraparound correctly in the binary search, need to use
> > TransactionIdFollows instead of plan >.
>
> I think you're outsmarting yourself there. A binary search will in fact
> *not work* with circular xid comparison (this is exactly why there's no
> btree opclass for XID). You need to use plain >, and make sure the
> array you're searching is ordered that way too. The other way might
> accidentally fail to malfunction if you only tested ranges of XIDs that
> weren't long enough to wrap around, but that doesn't make it right.
I don't understand the exact, please explain more.
I'm not using bsearch() just a quick chop based upon xid comparison,
which looks to me like it will work.
-- Simon Riggs www.2ndQuadrant.com