diff options
Diffstat (limited to 'src/backend/utils/cache')
-rw-r--r-- | src/backend/utils/cache/catcache.c | 6 | ||||
-rw-r--r-- | src/backend/utils/cache/fcache.c | 13 | ||||
-rw-r--r-- | src/backend/utils/cache/relcache.c | 5 |
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; /* |