Re: Extending PostgreSQL in C or C++
От | Andreas Pflug |
---|---|
Тема | Re: Extending PostgreSQL in C or C++ |
Дата | |
Msg-id | 3EEF8D66.4060202@web.de обсуждение исходный текст |
Ответ на | Re: Extending PostgreSQL in C or C++ (David Blasby <dblasby@refractions.net>) |
Список | pgsql-hackers |
David Blasby wrote: > Sebastien Lemieux wrote: > >> Hi, >> >> I need to extend postgreSQL to support some specific function I >> will code in C (ideally C++ if it can work!). > > > Be very carefull with using C++ functions inside postgresql. If the > C++ code throws an exception the postgresql backend will get a SIGABRT > and terminate. > > You can solve this by linking the std c++ library to the postmaster. > We tried everything we could think of to fix this, but this was the > only solution that worked. > > For a complete discussion, you can read the PostGIS (GIS spatial > objects for Postgresql) mailing list (http://postgis.refractions.net) > and the GEOS (Geometry Engine, Open Source) mailing list > (http://geos.refractions.net). > If you try C++, you will find some nasty name/reserved words collisions, but it will work: #define using __using #define typeid __typeid #define typename __typename #define namespace __namespace #define delete __delete extern "C" { #include "postgres.h" #include "executor/spi.h" #include "funcapi.h" } #undef using #undef typeid #undef typename #undef namespace #undef delete Fortunately, my code didn't use exceptions... Regards, Andreas
В списке pgsql-hackers по дате отправления: