aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor')
-rw-r--r--src/backend/executor/nodeAgg.c14
-rw-r--r--src/backend/executor/nodeGroup.c8
-rw-r--r--src/backend/executor/spi.c8
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