X-Git-Url: http://sigaev.ru/git/gitweb.cgi?p=smlar.git;a=blobdiff_plain;f=smlar_gist.c;h=8cd044b5b60e13ad7265a4b4839088d06946ed79;hp=788876cf983c64d443d2ef6274756866b6ccb223;hb=8a465bb03ae7e2e85c3f9e1ebd75eb4ec830f3c5;hpb=92dc9c753b98700a2533d160c243b6ee24606943 diff --git a/smlar_gist.c b/smlar_gist.c index 788876c..8cd044b 100644 --- a/smlar_gist.c +++ b/smlar_gist.c @@ -3,7 +3,7 @@ #include "fmgr.h" #include "access/gist.h" #include "access/skey.h" -#include "access/tuptoaster.h" +#include "access/heaptoast.h" #include "utils/memutils.h" typedef struct SmlSign { @@ -164,7 +164,9 @@ Array2HashedArray(ProcTypeInfo info, ArrayType *a) ptr = GETARR(sign); for(i=0;inelems;i++) - ptr[i] = DatumGetUInt32( FunctionCall1( &s->info->hashFunc, s->elems[i] ) ); + ptr[i] = DatumGetUInt32(FunctionCall1Coll(&s->info->hashFunc, + DEFAULT_COLLATION_OID, + s->elems[i])); /* * there is a collision of hash-function; len is always equal or less than @@ -239,7 +241,11 @@ getHashedCache(void *cache) getFmgrInfoHash(stat->info); for(i=0;inelems;i++) { - uint32 hash = DatumGetUInt32( FunctionCall1( &stat->info->hashFunc, stat->elems[i].datum ) ); + uint32 hash; + + hash = DatumGetUInt32(FunctionCall1Coll(&stat->info->hashFunc, + DEFAULT_COLLATION_OID, + stat->elems[i].datum)); int index = HASHVAL(hash); stat->helems[i].hash = hash; @@ -296,7 +302,9 @@ fillHashVal(void *cache, SimpleArray *a) getFmgrInfoHash(a->info); for(i=0;inelems;i++) - a->hash[i] = DatumGetUInt32( FunctionCall1( &a->info->hashFunc, a->elems[i] ) ); + a->hash[i] = DatumGetUInt32(FunctionCall1Coll(&a->info->hashFunc, + DEFAULT_COLLATION_OID, + a->elems[i])); }