mirror of
https://github.com/postgres/postgres.git
synced 2025-11-13 16:22:44 +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:
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.2 1998/01/06 18:52:03 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.3 1998/01/15 19:42:26 pgsql Exp $
|
||||
*
|
||||
* NOTES
|
||||
* See acl.h.
|
||||
@@ -122,7 +122,8 @@ ChangeAcl(char *relname,
|
||||
if (!RelationIsValid(relation))
|
||||
elog(ERROR, "ChangeAcl: could not open '%s'??",
|
||||
RelationRelationName);
|
||||
fmgr_info(NameEqualRegProcedure, &relkey[0].sk_func, &relkey[0].sk_nargs);
|
||||
fmgr_info(NameEqualRegProcedure, &relkey[0].sk_func);
|
||||
relkey[0].sk_nargs = relkey[0].sk_func.fn_nargs;
|
||||
relkey[0].sk_argument = NameGetDatum(relname);
|
||||
hsdp = heap_beginscan(relation,
|
||||
0,
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.34 1998/01/13 04:03:45 scrappy Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.35 1998/01/15 19:42:27 pgsql Exp $
|
||||
*
|
||||
*
|
||||
* INTERFACE ROUTINES
|
||||
@@ -1373,8 +1373,8 @@ UpdateStats(Oid relid, long reltuples, bool hasindex)
|
||||
char nulls[Natts_pg_class];
|
||||
char replace[Natts_pg_class];
|
||||
|
||||
fmgr_info(ObjectIdEqualRegProcedure, (func_ptr *) &key[0].sk_func,
|
||||
&key[0].sk_nargs);
|
||||
fmgr_info(ObjectIdEqualRegProcedure, &key[0].sk_func);
|
||||
key[0].sk_nargs = key[0].sk_func.fn_nargs;
|
||||
|
||||
/* ----------------
|
||||
* This routine handles updates for both the heap and index relation
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.19 1998/01/06 19:42:31 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.20 1998/01/15 19:42:30 pgsql Exp $
|
||||
*
|
||||
* NOTES
|
||||
* these routines moved here from commands/define.c and somewhat cleaned up.
|
||||
@@ -97,12 +97,12 @@ OperatorGetWithOpenRelation(Relation pg_operator_desc,
|
||||
{0, Anum_pg_operator_oprright, ObjectIdEqualRegProcedure},
|
||||
};
|
||||
|
||||
fmgr_info(NameEqualRegProcedure,
|
||||
&opKey[0].sk_func, &opKey[0].sk_nargs);
|
||||
fmgr_info(ObjectIdEqualRegProcedure,
|
||||
&opKey[1].sk_func, &opKey[1].sk_nargs);
|
||||
fmgr_info(ObjectIdEqualRegProcedure,
|
||||
&opKey[2].sk_func, &opKey[2].sk_nargs);
|
||||
fmgr_info(NameEqualRegProcedure, &opKey[0].sk_func);
|
||||
fmgr_info(ObjectIdEqualRegProcedure, &opKey[1].sk_func);
|
||||
fmgr_info(ObjectIdEqualRegProcedure, &opKey[2].sk_func);
|
||||
opKey[0].sk_nargs = opKey[0].sk_func.fn_nargs;
|
||||
opKey[1].sk_nargs = opKey[1].sk_func.fn_nargs;
|
||||
opKey[2].sk_nargs = opKey[2].sk_func.fn_nargs;
|
||||
|
||||
/* ----------------
|
||||
* form scan key
|
||||
@@ -482,12 +482,12 @@ OperatorDef(char *operatorName,
|
||||
{0, Anum_pg_operator_oprright, ObjectIdEqualRegProcedure},
|
||||
};
|
||||
|
||||
fmgr_info(NameEqualRegProcedure,
|
||||
&opKey[0].sk_func, &opKey[0].sk_nargs);
|
||||
fmgr_info(ObjectIdEqualRegProcedure,
|
||||
&opKey[1].sk_func, &opKey[1].sk_nargs);
|
||||
fmgr_info(ObjectIdEqualRegProcedure,
|
||||
&opKey[2].sk_func, &opKey[2].sk_nargs);
|
||||
fmgr_info(NameEqualRegProcedure, &opKey[0].sk_func);
|
||||
fmgr_info(ObjectIdEqualRegProcedure, &opKey[1].sk_func);
|
||||
fmgr_info(ObjectIdEqualRegProcedure, &opKey[2].sk_func);
|
||||
opKey[0].sk_nargs = opKey[0].sk_func.fn_nargs;
|
||||
opKey[1].sk_nargs = opKey[1].sk_func.fn_nargs;
|
||||
opKey[2].sk_nargs = opKey[2].sk_func.fn_nargs;
|
||||
|
||||
operatorObjectId = OperatorGet(operatorName,
|
||||
leftTypeName,
|
||||
@@ -781,8 +781,8 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId)
|
||||
{0, ObjectIdAttributeNumber, ObjectIdEqualRegProcedure},
|
||||
};
|
||||
|
||||
fmgr_info(ObjectIdEqualRegProcedure,
|
||||
&opKey[0].sk_func, &opKey[0].sk_nargs);
|
||||
fmgr_info(ObjectIdEqualRegProcedure, &opKey[0].sk_func);
|
||||
opKey[0].sk_nargs = opKey[0].sk_func.fn_nargs;
|
||||
|
||||
for (i = 0; i < Natts_pg_operator; ++i)
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.17 1998/01/06 19:42:33 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.18 1998/01/15 19:42:30 pgsql Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -62,8 +62,8 @@ TypeGetWithOpenRelation(Relation pg_type_desc,
|
||||
* initialize the scan key and begin a scan of pg_type
|
||||
* ----------------
|
||||
*/
|
||||
fmgr_info(NameEqualRegProcedure,
|
||||
&typeKey[0].sk_func, &typeKey[0].sk_nargs);
|
||||
fmgr_info(NameEqualRegProcedure, &typeKey[0].sk_func);
|
||||
typeKey[0].sk_nargs = typeKey[0].sk_func.fn_nargs;
|
||||
typeKey[0].sk_argument = PointerGetDatum(typeName);
|
||||
|
||||
scan = heap_beginscan(pg_type_desc,
|
||||
@@ -324,8 +324,8 @@ TypeCreate(char *typeName,
|
||||
{0, Anum_pg_type_typname, NameEqualRegProcedure}
|
||||
};
|
||||
|
||||
fmgr_info(NameEqualRegProcedure,
|
||||
&typeKey[0].sk_func, &typeKey[0].sk_nargs);
|
||||
fmgr_info(NameEqualRegProcedure, &typeKey[0].sk_func);
|
||||
typeKey[0].sk_nargs = typeKey[0].sk_func.fn_nargs;
|
||||
|
||||
/* ----------------
|
||||
* check that the type is not already defined.
|
||||
|
||||
Reference in New Issue
Block a user