レガシー データベースの問題を修正しようとしています。postgres の 8.4 インストールで特定のデータベースに対して quote_literal 関数が機能しません。
新しいテストデータベースでの私の結果は次のとおりです。
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) 関数でオーバーライドできますが、なぜそうしなければならないのかわかりません。
問題は、新しいデータベースに影響を与えずに、この特定のデータベースでこの関数の失敗を引き起こしている可能性があるのは何ですか?