aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/cache
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/cache')
-rw-r--r--src/backend/utils/cache/catcache.c6
-rw-r--r--src/backend/utils/cache/fcache.c13
-rw-r--r--src/backend/utils/cache/relcache.c5
3 files changed, 14 insertions, 10 deletions
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index 6c3ff360fb7..89c3446cfbc 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.20 1998/01/07 21:06:08 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.21 1998/01/15 19:45:28 pgsql Exp $
*
* Notes:
* XXX This needs to use exception.h to handle recovery when
@@ -213,8 +213,8 @@ CatalogCacheInitializeCache(struct catcache * cache,
EQPROC(tupdesc->attrs[cache->cc_key[i] - 1]->atttypid);
fmgr_info(cache->cc_skey[i].sk_procedure,
- (func_ptr *) &cache->cc_skey[i].sk_func,
- (int *) &cache->cc_skey[i].sk_nargs);
+ &cache->cc_skey[i].sk_func);
+ cache->cc_skey[i].sk_nargs = cache->cc_skey[i].sk_func.fn_nargs;
CACHE5_elog(DEBUG, "CatalogCacheInit %16s %d %d %x",
&relation->rd_rel->relname,
diff --git a/src/backend/utils/cache/fcache.c b/src/backend/utils/cache/fcache.c
index 8eb1e7e89e8..485a1d01bae 100644
--- a/src/backend/utils/cache/fcache.c
+++ b/src/backend/utils/cache/fcache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.9 1998/01/07 21:06:11 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.10 1998/01/15 19:45:29 pgsql Exp $
*
*-------------------------------------------------------------------------
*/
@@ -98,6 +98,7 @@ init_fcache(Oid foid,
* ----------------
*/
retval = (FunctionCachePtr) palloc(sizeof(FunctionCache));
+ memset(retval, 0, sizeof(FunctionCache));
if (!use_syscache)
elog(ERROR, "what the ????, init the fcache without the catalogs?");
@@ -281,10 +282,12 @@ init_fcache(Oid foid,
- if (retval->language != SQLlanguageId)
- fmgr_info(foid, &(retval->func), &(retval->nargs));
- else
- retval->func = (func_ptr) NULL;
+ if (retval->language != SQLlanguageId) {
+ fmgr_info(foid, &(retval->func));
+ retval->nargs = retval->func.fn_nargs;
+ } else {
+ retval->func.fn_addr = (func_ptr) NULL;
+ }
return (retval);
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 90bd2fbac8f..9e706e4bf3f 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.33 1998/01/14 15:48:32 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.34 1998/01/15 19:45:31 pgsql Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2014,7 +2014,8 @@ init_irels(void)
/* have to reinit the function pointers in the strategy maps */
for (i = 0; i < am->amstrategies; i++)
fmgr_info(SMD(i).sk_procedure,
- &(SMD(i).sk_func), &(SMD(i).sk_nargs));
+ &(SMD(i).sk_func));
+ SMD(i).sk_nargs = SMD(i).sk_func.fn_nargs;
/*