首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将强制转换范围仅限于PostgreSQL中的架构

将强制转换范围仅限于PostgreSQL中的架构
EN

Stack Overflow用户
提问于 2011-01-20 15:26:09
回答 1查看 463关注 0票数 1

在Funambol的管理文档中,为了在对类型和类型转换更严格的较新的PostgreSQL实例上运行,您必须添加这些类型转换:

代码语言:javascript
复制
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术语中),我还有其他模式,应用程序因这些类型转换而中断(带有"operator is not Could: unknown || integer“和提示”无法选择最佳候选操作符。您可能需要添加显式类型转换“)。当他们之前工作的时候。

因此,一种解决方案当然是定义额外的数据库,并且其中只有Funambol。但我想知道是否有一种方法可以定义这些类型转换,使它们只在Funambol的模式中生效,而不是在整个数据库中生效。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-25 05:19:03

不,这不可能像你想象的那样。类型转换由源类型和目标类型标识,因此如果这两种类型都是内置类型之一,则数据库的所有用户都将看到它们之间的相同类型转换。唯一的变通方法是创建内置数据类型的克隆,但不要这么做。;-)

因此,您要么需要寻求Funambol的修复,要么将您的应用程序分离到不同的数据库中,并可能使用dblink之类的东西将它们链接在一起。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4744487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档