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

Postgres JSON function passed string instead of object

本文关键字:对象 字符串 JSON 函数 Postgres      更新时间:2023-09-26

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

不过,这只发生在我的本地计算机上,一个新的Postgres 9.4.5安装。生产服务器正在运行9.4.4,这不应该导致跨版本的重大更改。。。想去哪里看看这里坏了什么?

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

很难说。可能性:

  1. 不同的强制转换-您可以定义自定义强制转换-CREATE CAST语句-尝试检查psql命令'dC *json* 的结果

  2. 9.4.5 中引入的新错误

FWIW,升级到9.5似乎为我解决了这个问题。