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 [EMAIL PROTECTED] | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])