Funambol в своей документации по администрированию имеет то, что для запуска на более новых экземплярах 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) У меня также есть другие схемы, которые приложения сломали из-за этих приведений (с «оператор не уникален: неизвестно || целое число» и подсказка «Не удалось выбрать лучший оператор-кандидат. Возможно, вам потребуется добавить явные приведения типов.»)в то время как они работали раньше.
Таким образом, одно решение, конечно, состоит в том, чтобы определить дополнительную базу данных и иметь только Funambol.Но мне интересно, есть ли способ определить эти приведения так, чтобы они действовали только в схеме Фунамбола, а не во всей базе данных.