Postgres JSON函数传递的是字符串而不是对象

时间:2015-11-20 18:31:54

标签: javascript json postgresql stored-functions jsonb

所以我有一个Postgres函数,用于递归合并两个JSONB对象,它在生产服务器上工作得很好,但在我的本地Postgres安装上失败了。函数本身是用plv8(基本上是一个v8 Javascript引擎)编写的,并且期望两个JSONB格式的参数合并;问题是JSON是作为字符串而不是作为对象传入的,这实际上会破坏整个函数。

这只发生在我的本地计算机上,一个新的Postgres 9.4.5安装。生产服务器正在运行9.4.4,这不应该导致版本之间出现如此重大的变化...想知道去哪里看到了什么?

编辑:现在可以确认恢复到9.4.4不会使本地行为有任何不同

2 个答案:

答案 0 :(得分:0)

很难说。可能性:

  1. 不同的演员表 - 您可以定义自定义演员表 - CREATE CAST语句 - 尝试检查psql命令的结果\dC *json*

  2. 9.4.5

  3. 中引入的新错误

答案 1 :(得分:0)

FWIW,升级到9.5似乎可以解决这个问题的实例。