我正在尝试解决遗留数据库的问题。quote_literal 函数不适用于 8.4 安装的 postgres 上的特定数据库。
这是我在新测试数据库上的结果:
select quote_literal(42);
quote_literal
---------------
'42'
(1 row)
现在在目标数据库上也是如此
select quote_literal(42);
ERROR: function quote_literal(integer) is not unique
LINE 1: select quote_literal(42);
^
HINT: Could not choose a best candidate function. You might need to add explicit type casts.
AIUI,quote_literal(anyvalue) 函数应该可以处理整数值,这似乎在第一次测试中得到了支持。
所以我认为 quote_literal 函数必须在这个数据库中被覆盖,但事实并非如此。我可以用特定的 quote_literal(integer) 函数覆盖它,但我不明白为什么我必须这样做。
问题是什么可能导致此特定数据库中的此功能失败,同时不影响新数据库?