The global symbol deparseSelectSql and some others confict with postgres_fdw on 9.5. This results in crashes if both extensions are used in a single backend. On 9.6+ the function is made static by an unrelated change so the symbol is no longer exported and the issue goes away.
Simplest solution would be to rename the symbol so they no longer conflict. Here's the full list of conflicting symbols:
The symbols are only exported because that's the default behavior with C and shared objects. They don't need to be visible to PostgreSQL. So the simpler option would be to make the symbols hidden. I guess the best way is to make hidden the default and then explicitly mark the symbols that need to be exported.
The global symbol
deparseSelectSql
and some others confict with postgres_fdw on 9.5. This results in crashes if both extensions are used in a single backend. On 9.6+ the function is made static by an unrelated change so the symbol is no longer exported and the issue goes away.Simplest solution would be to rename the symbol so they no longer conflict. Here's the full list of conflicting symbols:
The symbols are only exported because that's the default behavior with C and shared objects. They don't need to be visible to PostgreSQL. So the simpler option would be to make the symbols hidden. I guess the best way is to make hidden the default and then explicitly mark the symbols that need to be exported.