Changeset: 957c834b19e1 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=957c834b19e1
Modified Files:
        gdk/gdk_hash.c
        gdk/gdk_hash.h
Branch: leftmart
Log Message:

tidying up


diffs (102 lines):

diff --git a/gdk/gdk_hash.c b/gdk/gdk_hash.c
--- a/gdk/gdk_hash.c
+++ b/gdk/gdk_hash.c
@@ -267,8 +267,8 @@ BATcheckhash(BAT *b)
                                        b->T->hash = h;
                                        ALGODEBUG fprintf(stderr, 
"#BATcheckhash: reusing persisted hash %s\n", BATgetId(b));
                                        
MT_lock_unset(&GDKhashLock(abs(b->batCacheid)));
-                                       IDXACCESS fprintf(stderr, 
"[%4d->%4d]:%s (" BUNFMT ") #BATcheckhash: load persistent hash index (ms=" 
LLFMT
-                                                                 ")\n", 
b->batCacheid,-VIEWtparent(b), "type", BATcount(b), GDKusec() - t);
+                                       IDXACCESS fprintf(stderr, "[%d,%d]:%c 
(" BUNFMT ") #BATcheckhash: load persistent hash index (ms=" LLFMT
+                                                                 ")\n", 
b->batCacheid,-VIEWtparent(b), b->T->type, BATcount(b), GDKusec() - t);
                                        return 1;
                                }
                                GDKfree(h);
@@ -532,7 +532,7 @@ BAThash(BAT *b, BUN masksize)
                ALGODEBUG HASHcollisions(b, b->T->hash);
        }
        MT_lock_unset(&GDKhashLock(abs(b->batCacheid)));
-       IDXACCESS fprintf(stderr, "[%4d->%4d]:%s (" BUNFMT ") #BAThash: create 
hash index (ms=" LLFMT ")\n", b->batCacheid,-VIEWtparent(b), "type", 
BATcount(b), t1 - t0);
+       IDXACCESS fprintf(stderr, "[%d,%d]:%c (" BUNFMT ") #BAThash: create 
hash index (ms=" LLFMT ")\n", b->batCacheid,-VIEWtparent(b), b->T->type, 
BATcount(b), t1 - t0);
        return GDK_SUCCEED;
 }
 
diff --git a/gdk/gdk_hash.h b/gdk/gdk_hash.h
--- a/gdk/gdk_hash.h
+++ b/gdk/gdk_hash.h
@@ -129,7 +129,7 @@ gdk_export BUN HASHlist(Hash *h, BUN i);
 #endif
 
 
-/* FNV hash */
+/* FNV1a hash */
 
 #if SIZEOF_BUN == 8
 #define FNV_PRIME 0x100000001b3ULL
@@ -142,16 +142,13 @@ gdk_export BUN HASHlist(Hash *h, BUN i);
 #define NO_FNV_OPT
 
 static inline BUN fnvhash_int(const void *v) {
-       unsigned int v_int = *(unsigned int *) v;
+       unsigned int v_uint = *(unsigned int *) v;
        BUN r = FNV_INIT;
-#if SIZEOF_INT == 8
-       int octets = 8;
-#else
-       int octets = 4;
-#endif
+       size_t octets = sizeof(unsigned int);
+
        while (octets--) {
-               r ^= (v_int & 0xff);
-               v_int >>= 8;
+               r ^= (v_uint & 0xff);
+               v_uint >>= 8;
 #ifdef NO_FNV_OPT
                r *= FNV_PRIME;
 #else
@@ -167,12 +164,13 @@ static inline BUN fnvhash_int(const void
 }
 
 static inline BUN fnvhash_lng(const void *v) {
-       ulng v_int = *(ulng *) v;
+       ulng v_ulng = *(ulng *) v;
        BUN r = FNV_INIT;
-       int octets = 8;
+       size_t octets = sizeof(ulng);
+
        while (octets--) {
-               r ^= (v_int & 0xff);
-               v_int >>= 8;
+               r ^= (v_ulng & 0xff);
+               v_ulng >>= 8;
 #ifdef NO_FNV_OPT
                r *= FNV_PRIME;
 #else
@@ -187,9 +185,11 @@ static inline BUN fnvhash_lng(const void
        return r;
 }
 
-#define hash_int2(H,R) ((H)->n > 32 ? ((BUN) ((R) >> (H)->n) ^ ((R) & 
(H)->mask)) : ((BUN) ((((R) >> (H)->n) ^ (R)) & (H)->mask)))
-#define hash_int(H,V)  hash_int2(H, fnvhash_int(V))
-#define hash_lng(H,V)  hash_int2(H, fnvhash_lng(V))
+#define fnv_mask(H,R)  ((H)->n > 32 ? ((BUN) ((R) >> (H)->n) ^ ((R) & 
(H)->mask)) : ((BUN) ((((R) >> (H)->n) ^ (R)) & (H)->mask)))
+#define fnv_int(H,V)   fnv_mask(H, fnvhash_int(V))
+#define fnv_lng(H,V)   fnv_mask(H, fnvhash_lng(V))
+
+/* end of FNV1a hash */
 
 #define mix_bte(X)     ((unsigned int) (unsigned char) (X))
 #define mix_sht(X)     ((unsigned int) (unsigned short) (X))
@@ -208,9 +208,9 @@ static inline BUN fnvhash_lng(const void
 #define heap_hash_any(hp,H,V)  ((hp) && (hp)->hashash ? ((BUN *) (V))[-1] & 
(H)->mask : hash_any(H,V))
 #define hash_bte(H,V)  (assert(((H)->mask & 0xFF) == 0xFF), (BUN) 
mix_bte(*(const unsigned char*) (V)))
 #define hash_sht(H,V)  (assert(((H)->mask & 0xFFFF) == 0xFFFF), (BUN) 
mix_sht(*(const unsigned short*) (V)))
-/*#define hash_int(H,V)        ((BUN) mix_int(*(const unsigned int *) (V)) & 
(H)->mask)*/
+#define hash_int(H,V)  ((BUN) mix_int(*(const unsigned int *) (V)) & (H)->mask)
 /* XXX return size_t-sized value for 8-byte oid? */
-/*#define hash_lng(H,V)        ((BUN) mix_lng(*(const ulng *) (V)) & 
(H)->mask)*/
+#define hash_lng(H,V)  ((BUN) mix_lng(*(const ulng *) (V)) & (H)->mask)
 #ifdef HAVE_HGE
 #define hash_hge(H,V)  ((BUN) mix_hge(*(const uhge *) (V)) & (H)->mask)
 #endif
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to