Re: [HACKERS] PostGreSQL v6.2.1 for Linux Alpha
Bruce Momjian <maillist@candle.pha.pa.us>
From: Bruce Momjian <maillist@candle.pha.pa.us>
To: khollis@Gawain.Houston-InterWeb.COM (Kenji T. Hollis)
Cc: hackers@postgresql.org
Date: 1998-02-12T16:51:21Z
Lists: pgsql-hackers
> > Bruce: > > > OK, I have a new idea. See in utils/hash/hashfn.c:tag_hash, there is > > the line: > > > > for (; keysize > (sizeof(int) - 1); keysize -= sizeof(int),key++) > > h = h * PRIME1 ^ (*key); > > > > Now, since h is a long, shouldn't the for loop be comparing > > sizeof(long)? However, key is an int*. > > How is this a problem? *key is getting the value of the current pointer > of key. This means, if key contains a string: "Ooga" and key++, then the > value of *key would be "o" in decimal. This is a standard hashing > routine, and the problem does not lie here as far as I can see. You are right. -- Bruce Momjian maillist@candle.pha.pa.us