Re: [HACKERS] PostGreSQL v6.2.1 for Linux Alpha
От | Bruce Momjian |
---|---|
Тема | Re: [HACKERS] PostGreSQL v6.2.1 for Linux Alpha |
Дата | |
Msg-id | 199802121446.JAA24893@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: [HACKERS] PostGreSQL v6.2.1 for Linux Alpha (Bruce Momjian <maillist@candle.pha.pa.us>) |
Ответы |
Re: [HACKERS] PostGreSQL v6.2.1 for Linux Alpha
Re: [HACKERS] PostGreSQL v6.2.1 for Linux Alpha |
Список | 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? -- Bruce Momjian maillist@candle.pha.pa.us
В списке pgsql-hackers по дате отправления: