Alex Vinokur wrote:
On Nov 15, 10:40 am, Alex Vinokur <[EMAIL PROTECTED]>
wrote:
[snip]
I have some question concerning Bob Jenkins' functions
hashword(uint32_t*, size_t), hashlittle(uint8_t*, size_t) and
hashbig(uint8_t*, size_t) in lookup3.c.

Let k1 by a key: uint8_t* k1; strlen(k1)%sizeof(uint32_t) == 0.

1. hashlittle(k1) produces the same value on Little-Endian and Big-
Endian machines.
   Let hashlittle(k1) be == L1.

2. hashbig(k1) produces the same value on Little-Endian and Big-Endian
machines.
   Let hashbig(k1) be == B1.

  L1 != B1

3. hashword((uint32_t*)k1) produces
    * L1 on LittleEndian machine and
    * B1 on BigEndian machine.

===================================
---------------------
The question is: is it possible to change hashword() to get
    * L1 on Little-Endian machine and
    * B1 on Big-Endian machine
   ?

Sorry, it should be as follows:

Is it possible to create two new hash functions on basis of
hashword():
   i)  hashword_little () that produces L1 on Little-Endian and Big-
Endian machines;
   ii) hashword_big ()    that produces B1 on Little-Endian and Big-
Endian machines
   ?

Why?

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

Reply via email to