From 0460f0502b8bd0cf19ebe1fd3bb75a9704be9857 Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Mon, 22 May 2000 02:34:23 +0000 Subject: [PATCH] I am attempting to integrate postgres (v 7.0) with an open source project I am working on (Recall - a distributed, fault-tolerant, replicated, storage framework @ http://www.fault-tolerant.org). Recall is written in C++. I need to include the postgres headers and there are some problems when including the headers w/C++. Attached is a patch generated from postgres/src that fixes my problems. I was hoping to get this into the main source. It's very small (2k) and 3 files are changed: backend/utils/fmgr/fmgr.c, backend/utils/Gen_fmgrtab.sh.in, and include/access/tupdesc.h. In C++, you get a multiply defined symbol because the variable (FmgrInfo *fmgr_pl_finfo) is defined in the header (the patch moves it to the .c file). The other problem in tupdesc.h is the use of typeid is a problem in c++ (I renamed it to oidtypeid). Thanks, Neal Norwitz --- src/backend/access/common/tupdesc.c | 8 ++++---- src/backend/utils/Gen_fmgrtab.sh.in | 8 ++++---- src/backend/utils/fmgr/fmgr.c | 3 ++- src/include/access/tupdesc.h | 4 ++-- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c index 1e8d2ae0034..f0301c4d6c3 100644 --- a/src/backend/access/common/tupdesc.c +++ b/src/backend/access/common/tupdesc.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.62 2000/04/12 17:14:37 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.63 2000/05/22 02:34:20 momjian Exp $ * * NOTES * some of the executor utility code such as "ExecTypeFromTL" should be @@ -304,7 +304,7 @@ bool TupleDescInitEntry(TupleDesc desc, AttrNumber attributeNumber, char *attributeName, - Oid typeid, + Oid oidtypeid, int32 typmod, int attdim, bool attisset) @@ -378,7 +378,7 @@ TupleDescInitEntry(TupleDesc desc, * ---------------- */ tuple = SearchSysCacheTuple(TYPEOID, - ObjectIdGetDatum(typeid), + ObjectIdGetDatum(oidtypeid), 0, 0, 0); if (!HeapTupleIsValid(tuple)) { @@ -431,7 +431,7 @@ TupleDescInitEntry(TupleDesc desc, */ if (attisset) { - Type t = typeidType(OIDOID); + Type t = oidtypeidType(OIDOID); att->attlen = typeLen(t); att->attbyval = typeByVal(t); diff --git a/src/backend/utils/Gen_fmgrtab.sh.in b/src/backend/utils/Gen_fmgrtab.sh.in index 1f2e7f82ed8..975e2a0f9a2 100644 --- a/src/backend/utils/Gen_fmgrtab.sh.in +++ b/src/backend/utils/Gen_fmgrtab.sh.in @@ -8,7 +8,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.20 2000/05/16 02:14:14 tgl Exp $ +# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.21 2000/05/22 02:34:21 momjian Exp $ # # NOTES # Passes any -D options on to cpp prior to generating the list @@ -83,7 +83,7 @@ cat > $HFILE <<FuNkYfMgRsTuFf * * Copyright (c) 1994, Regents of the University of California * - * $Id: Gen_fmgrtab.sh.in,v 1.20 2000/05/16 02:14:14 tgl Exp $ + * $Id: Gen_fmgrtab.sh.in,v 1.21 2000/05/22 02:34:21 momjian Exp $ * * NOTES * ****************************** @@ -136,7 +136,7 @@ extern void load_file(char *filename); */ /* We don't make this static so fmgr_faddr() macros can access it */ -FmgrInfo *fmgr_pl_finfo; +extern FmgrInfo *fmgr_pl_finfo; #define fmgr_faddr(finfo) \ ( \ @@ -197,7 +197,7 @@ cat > $TABCFILE <<FuNkYfMgRtAbStUfF * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.20 2000/05/16 02:14:14 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.21 2000/05/22 02:34:21 momjian Exp $ * * NOTES * diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c index 18dbb84345c..bdac32a2551 100644 --- a/src/backend/utils/fmgr/fmgr.c +++ b/src/backend/utils/fmgr/fmgr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.38 2000/05/16 20:48:50 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.39 2000/05/22 02:34:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -28,6 +28,7 @@ * * XXX: use of global fmgr_pl_finfo variable is really ugly. FIXME */ +FmgrInfo *fmgr_pl_finfo; static char * fmgr_pl(char *arg0,...) diff --git a/src/include/access/tupdesc.h b/src/include/access/tupdesc.h index dbdc27931a5..662842cf45d 100644 --- a/src/include/access/tupdesc.h +++ b/src/include/access/tupdesc.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: tupdesc.h,v 1.28 2000/04/12 17:16:26 momjian Exp $ + * $Id: tupdesc.h,v 1.29 2000/05/22 02:34:23 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -68,7 +68,7 @@ extern bool equalTupleDescs(TupleDesc tupdesc1, TupleDesc tupdesc2); extern bool TupleDescInitEntry(TupleDesc desc, AttrNumber attributeNumber, char *attributeName, - Oid typeid, + Oid oidtypeid, int32 typmod, int attdim, bool attisset); -- GitLab