Hello,
I've run into a very odd issue calling C++ code that uses exceptions from within our PostgreSQL FDW. Specifically, we
havebroken our FDW into two components, a C layer that looks quite similar to the FDW for text files and a C++ layer
thatis called into by the C layer to interface with our storage file format.
We compile these two components into separate shared libraries, thus we have:
c-fdw.so
c++-fdw.so
and the c-fdw.so is compiled using -Wl,-rpath to allow it to find the c++-fdw.so at load time.
When there are no errors everything works flawlessly, however, we noticed that even throwing an exception in the C++
layerwas causing an immediate segmentation fault. Even when encapsulated in a try { } catch(...) { } block.
If anyone has seen anything like this, any pointers or suggestions would be much appreciated. I have followed all of
therecommendations in the PostgreSQL documentation, with no luck. I am not overloading the _init() functions in either
sharedlibrary (another potential source of errors I have read about).
Thanks!
Craig Soules