aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-08-24 23:34:11 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-08-24 23:34:11 +0000
commit481487b9647c02b83a7701a0b513e9437c380ccd (patch)
treef3ab3d5858926e19bc2889a8ef730e28e511866a /src
parentd9eb7d8fa1b841da4799b907ac2d97f8bcf5cf87 (diff)
downloadpostgresql-481487b9647c02b83a7701a0b513e9437c380ccd.tar.gz
postgresql-481487b9647c02b83a7701a0b513e9437c380ccd.zip
GetAttributeByName and GetAttributeByNum should be declared to return
Datum, not char*, for portability's sake.
Diffstat (limited to 'src')
-rw-r--r--src/backend/executor/execQual.c25
-rw-r--r--src/include/executor/executor.h8
-rw-r--r--src/test/regress/regress.c6
3 files changed, 18 insertions, 21 deletions
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c
index 3929c8782a9..622ea2ef82c 100644
--- a/src/backend/executor/execQual.c
+++ b/src/backend/executor/execQual.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.79 2000/08/24 03:29:03 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.80 2000/08/24 23:34:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -502,13 +502,8 @@ ExecEvalParam(Param *expression, ExprContext *econtext, bool *isNull)
* named attribute out of the tuple from the arg slot. User defined
* C functions which take a tuple as an argument are expected
* to use this. Ex: overpaid(EMP) might call GetAttributeByNum().
- *
- * XXX these two functions are misdeclared: they should be declared to
- * return Datum. They are not used anywhere in the backend proper, and
- * exist only for use by user-defined functions. Should we change their
- * definitions, at risk of breaking user code?
*/
-char *
+Datum
GetAttributeByNum(TupleTableSlot *slot,
AttrNumber attrno,
bool *isNull)
@@ -527,7 +522,7 @@ GetAttributeByNum(TupleTableSlot *slot,
if (TupIsNull(slot))
{
*isNull = true;
- return (char *) NULL;
+ return (Datum) 0;
}
retval = heap_getattr(slot->val,
@@ -535,11 +530,12 @@ GetAttributeByNum(TupleTableSlot *slot,
slot->ttc_tupleDescriptor,
isNull);
if (*isNull)
- return (char *) NULL;
- return (char *) retval;
+ return (Datum) 0;
+
+ return retval;
}
-char *
+Datum
GetAttributeByName(TupleTableSlot *slot, char *attname, bool *isNull)
{
AttrNumber attrno;
@@ -557,7 +553,7 @@ GetAttributeByName(TupleTableSlot *slot, char *attname, bool *isNull)
if (TupIsNull(slot))
{
*isNull = true;
- return (char *) NULL;
+ return (Datum) 0;
}
tupdesc = slot->ttc_tupleDescriptor;
@@ -581,8 +577,9 @@ GetAttributeByName(TupleTableSlot *slot, char *attname, bool *isNull)
tupdesc,
isNull);
if (*isNull)
- return (char *) NULL;
- return (char *) retval;
+ return (Datum) 0;
+
+ return retval;
}
/*
diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h
index e39a60a6a24..5eb7cbb93ba 100644
--- a/src/include/executor/executor.h
+++ b/src/include/executor/executor.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: executor.h,v 1.49 2000/08/24 03:29:10 tgl Exp $
+ * $Id: executor.h,v 1.50 2000/08/24 23:34:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -74,9 +74,9 @@ extern void ExecEndNode(Plan *node, Plan *parent);
*/
extern Datum ExecEvalParam(Param *expression, ExprContext *econtext,
bool *isNull);
-extern char *GetAttributeByNum(TupleTableSlot *slot, AttrNumber attrno,
- bool *isNull);
-extern char *GetAttributeByName(TupleTableSlot *slot, char *attname,
+extern Datum GetAttributeByNum(TupleTableSlot *slot, AttrNumber attrno,
+ bool *isNull);
+extern Datum GetAttributeByName(TupleTableSlot *slot, char *attname,
bool *isNull);
extern Datum ExecMakeFunctionResult(FunctionCachePtr fcache,
List *arguments,
diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c
index e5fbf962a4f..479527fc3fc 100644
--- a/src/test/regress/regress.c
+++ b/src/test/regress/regress.c
@@ -1,5 +1,5 @@
/*
- * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.43 2000/07/30 20:43:54 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.44 2000/08/24 23:34:11 tgl Exp $
*/
#include <float.h> /* faked on sunos */
@@ -187,9 +187,9 @@ overpaid(PG_FUNCTION_ARGS)
{
TUPLE tuple = (TUPLE) PG_GETARG_POINTER(0);
bool isnull;
- long salary;
+ int32 salary;
- salary = (long) GetAttributeByName(tuple, "salary", &isnull);
+ salary = DatumGetInt32(GetAttributeByName(tuple, "salary", &isnull));
if (isnull)
PG_RETURN_NULL();
PG_RETURN_BOOL(salary > 699);