gpt4 book ai didi

c - 参加预选赛-postgresql

转载 作者:太空狗 更新时间:2023-10-29 15:41:01 25 4
gpt4 key购买 nike

我正在研究 postgresql 8.4 源代码。我需要从查询中推断限定符(where 部分)。

例如,如果查询是:select name from student where age > 18我需要知道“年龄”和“18”。

目标列表我已经取过了,范围列表也是这样取的

Query *query_idr = (Query *)linitial(querytree_list);
ListCell *l;
ListCell *tl;
foreach(l, query_idr->rtable){
Oid tab_idT = ((RangeTblEntry *) lfirst(l)) ->relid;
}
foreach(tl, query_idr->targetList){
TargetEntry *tle = (TargetEntry *) lfirst(tl);
Oid col_id = tle->resorigtbl;
}

它起作用了,我得到了表 student 的 ID(第一个 foreach)和 name 列的 ID(第二个 foreach),但我不明白我为什么要参加预选赛。

这是可导航的查询结构 http://doxygen.postgresql.org/structQuery.html

最佳答案

我怀疑你会在这里得到答案。一般来说,破解 PostgreSQL 源代码的人不太可能在这里回答这个问题,像这样的一般站点会有帮助。但是,我不想在没有任何此类资源的情况下离开这里,而是想提供一个资源列表来回答这样的问题,以及我作为一个在 Pg 上有相当多经验的人阅读文档。

本质上,您要做的是在查询的解析树中导航。在我看来,setOperations 成员可能是一个值得关注的地方,因为我想不出其他地方,因为这可能有助于连接条件和 where 子句过滤器(记住这些被计划者认为是可互换的)。但是我在这方面的经验很少,所以我可能是错的。

我完全支持 pgsql-hackers 列表可能是提出此类问题的最佳场所的建议。您可能会在那里得到更好的答案。

关于c - 参加预选赛-postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15286245/

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