Обсуждение: calling C++ functions from PostgreSQL

Поиск
Список
Период
Сортировка

calling C++ functions from PostgreSQL

От
John Gunther
Дата:
The PostgreSQL Programmer's Guide, Section 9.5, says "User-defined
functions can be written in C (or a language that can be made compatible
with C, such as C++)". Can someone point me to some examples or docs on
how to make C++ compatible with C? Despite searching, I'm unable to find
anything comprehensive that discusses calling C++ functions from C programs.

Specifically, our C language pg functions depend heavily on a second C
library (also used by other C applications) for functionality that isn't
specific to pg (such as complex string manipulation). I'd like to
migrate that generic C library to C++, but that requires calling the C++
routines, directly or through intermediate C functions, from pg.


Re: calling C++ functions from PostgreSQL

От
Antti Haapala
Дата:
On Mon, 7 Apr 2003, John Gunther wrote:

> The PostgreSQL Programmer's Guide, Section 9.5, says "User-defined
> functions can be written in C (or a language that can be made compatible
> with C, such as C++)". Can someone point me to some examples or docs on
> how to make C++ compatible with C? Despite searching, I'm unable to find
> anything comprehensive that discusses calling C++ functions from C
> programs.

Didn't find any good tuts about this... so here goes:

You can't call functions with C++ linkage from C programs. The keyword you
are missing is extern "C", which causes C programs to be compiled with C
linkage.

You can prefix prototypes and/or actual function definitions in C++
program with extern "C", or you can surround many of them in a block
(extern "C" { ... }).

Remember, that you probably can't use C++ library functions/classes etc in
PostgreSQL though.

--
Antti Haapala
+358 50 369 3535