3

任何人都知道 Metabase 中的这个错误(或任何 Clojure 程序中的类似错误)?

Unfreezable type: class org.postgresql.jdbc.PgArray

当我TEXT[]在问题中使用 postgresql 数组类型(即)时,它会定期发生,但并非总是如此=> 它可能以某种方式取决于 pgArray 中的确切数据,但我无法弄清楚如何。

有一种解决方法可以摆脱它:将所有 pgArrays 重新输入/强制转换为 TEXT (or VARCHAR)。但我真的很想了解为什么会这样。感谢任何见解。

4

1 回答 1

2

Metabase 使用一个名为 Nippy 的库:

https://github.com/metabase/metabase/blob/master/project.clj#L61

Nippy 提供常见类型的快速序列化。错误“不可冻结类型”:

https://github.com/ptaoussanis/nippy/blob/master/src/taoensso/nippy.clj#L720

当 Nippy 遇到一种它不知道如何序列化的数据时,就会发生这种情况。PgArray,作为定制的 Postgres 数组类型,显然是其中之一。

为 Nippy 提供序列化指导并不难。也许用您的详细信息向 Metabase 人员提出问题,询问他们是否可以这样做?

于 2018-04-09T14:18:17.730 回答