From bad1a5c217c3d363363d9ccd9656aa0a770d16a9 Mon Sep 17 00:00:00 2001 From: Teodor Sigaev Date: Mon, 14 Nov 2005 14:44:06 +0000 Subject: [PATCH] Use postgres-wide macros BITS_PER_BYTE instead self-definenig macros, also use it for calculating bit length of TPQTGist --- contrib/tsearch2/gistidx.h | 11 +++++------ contrib/tsearch2/query_gist.c | 6 ++++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/contrib/tsearch2/gistidx.h b/contrib/tsearch2/gistidx.h index 7e243534fb..3f72252b05 100644 --- a/contrib/tsearch2/gistidx.h +++ b/contrib/tsearch2/gistidx.h @@ -9,11 +9,10 @@ * signature defines */ -#define BITBYTE 8 #define SIGLENINT 63 /* >121 => key will toast, so it will not work * !!! */ #define SIGLEN ( sizeof(int4) * SIGLENINT ) -#define SIGLENBIT (SIGLEN * BITBYTE) +#define SIGLENBIT (SIGLEN * BITS_PER_BYTE) typedef char BITVEC[SIGLEN]; typedef char *BITVECP; @@ -27,11 +26,11 @@ typedef char *BITVECP; a;\ } -#define GETBYTE(x,i) ( *( (BITVECP)(x) + (int)( (i) / BITBYTE ) ) ) +#define GETBYTE(x,i) ( *( (BITVECP)(x) + (int)( (i) / BITS_PER_BYTE ) ) ) #define GETBITBYTE(x,i) ( ((char)(x)) >> (i) & 0x01 ) -#define CLRBIT(x,i) GETBYTE(x,i) &= ~( 0x01 << ( (i) % BITBYTE ) ) -#define SETBIT(x,i) GETBYTE(x,i) |= ( 0x01 << ( (i) % BITBYTE ) ) -#define GETBIT(x,i) ( (GETBYTE(x,i) >> ( (i) % BITBYTE )) & 0x01 ) +#define CLRBIT(x,i) GETBYTE(x,i) &= ~( 0x01 << ( (i) % BITS_PER_BYTE ) ) +#define SETBIT(x,i) GETBYTE(x,i) |= ( 0x01 << ( (i) % BITS_PER_BYTE ) ) +#define GETBIT(x,i) ( (GETBYTE(x,i) >> ( (i) % BITS_PER_BYTE )) & 0x01 ) #define HASHVAL(val) (((unsigned int)(val)) % SIGLENBIT) #define HASH(sign, val) SETBIT((sign), HASHVAL(val)) diff --git a/contrib/tsearch2/query_gist.c b/contrib/tsearch2/query_gist.c index 34bbf37197..c14ece0112 100644 --- a/contrib/tsearch2/query_gist.c +++ b/contrib/tsearch2/query_gist.c @@ -7,6 +7,8 @@ #include "query.h" typedef uint64 TPQTGist; +#define SIGLEN (sizeof(TPQTGist)*BITS_PER_BYTE) + #define GETENTRY(vec,pos) ((TPQTGist *) DatumGetPointer((vec)->vector[(pos)].key)) @@ -24,7 +26,7 @@ makesign(QUERYTYPE* a) { for (i = 0; i < a->size; i++) { if ( ptr->type == VAL ) - sign |= 1 << (ptr->val % 64); + sign |= 1 << (ptr->val % SIGLEN); ptr++; } @@ -198,7 +200,7 @@ static int sizebitvec(TPQTGist sign) { int size=0,i; - for(i=0;i<64;i++) + for(i=0;i>i); return size; -- 2.11.0