@ -8,7 +8,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $ Header : / cvsroot / pgsql / src / backend / access / hash / hashfunc . c , v 1.30 2001 / 03 / 22 03 : 59 : 13 momjian Exp $
* $ Header : / cvsroot / pgsql / src / backend / access / hash / hashfunc . c , v 1.31 2002 / 02 / 25 04 : 06 : 47 momjian Exp $
*
*
* NOTES
* NOTES
* These functions are stored in pg_amproc . For each operator class
* These functions are stored in pg_amproc . For each operator class
@ -95,7 +95,7 @@ hashname(PG_FUNCTION_ARGS)
{
{
char * key = NameStr ( * PG_GETARG_NAME ( 0 ) ) ;
char * key = NameStr ( * PG_GETARG_NAME ( 0 ) ) ;
return hash_any ( ( char * ) key , NAMEDATALEN ) ;
return hash_any ( key , strlen ( key ) ) ;
}
}
/*
/*
@ -125,7 +125,7 @@ hashvarlena(PG_FUNCTION_ARGS)
*
*
* ( Comment from the original db3 hashing code : )
* ( Comment from the original db3 hashing code : )
*
*
* " This is INCREDIBLY ugly, but fast. We break the string up into 8 byte
* This is INCREDIBLY ugly , but fast . We break the string up into 8 byte
* units . On the first time through the loop we get the ' leftover bytes '
* units . On the first time through the loop we get the ' leftover bytes '
* ( strlen % 8 ) . On every later iteration , we perform 8 HASHC ' s so we handle
* ( strlen % 8 ) . On every later iteration , we perform 8 HASHC ' s so we handle
* all 8 bytes . Essentially , this saves us 7 cmp & branch instructions . If
* all 8 bytes . Essentially , this saves us 7 cmp & branch instructions . If
@ -134,7 +134,7 @@ hashvarlena(PG_FUNCTION_ARGS)
* " OZ's original sdbm hash "
* " OZ's original sdbm hash "
*/
*/
Datum
Datum
hash_any ( char * keydata , int keylen )
hash_any ( const char * keydata , int keylen )
{
{
uint32 n ;
uint32 n ;
int loop ;
int loop ;