分享更有价值
被信任是一种快乐

PostgreSQL源码中NOT IN的作用是什么

文章页正文上

本篇内容主要讲解“PostgreSQL源码中NOT IN的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PostgreSQL源码中NOT IN的作用是什么”吧!SubPlanState
子计划运行期状态SubPlan
子查询计划SubLinkType
SubLink类型SubLink
SubLink结构体ExecScanSubPlanExecProcNode
执行输入参数node的ExecProcNode方法。执行SQL:启动gdb跟踪subplan变量值(结构体SubPlan)
其中testexpr是测试表达式,操作符是整型的等值比较,
左操作符是Var,数据表的第一个列,类型为23-int4(select * from pg_type where oid=23;)
有操作符是Param,执行期设置,对应参数索引编号为0,类型为23-int4
paramIds是链表,第一项ID值为0(int_value = 0)
子查询结果的第一个列类型为23-int4planstate变量值,实际的执行节点是ExecMaterialsubLinkType变量,类型为ANY_SUBLIN免费主机域名K,把NOT IN转为ANY_SUBLINK设置变量,执行相关检查等执行ExecReScan,planstate->ExecProcNode实际为ExecMaterial初始化result&isNull变量执行循环,slot从planstate->ExecProcNode(即ExecMaterial)中获取获取slot的描述符免费主机域名判断subLink类型执行相关逻辑,循环paramIds,填充参数值解析表达式,亦即解析表达式tbl.id = 2,获取结果由于tbl.id = 1,因此表达式解析结果为F判断subLink类型,如为ANY则进入相应逻辑结果不为T,因此再次循环执行,获取slot,这次的值应为3,因为3 1,因此再次循环直至t_big_null中出现值1或完成扫描完成执行调用栈到此,相信大家对“PostgreSQL源码中NOT IN的作用是什么”有了更深的了解,不妨来实际操作一番吧!这里是云技术网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: 怎么解决Mysql数据库提示innodb表不存在的问题

本篇内容主要讲解“怎么解决Mysql数据库提示innodb表不存在的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决Mysql数据库提示innodb表不存在的问题”吧!发现mysql的error.log里…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册