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