Matthew Wakeling <matthew@xxxxxxxxxxx> 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 -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance