aboutsummaryrefslogtreecommitdiff
path: root/src/include/utils/fcache.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-05-28 17:56:29 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-05-28 17:56:29 +0000
commit0a7fb4e9184539afcb6fed0f1d2bc0abddc2b0a6 (patch)
treeaffcce1c5b6367468fb6dcfd2790585f2e967629 /src/include/utils/fcache.h
parent5005bb060b3f3a82cd1bd662c7f8946c9be59db5 (diff)
downloadpostgresql-0a7fb4e9184539afcb6fed0f1d2bc0abddc2b0a6.tar.gz
postgresql-0a7fb4e9184539afcb6fed0f1d2bc0abddc2b0a6.zip
First round of changes for new fmgr interface. fmgr itself and the
key call sites are changed, but most called functions are still oldstyle. An exception is that the PL managers are updated (so, for example, NULL handling now behaves as expected in plperl and plpgsql functions). NOTE initdb is forced due to added column in pg_proc.
Diffstat (limited to 'src/include/utils/fcache.h')
-rw-r--r--src/include/utils/fcache.h33
1 files changed, 14 insertions, 19 deletions
diff --git a/src/include/utils/fcache.h b/src/include/utils/fcache.h
index 24e6db1f0c8..db3a05baf4b 100644
--- a/src/include/utils/fcache.h
+++ b/src/include/utils/fcache.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: fcache.h,v 1.10 2000/01/26 05:58:38 momjian Exp $
+ * $Id: fcache.h,v 1.11 2000/05/28 17:56:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,22 +19,11 @@
typedef struct
{
- int typlen; /* length of the return type */
- int typbyval; /* true if return type is pass by value */
- FmgrInfo func; /* address of function to call (for c
- * funcs) */
+ FmgrInfo func; /* info for fmgr call mechanism */
Oid foid; /* oid of the function in pg_proc */
Oid language; /* oid of the language in pg_language */
- int nargs; /* number of arguments */
-
- /* Might want to make these two arrays of size MAXFUNCARGS */
-
- Oid *argOidVect; /* oids of all the arguments */
- bool *nullVect; /* keep track of null arguments */
-
- char *src; /* source code of the function */
- char *bin; /* binary object code ?? */
- char *func_state; /* fuction_state struct for execution */
+ int typlen; /* length of the return type */
+ bool typbyval; /* true if return type is pass by value */
bool oneResult; /* true we only want 1 result from the
* function */
@@ -42,17 +31,23 @@ typedef struct
* expr whose argument is func returning a
* set ugh! */
+ int nargs; /* actual number of arguments */
+ Oid *argOidVect; /* oids of all the argument types */
+
+ char *src; /* source code of the function */
+ char *bin; /* binary object code ?? */
+ char *func_state; /* function_state struct for execution */
+
Pointer funcSlot; /* if one result we need to copy it before
* we end execution of the function and
* free stuff */
- char *setArg; /* current argument for nested dot
+ Datum setArg; /* current argument for nested dot
* execution Nested dot expressions mean
* we have funcs whose argument is a set
* of tuples */
+} FunctionCache;
- bool istrusted; /* trusted fn? */
-} FunctionCache,
- *FunctionCachePtr;
+typedef FunctionCache *FunctionCachePtr;
#endif /* FCACHE_H */