
postgres 源码浅析
文章平均质量分 93
夏 克
Shylock
展开
-
postgresql 15源码浅析(4)—— Hello PostgreSQL 15
这期主要是想填个坑,在上期中留下了一个pg_reload_conf()处理流程,找到代码看了一下,发现这块只有寥寥几行,该函数就是向postmaster进程发了一个SIGHUP信号,后续流程就是上期中的信号“1”处理流程,但pg_reload_conf()是一个内建函数,那么内建函数的调用过程涉及sql的接收、解析、执行等等,这个包含了sql引擎的一部分流程,是比较核心的内容,现阶段我还没这个能力去把这部分讲清楚,所以先从简单的开始,先介绍如何写一个内建函数,通过一个内建函数例子来学习和梳理内建函数的实现过原创 2022-06-04 21:09:53 · 610 阅读 · 0 评论 -
postgresql 15源码浅析(3)—— 信号“1“的使命
这篇实际上是要说说配置文件的加载问题,有些标题党了。准确说是如何在线加载配置,用户通过向postgres进程发送信号SIGHUP触发服务端完成配置的刷新。这部分看下来代码还是有点多,挑选几段我认为比较重要的片段和大家一起学习一下。原创 2022-05-29 21:17:41 · 419 阅读 · 0 评论 -
postgres 15源码浅析(2)—— psql新功能\dconfig
摘要翻了一下PostgreSQL 15的release文档,发现psql也有了10余项的升级,一起来撸一下其中一项新的功能的代码——\dconfig.环境及代码环境我这里使用的是本机win11 的WSL ubuntu。代码代码用的是最新的master分支,应该和15beta差不多吧。psql代码结构psql的代码结构很简单,基本就是启动之后在MainLoop函数中等待接收处理命令行的字符输入(细节以后可以慢慢撸,今天主要看看\dconfig这个命令是如何处理),接收到命令后做简单原创 2022-05-25 18:54:58 · 337 阅读 · 0 评论 -
postgresql 15源码浅析(1)—— postgres中的1号数据库
在创建数据库集簇后,该集簇中默认会包含三个系统数据库template1、template0和postgres,其中template0和postgres都是在初始化过程中从template1复制出来的。这个理论大家想必不是那么陌生,但是template1又是从哪里来的呢?带着这个问题,下文将从代码的角度探究postgres中1号数据库的由来。原创 2022-05-22 20:37:54 · 911 阅读 · 0 评论