c++ - 用 C++ 编写 PostgreSQL 函数

标签 c++ postgresql

我在遵循 C 指南时用 C++ 编写 postgres 函数时遇到了一些问题:C-Language Functions .我发现大多数 postgres 函数是用 C 而不是 C++ 编写的,但我必须使用用 C++ 编写的库,所以我选择了 C++。我的问题是,用C++写的时候有什么要注意的吗?使用pgxs编写makefile很常见,那么我应该如何编写makefile才能使其工作呢?谢谢。

最佳答案

如果你能避免这样做,那就去做吧。 PostgreSQL 不能与 C++ 很好地结合。这是可能的,如 PostGIS 所示,但并不过分有趣。

如果可以,请为您的 C++ 库编写或生成一个纯 C 包装器,并使用该包装器与该库进行交互。如果它大量基于模板(例如:boost)或使用其他更高级的 C++ 功能,那将不切实际,但如果它只是 C-with-objects 样式代码,则效果很好。 SWIG 可以帮助您生成包装器。

如果您更愿意避免包装方法,或者如果您的库有点过于复杂、过于依赖异常等等,那么您应该 read this PostgreSQL manual entry .

搜索 PostgreSQL 邮件列表以获取有关此主题的更多讨论。

关于c++ - 用 C++ 编写 PostgreSQL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8500954/

相关文章:

c++ 这里正确的语法是什么?

c++ - 跳过 5 到 17 项 C++ 的乘法

C++ 不可变自定义类通过引用或值传递

c++ - 表达式:双端队列迭代器不可取消引用

sql - PostgreSQL - 在多列上创建索引时 Smallint 溢出。这是一个错误吗?

SQL 数组作为准备语句的参数 - 可移植性

c++ - C++ 包装器中的 C 可变参数函数

ruby-on-rails - Rails - 选择、加入和排序

sql - 使用 PostGIS 按给定的纬度和经度查找在 2 英里半径内相交和环绕的记录?

mysql - 使用多个条件 psql 更新表