Neil Conway wrote:
> Hi all,
>
> I'm working on implementing unique hash indexes. I've got most of the
> code finished, but I'm stumped on how to implement the remainder. Since
> I'm still a newbie to the Postgres code, so any pointers or help would
> be much appreciated.
>
> I've been able to borrow a fair amount of code from the btree unique
> index implementation (where possible, I've tried to share code between
> hash and btree, I'll do this more in the final patch). The problem I'm
> having is the implementation of the _hash_check_unique() function. This
> is passed the Buffer which corresponds to the first page in the bucket
> chain for the key, the hash item itself, the ScanKey, as well as the
> index Relation and the heap Relation. Given this, how does one scan
> through the hash bucket to determine if a matching key is present?
>
> I can probably figure out the MVCC related code (ensuring that the
> tuples we find aren't dead, etc); what I can't figure out is the basic
> methodology required to search for matching tuples in the hash bucket.
>
> Any help would be appreciated. I've attached the current development
> version of the patch, if that is of any help.
I am not totally sure of the question, but for hash don't you have to
spin through the entire bucket and test each one.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026