似乎无法比较两个(相同)枚举类型。如果我运行命令...
SELECT 'test'::core.mytype = 'test'::core.mytype;
它给出了以下错误...
ERROR: 42725: operator is not unique: core.mytype = core.mytype
LINE 1: SELECT 'test'::core.mytype = 'test'::core.mytype;
^
HINT: Could not choose a best candidate operator. You might need to add explicit type casts.
LOCATION: op_error, parse_oper.c:718
如果我在另一个Enum类型上尝试此方法,则它工作得很好,似乎就是这种特定类型。不仅如此,而且我确定我已经在另一个函数中使用比较了几周了。
我是否缺少某些东西,或者可能被意外删除了?
答案 0 :(得分:1)
因此,这似乎是CAST
函数的结果,我仍然不明白为什么。
从给定类型到JSON
/ JSONb
,有一个[隐式] CAST。我假设PostgreSQL正在转换为JSONB
/ JSONB
并将其与失败进行比较(这是可以理解的),但是错误输出没有提及JSON
。
无论如何,在删除演员表(或至少使其成为ON ASSIGNMENT
)之后,它现在似乎可以工作了。
疯狂...但是很高兴知道。