Matthew Wakeling <matthew@flymine.org> writes:
> I have found a bug in the contrib package seg, which has been copied into
> the bioseg data type as well. It causes the index to be created with
> horribly bad unselective trees, so that when a search is performed many of
> the branches of the tree need to be followed. This explanation does not
> extend to btree_gist, so I will have to further investigate that. Apply
> the following patch to contrib/seg/seg.c:
> *** seg.c 2006-09-10 18:36:51.000000000 +0100
> --- seg.c_new 2009-04-20 15:02:52.000000000 +0100
> ***************
> *** 426,432 ****
> else
> {
> datum_r = union_dr;
> ! size_r = size_alpha;
> *right++ = i;
> v->spl_nright++;
> }
> --- 426,432 ----
> else
> {
> datum_r = union_dr;
> ! size_r = size_beta;
> *right++ = i;
> v->spl_nright++;
> }
Looks like contrib/cube has the same error. I don't see a similar code
pattern elsewhere though. Oleg, Teodor, do you concur that this is a
correct patch? Is it safe to back-patch (I think it should be)?
regards, tom lane