From: | Teodor Sigaev <teodor(at)sigaev(dot)ru> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Matthew Campbell <mtthw(dot)cmpbll(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: GiST Comparing IndexTuples/Datums |
Date: | 2007-02-13 07:53:44 |
Message-ID: | 45D16E88.40207@sigaev.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> indexes, then it must use operator number so-and-so for equality. But
> there are lots of GiST opclasses that don't include equality at all; we
> can't break that case.
There is a GiST support function for equality of keys, in btree_gist it's named
as gbt_*_same. Equality function has support number 7 and is used for stored keys.
But the real issue in unique GiST index is unique :). First, the algorithm of
insertion doesn't compare indexed keys on leaf page at all. Values on the same
page are compared only when page is splitting (picksplit support method).
Second, GiST implementation supports only unordered trees (btree_gist is a some
kind of emulation) and it cannot guarantee that equal keys will be close in
index. That's related to picksplit and gistpenalty method problem/optimization
and data set.
--
Teodor Sigaev E-mail: teodor(at)sigaev(dot)ru
WWW: http://www.sigaev.ru/
From | Date | Subject | |
---|---|---|---|
Next Message | Niels Breet | 2007-02-13 08:10:40 | Re: OT: IRC nick to real world mapping |
Previous Message | Hannu Krosing | 2007-02-13 07:25:02 | Re: HOT for PostgreSQL 8.3 |