gpt4 book ai didi

postgresql - 访问外部数据包装器中的 WHERE 子句条件

转载 作者:行者123 更新时间:2023-11-29 11:51:40 24 4
gpt4 key购买 nike

我正在通过一组 FDW 表公开键/值存储中的数据。除了当我只需要一小部分时 Postgres 经常被迫扫描整个表外,一切都很好。

例如:

SELECT * FROM person WHERE person_id='WLW001';

除非我在末尾添加 LIMIT 1,否则它将搜索所有人员行。

在我的键/值存储中,我只需要将“WLW001”作为键的一部分传递,即可直接找到正确的记录。

换句话说,我需要找到 WHERE 子句条件来优化我对键/值存储的查询。我查看了许多示例 FDW 和文档,但找不到任何描述使用 RelOptInfo 或 scan_clauses 列表或辅助函数来获取此信息的内容。

此外,如果 SELECT 语句包含参数标记,看来我需要用值替换标记。我在哪里可以找到值(value)?

最佳答案

我在名为 deparse.c 的文件中找到了我在 mysql_fdw 项目 ( https://github.com/EnterpriseDB/mysql_fdw ) 中需要的东西。 PostgreSQL 将解析查询并将其转换为单独的表查询。然后它将为每个不同的表调用 FDW 回调,每个表都有自己的一组 WHERE 条件。可以遍历 PostgreSQL 数据结构中的树,以获得它在该表中搜索的确切条件。

关于postgresql - 访问外部数据包装器中的 WHERE 子句条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37287494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com