加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 取限定词 – postgresql

发布时间:2020-12-16 07:03:42 所属栏目:百科 来源:网络整理
导读:我正在研究 postgresql 8.4源代码.我需要从查询中推断出限定符(where part). 例如,如果查询是:从学生中选择名称,其中年龄 18 我需要知道“年龄”和“18”. 我已经以这种方式获取了目标列表和范围列表 Query *query_idr = (Query *)linitial(querytree_list)
我正在研究 postgresql 8.4源代码.我需要从查询中推断出限定符(where part).

例如,如果查询是:从学生中选择名称,其中年龄> 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;
}

并且它有效,并且我已经获得了表学生的id(带有第一个foreach)和id列的id(带有第二个foreach),但是我无法理解我必须如何使用限定符.

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

解决方法

我怀疑你会在这里得到答案.一般来说,使用PostgreSQL源代码的人很可能没有足够的人来回答它这样的一般网站会有所帮助.然而,我没有留下任何这样的资源,我想回复提供一个资源列表,用于回答像这样的问题,以及我阅读文档作为有相当多经验的人在Pg上建立东西.

实质上,您要尝试的是浏览查询的解析树.在我看来,setOperations成员可能只是因为我无法想到其他任何地方,因为这可能有助于连接条件和where子句过滤器(请记住这些被计划者认为是可互换的).但是我在这方面经验不多,所以我错了.

我完全会认为pgsql-hackers列表可能是提出这类问题的最佳位置.你可能会在那里得到更好的答案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读