diff options
Diffstat (limited to 'src/backend/executor')
-rw-r--r-- | src/backend/executor/nodeAgg.c | 14 | ||||
-rw-r--r-- | src/backend/executor/nodeGroup.c | 8 | ||||
-rw-r--r-- | src/backend/executor/spi.c | 8 |
3 files changed, 14 insertions, 16 deletions
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index 61bfb3c6d31..1999acedc12 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -32,7 +32,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.65 2000/05/30 00:49:44 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.66 2000/05/30 04:24:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -327,12 +327,10 @@ finalize_aggregate(AggStatePerAgg peraggstate, continue; if (haveOldVal) { - Datum equal; - - equal = (Datum) (*fmgr_faddr(&peraggstate->equalfn)) (oldVal, - newVal); - if (DatumGetInt32(equal) != 0) + if (DatumGetBool(FunctionCall2(&peraggstate->equalfn, + oldVal, newVal))) { + /* equal to prior, so forget this one */ if (!peraggstate->inputtypeByVal) pfree(DatumGetPointer(newVal)); continue; @@ -780,13 +778,13 @@ ExecInitAgg(Agg *node, EState *estate, Plan *parent) typeidTypeName(aggref->basetype)); aggform = (Form_pg_aggregate) GETSTRUCT(aggTuple); - peraggstate->initValue1 = (Datum) + peraggstate->initValue1 = AggNameGetInitVal(aggname, aggform->aggbasetype, 1, &peraggstate->initValue1IsNull); - peraggstate->initValue2 = (Datum) + peraggstate->initValue2 = AggNameGetInitVal(aggname, aggform->aggbasetype, 2, diff --git a/src/backend/executor/nodeGroup.c b/src/backend/executor/nodeGroup.c index eead721dacb..d1ae02616c1 100644 --- a/src/backend/executor/nodeGroup.c +++ b/src/backend/executor/nodeGroup.c @@ -15,7 +15,7 @@ * locate group boundaries. * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.35 2000/05/30 00:49:44 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.36 2000/05/30 04:24:45 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -430,7 +430,6 @@ execTuplesMatch(HeapTuple tuple1, attr2; bool isNull1, isNull2; - Datum equal; attr1 = heap_getattr(tuple1, att, @@ -450,9 +449,8 @@ execTuplesMatch(HeapTuple tuple1, /* Apply the type-specific equality function */ - equal = (Datum) (*fmgr_faddr(&eqfunctions[i])) (attr1, attr2); - - if (DatumGetInt32(equal) == 0) + if (! DatumGetBool(FunctionCall2(&eqfunctions[i], + attr1, attr2))) return FALSE; } diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 016d15ae8ac..ac86695ee1b 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -3,7 +3,7 @@ * spi.c * Server Programming Interface * - * $Id: spi.c,v 1.45 2000/04/04 21:44:39 tgl Exp $ + * $Id: spi.c,v 1.46 2000/05/30 04:24:45 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -415,8 +415,10 @@ SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber) return NULL; } - return (fmgr(foutoid, val, typelem, - tupdesc->attrs[fnumber - 1]->atttypmod)); + return DatumGetCString(OidFunctionCall3(foutoid, + val, + ObjectIdGetDatum(typelem), + Int32GetDatum(tupdesc->attrs[fnumber - 1]->atttypmod))); } Datum |