Funambolの中で唯一のスキーマにスコープをキャストタイプと、より厳格であり、キャスト新しいPostgreSQLのインスタンス上で実行するためにあなたがそれらのキャスト追加することが必要であることがあります。リミットは、その管理マニュアルにPostgreSQLの
CREATE FUNCTION pg_catalog.text(bigint) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int8out($1));';
CREATE CAST (bigint AS text) WITH FUNCTION pg_catalog.text(bigint) AS IMPLICIT;
CREATE FUNCTION pg_catalog.text(integer) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int4out($1));';
CREATE CAST (integer AS text) WITH FUNCTION pg_catalog.text(integer) AS IMPLICIT;
問題はということですが同じデータベース(PostgreSQLの用語で)には、これらのキャストのためにアプリケーションが壊れた他のスキーマもあります(「演算子は一意ではありません:未知数||整数」とヒント「最適な候補演算子を選択できませんでした。明示的な型キャスト ")。
したがって、1つの解決策はもちろん追加のデータベースを定義し、そこにFunambolだけを持たせることです。しかし、これらのキャストをFunambolのスキーマでのみ有効にし、データベース全体では有効にならないように、キャストを定義する方法があるかどうかは疑問です。
ベストソリューションは、暗黙的なキャストに依存する(壊れた)アプリケーションを修正することです(ほとんど常に悪いことです)。しかし、それはあなたが聞きたい解決策ではありません;) –
私は同意します。狂ったことは、彼らは管理のマニュアル/文書で、そのようなキャストをソリューションとして追加しなければならないと書いてあることです。だから問題はよく知られています。ドキュメントのバグ修正。私の新しいパラダイム。 ;-) – Mitar