2015-11-20 66 views
0

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

这只发生在我的本地计算机上,虽然新鲜的Postgres 9.4.5安装。生产服务器正在运行9.4.4,这不应该导致版本之间发生如此重大的变化......关于何处去查看这里发生了什么的想法?

编辑:现在可以证实,恢复到9.4.4不使这个行为有什么不同本地

+0

本地安装9.4.4并尝试? – djechlin

+0

您可能需要[SSCCE](http://sscce.org)。 – djechlin

+0

你可以在你的函数中将字符串转换为JSON或JSONB,然后从那里工作?我们不会知道,除非你发布一些代码。 – amphetamachine

回答

0

很难说。可能性:

  1. 不同类型转换 - 你可以自定义蒙上 - CREATE CAST声明 - 尝试检查psql命令的结果\dC *json*

  2. 新bug在9.4.5

+0

从我所能看到的9.4.5中没有任何错误;我也在'psql'中运行了这个命令,并且两台服务器都提供了相同的输出,所以它看起来不像是问题所在? – moberemk

0

FWIW介绍,升级到9.5似乎解决了这个问题的例子。

相关问题