6
6
*
7
7
*
8
8
* IDENTIFICATION
9
- * $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.54 2000/05/3000:49:39 momjian Exp $
9
+ * $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.55 2000/05/3004:24:28 tgl Exp $
10
10
*
11
11
*-------------------------------------------------------------------------
12
12
*/
@@ -551,10 +551,16 @@ gistAdjustKeys(Relation r,
551
551
ev1p = & ((GISTENTRY * )VARDATA (evec ))[1 ];
552
552
553
553
/* form union of decompressed entries */
554
- datum = (* fmgr_faddr (& giststate -> unionFn )) (evec ,& datumsize );
554
+ datum = (char * )
555
+ DatumGetPointer (FunctionCall2 (& giststate -> unionFn ,
556
+ PointerGetDatum (evec ),
557
+ PointerGetDatum (& datumsize )));
555
558
556
559
/* did union leave decompressed version of oldud unchanged? */
557
- (* fmgr_faddr (& giststate -> equalFn )) (ev0p -> pred ,datum ,& result );
560
+ FunctionCall3 (& giststate -> equalFn ,
561
+ PointerGetDatum (ev0p -> pred ),
562
+ PointerGetDatum (datum ),
563
+ PointerGetDatum (& result ));
558
564
if (!result )
559
565
{
560
566
TupleDesc td = RelationGetDescr (r );
@@ -727,7 +733,9 @@ gistSplit(Relation r,
727
733
VARSIZE (entryvec )= (maxoff + 2 )* sizeof (GISTENTRY )+ VARHDRSZ ;
728
734
729
735
/* now let the user-defined picksplit function set up the split vector */
730
- (* fmgr_faddr (& giststate -> picksplitFn )) (entryvec ,& v );
736
+ FunctionCall2 (& giststate -> picksplitFn ,
737
+ PointerGetDatum (entryvec ),
738
+ PointerGetDatum (& v ));
731
739
732
740
/* compress ldatum and rdatum */
733
741
gistcentryinit (giststate ,& tmpentry ,v .spl_ldatum , (Relation )NULL ,
@@ -1054,7 +1062,10 @@ gistchoose(Relation r, Page p, IndexTuple it,/* it has compressed entry */
1054
1062
size = IndexTupleSize (datum )- sizeof (IndexTupleData );
1055
1063
datum += sizeof (IndexTupleData );
1056
1064
gistdentryinit (giststate ,& entry ,datum ,r ,p ,i ,size , FALSE);
1057
- (* fmgr_faddr (& giststate -> penaltyFn )) (& entry ,& identry ,& usize );
1065
+ FunctionCall3 (& giststate -> penaltyFn ,
1066
+ PointerGetDatum (& entry ),
1067
+ PointerGetDatum (& identry ),
1068
+ PointerGetDatum (& usize ));
1058
1069
if (which_grow < 0 || usize < which_grow )
1059
1070
{
1060
1071
which = i ;
@@ -1237,7 +1248,9 @@ gistdentryinit(GISTSTATE *giststate, GISTENTRY *e, char *pr, Relation r,
1237
1248
gistentryinit (* e ,pr ,r ,pg ,o ,b ,l );
1238
1249
if (giststate -> haskeytype )
1239
1250
{
1240
- dep = (GISTENTRY * ) ((* fmgr_faddr (& giststate -> decompressFn )) (e ));
1251
+ dep = (GISTENTRY * )
1252
+ DatumGetPointer (FunctionCall1 (& giststate -> decompressFn ,
1253
+ PointerGetDatum (e )));
1241
1254
gistentryinit (* e ,dep -> pred ,dep -> rel ,dep -> page ,dep -> offset ,dep -> bytes ,
1242
1255
dep -> leafkey );
1243
1256
if (dep != e )
@@ -1258,7 +1271,9 @@ gistcentryinit(GISTSTATE *giststate, GISTENTRY *e, char *pr, Relation r,
1258
1271
gistentryinit (* e ,pr ,r ,pg ,o ,b ,l );
1259
1272
if (giststate -> haskeytype )
1260
1273
{
1261
- cep = (GISTENTRY * ) ((* fmgr_faddr (& giststate -> compressFn )) (e ));
1274
+ cep = (GISTENTRY * )
1275
+ DatumGetPointer (FunctionCall1 (& giststate -> compressFn ,
1276
+ PointerGetDatum (e )));
1262
1277
gistentryinit (* e ,cep -> pred ,cep -> rel ,cep -> page ,cep -> offset ,cep -> bytes ,
1263
1278
cep -> leafkey );
1264
1279
if (cep != e )