Postgres 扩展开发
我正在使用从 ubuntu 可信赖的主仓库安装的postgres-9.4的 C API。这可能是一个愚蠢的问题,但请耐心等待。
我想使用一个函数将 a 转换cstring
为Jsonb*
定义的结构
http://doxygen.postgresql.org/jsonb_8h.html
已经在
http://doxygen.postgresql.org/jsonb_8c.html
即 function
Datum jsonb_in ( PG_FUNCTION_ARGS )
,但是我不确定是否可以以可移植且安全的方式从 C API 调用此函数。乍一看,它似乎是为了被 postgres 调用。
我也可以使用该功能jsonb_from_cstring
http://doxygen.postgresql.org/jsonb_8c.html#ab23eca28d5880f86a0943d71c90d6654
但它是在 json.h 中声明和定义的,jsonb.c
而不是在 json.h 中声明的,因此与此函数链接不是一个非常干净的解决方案。我尝试在 libpq.so 中找到符号jsonb_from_cstring
,但是没有。我猜我需要一个非标准的 postgres 版本?
所以问题是,从 C API中将 a 转换cstring
为结构的最佳方法是什么?Jsonb*
编辑:
该扩展从外部源获取 json 数据作为字符串,并且应该能够将该字符串存储在一个Jsonb
类型中