Pei He 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

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 2 of 2 | next ›
Discussion Overview
grouppgsql-hackers @
categoriespostgresql
postedApr 2, '10 at 2:03a
activeApr 2, '10 at 5:47a
posts2
users2
websitepostgresql.org...
irc#postgresql

2 users in discussion

Takahiro Itagaki: 1 post Pei He: 1 post

People

Translate

site design / logo © 2023 Grokbase