- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在研究 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),但我不明白我为什么要参加预选赛。
最佳答案
我怀疑你会在这里得到答案。一般来说,破解 PostgreSQL 源代码的人不太可能在这里回答这个问题,像这样的一般站点会有帮助。但是,我不想在没有任何此类资源的情况下离开这里,而是想提供一个资源列表来回答这样的问题,以及我作为一个在 Pg 上有相当多经验的人阅读文档。
本质上,您要做的是在查询的解析树中导航。在我看来,setOperations 成员可能是一个值得关注的地方,因为我想不出其他地方,因为这可能有助于连接条件和 where 子句过滤器(记住这些被计划者认为是可互换的)。但是我在这方面的经验很少,所以我可能是错的。
我完全支持 pgsql-hackers 列表可能是提出此类问题的最佳场所的建议。您可能会在那里得到更好的答案。
关于c - 参加预选赛-postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15286245/
我不知道如何有效地解决以下链接中的问题 2: http://www.iarcs.org.in/inoi/2012/inoi2012/inoi2012-qpaper.pdf 最佳答案 您可以在 On l
我是一名优秀的程序员,十分优秀!