diff options
author | Teodor Sigaev <teodor@sigaev.ru> | 2004-03-30 15:45:33 +0000 |
---|---|---|
committer | Teodor Sigaev <teodor@sigaev.ru> | 2004-03-30 15:45:33 +0000 |
commit | f2c064afcbfad4999d7e9ccb644a8aa99463a1ac (patch) | |
tree | a630e42b10478f1d88b637a96114945016faa2e0 /contrib/btree_gist/btree_common.c | |
parent | 8d9a28eeefc477638cca58d0685635271eae49d6 (diff) | |
download | postgresql-f2c064afcbfad4999d7e9ccb644a8aa99463a1ac.tar.gz postgresql-f2c064afcbfad4999d7e9ccb644a8aa99463a1ac.zip |
Cleanup vectors of GISTENTRY and eliminate problem with 64-bit strict-aligned
boxes. Change interface to user-defined GiST support methods union and
picksplit. Now instead of bytea struct it used special GistEntryVector
structure.
Diffstat (limited to 'contrib/btree_gist/btree_common.c')
-rw-r--r-- | contrib/btree_gist/btree_common.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/contrib/btree_gist/btree_common.c b/contrib/btree_gist/btree_common.c index 9306076e0ae..b2353bf57be 100644 --- a/contrib/btree_gist/btree_common.c +++ b/contrib/btree_gist/btree_common.c @@ -22,14 +22,14 @@ btree_decompress(PG_FUNCTION_ARGS) ** The GiST PickSplit method */ extern GIST_SPLITVEC * -btree_picksplit(bytea *entryvec, GIST_SPLITVEC *v, BINARY_UNION bu, CMPFUNC cmp) +btree_picksplit(GistEntryVector *entryvec, GIST_SPLITVEC *v, BINARY_UNION bu, CMPFUNC cmp) { OffsetNumber i; RIX *array; OffsetNumber maxoff; int nbytes; - maxoff = ((VARSIZE(entryvec) - VARHDRSZ) / sizeof(GISTENTRY)) - 1; + maxoff = entryvec->n - 1; nbytes = (maxoff + 2) * sizeof(OffsetNumber); v->spl_left = (OffsetNumber *) palloc(nbytes); v->spl_right = (OffsetNumber *) palloc(nbytes); @@ -43,7 +43,7 @@ btree_picksplit(bytea *entryvec, GIST_SPLITVEC *v, BINARY_UNION bu, CMPFUNC cmp) for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i)) { array[i].index = i; - array[i].r = (char *) DatumGetPointer((((GISTENTRY *) (VARDATA(entryvec)))[i].key)); + array[i].r = (char *) DatumGetPointer((entryvec->vector[i].key)); } qsort((void *) &array[FirstOffsetNumber], maxoff - FirstOffsetNumber + 1, sizeof(RIX), cmp); |