mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Thank god for searchable mail archives.
Patch by: wieck@sapserv.debis.de (Jan Wieck) One of the design rules of PostgreSQL is extensibility. And to follow this rule means (at least for me) that there should not only be a builtin PL. Instead I would prefer a defined interface for PL implemetations.
This commit is contained in:
6
src/backend/utils/cache/catcache.c
vendored
6
src/backend/utils/cache/catcache.c
vendored
@ -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,
|
||||
|
13
src/backend/utils/cache/fcache.c
vendored
13
src/backend/utils/cache/fcache.c
vendored
@ -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);
|
||||
|
5
src/backend/utils/cache/relcache.c
vendored
5
src/backend/utils/cache/relcache.c
vendored
@ -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;
|
||||
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user