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:
parent
1f0aff03c0
commit
0460f0502b
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
*
|
*
|
||||||
|
|
|
@ -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,...)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue