PostgreSQL 源码解读(232)- 查询#125(NOT IN实现#3)


本节介绍了PostgreSQL含有NOT IN查询语句实现ExecMaterial函数中部分依赖的函数。
SubPlanState

子计划运行期状态

SubPlan

子查询计划

SubLinkType

SubLink类型

SubLink

SubLink结构体

MaterialState

Material状态

ExecMaterial

执行物化操作。

tuplestore_begin_heap

初始化tuplestore

tuplestore_advance

从tuplestore前进一行

tuplestore_gettupleslot

获取slot

tuplestore_gettuple免费云主机域名

返回下一个元组
执行SQL:启动gdb跟踪单步调试进入tuplestore_gettupleslot进入tuplestore_gettupletuplestore_gettuple->文件读写指针信息tuplestore_gettuple->当前状态为TSS_INMEMtuplestore_gettuple->返回NULLtuplestore_gettupleslot->返回false回到ExecMaterial从outerPlan中获取一行(即从t_big_null中获取一行)回过头来看执行计划,Materialize Node的lefttree是Seq Scan on public.t_big_null b,righttree为NULL。获取outerslot获取outerslot后,put到tuplestore中继续“物化”第一次执行时间较久,第二次相对快2个数量级,需要继续研究。
DONEN/A

相关推荐: ubuntu中将java环境由安装版的openjdk替换为Oracle的jdk

查看系统所安装的JDK版本root@ubuntu:~# java -versionjava version “1.7.0_79″OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu1)O…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/01 19:10
下一篇 01/01 19:10