Re: [HACKERS] PostGreSQL v6.2.1 for Linux Alpha

Kenji T. Hollis <khollis@gawain.houston-interweb.com>

From: "Kenji T. Hollis" <khollis@Gawain.Houston-InterWeb.COM>
To: Bruce Momjian <maillist@candle.pha.pa.us>
Cc: PostgreSQL-development <hackers@postgreSQL.org>
Date: 1998-02-12T10:09:30Z
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.

-- Ken
------
   =========================================================================
      Houston InterWeb Design, Inc.     ||      Office: +1 (713) 627-9494
      Lead Programmer/Designer          ||         Fax: +1 (713) 627-2744
      C++, Windows, and Web Programming ||       Pager: +1 (713) 727-2529
   =========================================================================
               Home page URL: http://www.houston-interweb.com/