Re: Problem of Magic Block in Postgres 8.2
| От | Takahiro Itagaki |
|---|---|
| Тема | Re: Problem of Magic Block in Postgres 8.2 |
| Дата | |
| Msg-id | 20100402144730.9760.52131E4D@oss.ntt.co.jp обсуждение исходный текст |
| Ответ на | Problem of Magic Block in Postgres 8.2 (Pei He <hepeimail@gmail.com>) |
| Список | pgsql-hackers |
Pei He <hepeimail@gmail.com> wrote:
> The extension functions was developed by C++ mixed with C.
> ERROR: incompatible library
> "/home/hepei/bin/Chameleon/lib/libspgist_trie.so": missing magic block
> HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro.
You can use extern "C" blocks for PG_MODULE_MAGIC, PG_FUNCTION_INFO_V1,
and function declarations:
extern "C" { #include "postgres.h" #include "fmgr.h"
PG_MODULE_MAGIC;
PG_FUNCTION_INFO_V1(your_function); extern Datum your_function(PG_FUNCTION_ARGS); }
However, you should very carefully use C++ exceptions and destructors
in your module because PostgreSQL uses siglongjmp; C++ unwind semantics
don't work on postgres' errors. You cannot use those C++ features and
postgres' APIs together.
Regards,
---
Takahiro Itagaki
NTT Open Source Software Center
В списке pgsql-hackers по дате отправления: