pgsql function using C++?, or at least C interfacing with C++ lib?
Hello,
I've got a C++ library I need to use, and I want to use it from a pgsql
function.
Would anyone happen to have any examples of how to accomplish something
like this?
I see examples of C-based functions for pgsql (like dbsize, etc, in
contrib).
Which way should I go about this?
1) C based function, calling a C++ library (is this possible?)
2) C++ based function, calling a C++ library (I read in the pgsql docs
that compiling C++ code for use with pgsql is either partially
incompatible, or just a bad idea?)
Also note that I would like to pass the function the following arguments:
int4, _varchar (array of varchars)
Any help would be appreciated, I'm not incredibly experienced in these
matters.
Thanks,
Eric
-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Eric Parusel
Sent: Saturday, October 16, 2004 4:12 PM
To: pgsql-general@postgresql.org
Subject: [GENERAL] pgsql function using C++?, or at least C
interfacing with C++ lib?Hello,
I've got a C++ library I need to use, and I want to use
it from a pgsql
function.
Would anyone happen to have any examples of how to accomplish
something
like this?
I see examples of C-based functions for pgsql (like dbsize, etc, in
contrib).Which way should I go about this?
1) C based function, calling a C++ library (is this possible?)
If you want to do this, publish an interface in your C++ library with
the interface functions declared as extern "C"
2) C++ based function, calling a C++ library (I read in the
pgsql docs
that compiling C++ code for use with pgsql is either partially
incompatible, or just a bad idea?)
C++ calling C++ is not portable because of name mangling. Other than
that, if you use the same compiler there is rarely any problem.
Also note that I would like to pass the function the
following arguments: int4, _varchar (array of varchars)Any help would be appreciated, I'm not incredibly experienced
in these
matters.
I would use an extern "C" interface, if I were in your shoes.
Import Notes
Resolved by subject fallback
"Dann Corbit" <DCorbit@connx.com> writes:
I've got a C++ library I need to use, and I want to use
it from a pgsql function.
If you want to do this, publish an interface in your C++ library with
the interface functions declared as extern "C"
Note that the backend does not incorporate any C++ library support,
which is rather a severe handicap. For instance it will probably
not work to use catch/throw constructs.
regards, tom lane