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
This commit is contained in:
Bruce Momjian 2000-05-22 02:34:23 +00:00
parent 1f0aff03c0
commit 0460f0502b
4 changed files with 12 additions and 11 deletions

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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 * NOTES
* some of the executor utility code such as "ExecTypeFromTL" should be * some of the executor utility code such as "ExecTypeFromTL" should be
@ -304,7 +304,7 @@ bool
TupleDescInitEntry(TupleDesc desc, TupleDescInitEntry(TupleDesc desc,
AttrNumber attributeNumber, AttrNumber attributeNumber,
char *attributeName, char *attributeName,
Oid typeid, Oid oidtypeid,
int32 typmod, int32 typmod,
int attdim, int attdim,
bool attisset) bool attisset)
@ -378,7 +378,7 @@ TupleDescInitEntry(TupleDesc desc,
* ---------------- * ----------------
*/ */
tuple = SearchSysCacheTuple(TYPEOID, tuple = SearchSysCacheTuple(TYPEOID,
ObjectIdGetDatum(typeid), ObjectIdGetDatum(oidtypeid),
0, 0, 0); 0, 0, 0);
if (!HeapTupleIsValid(tuple)) if (!HeapTupleIsValid(tuple))
{ {
@ -431,7 +431,7 @@ TupleDescInitEntry(TupleDesc desc,
*/ */
if (attisset) if (attisset)
{ {
Type t = typeidType(OIDOID); Type t = oidtypeidType(OIDOID);
att->attlen = typeLen(t); att->attlen = typeLen(t);
att->attbyval = typeByVal(t); att->attbyval = typeByVal(t);

View File

@ -8,7 +8,7 @@
# #
# #
# IDENTIFICATION # 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 # NOTES
# Passes any -D options on to cpp prior to generating the list # 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 * 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 * NOTES
* ****************************** * ******************************
@ -136,7 +136,7 @@ extern void load_file(char *filename);
*/ */
/* We don't make this static so fmgr_faddr() macros can access it */ /* 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) \ #define fmgr_faddr(finfo) \
( \ ( \
@ -197,7 +197,7 @@ cat > $TABCFILE <<FuNkYfMgRtAbStUfF
* *
* *
* IDENTIFICATION * 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 * NOTES
* *

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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 * XXX: use of global fmgr_pl_finfo variable is really ugly. FIXME
*/ */
FmgrInfo *fmgr_pl_finfo;
static char * static char *
fmgr_pl(char *arg0,...) fmgr_pl(char *arg0,...)

View File

@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California * 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, extern bool TupleDescInitEntry(TupleDesc desc,
AttrNumber attributeNumber, AttrNumber attributeNumber,
char *attributeName, char *attributeName,
Oid typeid, Oid oidtypeid,
int32 typmod, int32 typmod,
int attdim, int attdim,
bool attisset); bool attisset);