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: maillist@candle.pha.pa.us (Bruce Momjian)
Cc: hackers@postgreSQL.org, khollis@Gawain.Houston-InterWeb.COM
Date: 1998-02-12T14:51:52Z
Lists: pgsql-hackers
> 
> > Take a look at utils/hash/hashfn.c:tag_hash.  Is there a problem in that
> > code for your platform.  Is the hash getting set, or is it falling
> > through the case statements?  This code is clearly broken for
> > sizeof(int) > 4, but I think your ints are 4, and longs are 8.  I bet
> > somewhere we are using a long where we should be using an int, and that
> > is why only your platform is seeing it.  Is this true about long vs.
> > int.  I can review our use of longs to see if there are problems.
> 
> 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*.  
> 
> Comments?  
> 

Never mind.  I think the code is good, but if someone sees a problem
with longs/ints anywhere in the code, please let's discuss it.

-- 
Bruce Momjian
maillist@candle.pha.pa.us