问题标签 [postgres-fdw]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - 在触发函数 postgres_fdw 中找不到函数
我创建了两个 postgres 数据库。版本 9.5.4。第一个数据库叫做persist。我正在使用postgrest中的一些示例代码进行身份验证。代码效果很好,这是我的持久数据库定义:
相当简单,在这里我调用了一个插入到表中,然后是一个选择,你可以看到通过触发器/函数 encrypt_pass 加密的 pass 使用:
效果很好。下一步是 postgres_fdw,我将外部模式导入到远程数据库到我的另一个数据库:
然后选择以证明它正在工作:
问题是我不能插入到这个表中。这是操作中的错误:
很奇怪,找不到任何函数,不只是gen_salt。我在持久化端放置了一些引发异常语句,以验证我的 current_user 确实是 postgres。那么,当我通过 postgres_fdw 执行时,为什么我的所有函数都会消失?
我错过了什么。我很确定我已经完成了这项工作,但是在我的所有设置/拆卸过程中,我不知何故失去了正确的咒语。
-G
解析度:
在我发布这个之后,我终于弄清楚了这个问题。当。直接来自 postgres_fdw 手册postgres-fdw:
在 postgres_fdw 打开的远程会话中,search_path 参数设置为仅 pg_catalog,因此只有内置对象可见,无需模式限定。这对于 postgres_fdw 本身生成的查询来说不是问题,因为它总是提供这样的限定条件。但是,这可能会对通过远程表上的触发器或规则在远程服务器上执行的功能造成危害。例如,如果远程表实际上是一个视图,则该视图中使用的任何函数都将使用受限搜索路径执行。建议对此类函数中的所有名称进行模式限定,或者将 SET search_path 选项(请参阅 CREATE FUNCTION)附加到此类函数以建立其预期的搜索路径环境。
我更改了函数,以便它使用它调用的完整路径:
现在它正在工作!
postgresql - rds postgres 上的 redis_fdw
运行 create extension redis_fdw 会出现以下错误。目前有没有其他方法可以为 redis 创建外部数据包装器并实现与RDS 上的这个项目类似的目标?
postgresql - PostgreSQL 9.5:使用外部数据包装器 (FDW) 创建跨数据库的外键
我想通过引用其他数据库表在当前数据库表中创建外键。
所以我决定和FDW一起去。
我已完成以下步骤:
第 1 步:创建扩展
步骤 2 : 创建外部服务器
第 3 步:创建外部表
第 4 步:使用外键创建表
但是遇到了一个错误:
postgresql - 使用 postgresql_fdw 导入外部模式
我有两个 postgreSQL 实例,一个作为数据源(端口 5433),另一个作为数据访问层(端口 5432 上的外部数据包装器的主机)。
我想导入 postgreSQL 表(Dzlog)的模式,这样我就不必映射“CREATE FOREIGN TABLE”中的每一列。因此,我有以下命令:
现在,如何使用这个导入的模式创建外部表?
更新:
因此,如果通过导入外部模式 (Dzlog) 已经创建了外部表,我使用以下 select 语句:
ProgrammingError:(psycopg2.ProgrammingError)关系“Dzlog”不存在
在 psql 中也不存在关系
postgresql - PostgreSQL fdw 和视图,使用时间戳
我有一个 PostgreSQL 9.6 服务器连接到远程 9.3 服务器。
我正在尝试创建以下物化视图:
它很慢,因为过滤是在本地服务器上完成的。
这是解释分析结果:
如何在远程服务器上进行条件过滤?
注意:远程过滤正在使用这样的查询:
但是有了这个,每次我刷新视图时,日期已经被计算出来并停留在上面的例子中 2017-05-31 11:44:10.89017
有任何想法吗 ?
谢谢并恭祝安康
postgresql - 在 PostgreSQL RDS AWS 上安装包
我想从 postgreSQL 查询中访问 LDAP 数据。我可以使用 FDW(外部数据包装器)包(https://wiki.postgresql.org/wiki/Foreign_data_wrappers#LDAP_Wrappers),但 RDS 似乎还不支持。有没有其他方法可以启用从 postgres 到 LDAP 的查询?
谢谢,
Himanshu
postgresql - 由于主机数据库中自定义存储函数值的索引,无法查询外部表
我有以下情况。
在服务器 I 上的数据库 A 中,我们称之为 Host DB,有一个表,其中包含以下示例创建脚本:
如您所见,索引是在一些自定义的结果上创建的,存储在数据库 A 中的函数 my_custom_function 中。
现在我想在数据库 B 中的其他服务器上将 some_table 声明为外部表。在创建服务器、用户映射等之后,我将外部表声明为:
该表创建得很好,但是我无法查询它。相反,我收到以下错误:
我相信这个问题与“客户”数据库中未在服务器 B 上声明的函数 my_custom_function 有关。由于某些原因,我不想创建此功能。有什么办法可以克服这个问题吗?
提前感谢您的所有回答。
postgresql-9.6 - 使用 postgres_fdw 创建外部表时翻译主机名时出错
编辑:我已经解决了这个问题。剧透,它与 psql 或 fdw 无关。这是一个 DNS 问题,因为我在未配置内部 DNS 服务器的 docker 机器上运行本地数据库。
我正在尝试在我的数据库中创建一个外部表(来自另一个 postgres 数据库)。但是,当我运行 select 语句时,外部数据包装器说它无法翻译提供的主机名:
那么我的主机名有什么问题?我可以使用psql -U myuser -W -h db7.ap.int.unavco.org -d pgs3
. 我创建外部表的脚本非常简单,并且以此处的文档为模型。
sql-server - 外部数据包装器 - 映射 nvarchar 数据类型
我已经通过tds_fdw
扩展将 SQL Server 数据库与 PostgreSQL 数据库链接起来。
我将 SQL Server 表映射到 PostgreSQL 外部表。连接成功。
我在将nvarchar
数据类型映射到 Postgres 时遇到问题。我映射nvarchar
为varchar
,因为 SQL Servervarchar
和nvarchar
PostgreSQL 相同。但是nvarchar
列没有正确映射(存储?
为某些符号)。
如何正确地nvarchar
从 SQL Server 映射到 Postgresql 中的等效数据类型?
我用 UTF8 编码创建了 Postgresql 数据库
django - 外部表上的 Django OneToOneField
我正在尝试使用以前不是外部表的外部表(使用 postgres_fdw)设置一个新服务器,并且我有一些指向这些表的 OneToOneFields。这不是开箱即用的 - OneToOneFields 使用外键,而 postgres_fdw 不支持外表的外键。
外部表位于同一服务器上的只读数据库中。
有没有一种简单的方法可以让这个工作?