postgres
文章平均质量分 81
大明__
技术爱好者,通过分享进行学习实践;涉及领域主要包括:C/C++,算法与数据结构,网络安全,数据安全,设计模式,系统架构,数据库,多线程高并发等
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
postgres源码学习之简单sql查询
查询操作调用顺序为PortalRun–>PortRunSelect–>ExecutorRun–>standard_ExecutorRun–>ExecutePlan。,我们可以看到,当有新的连接通过权限认证之后,将进入等待接收sql语句,并执行sql语句的过程。涉及到查询结果返回的,会调用到printtup函数。建立连接后,服务端postgres就等待接收命令。中介绍的结果集存储有着相似的地方。参考postgres的处理流程。其输出形式和之前介绍的。原创 2025-02-19 19:48:02 · 689 阅读 · 0 评论 -
postgres源码学习之登录
postmaster_child_launch函数调用传入的第一个参数为B_BACKEND,所以新进程将进入BackendMain函数进行处理。从调用栈中不难看出,master的会在ServerLoop函数中进行循环接收新的连接,并创建新的进程处理该连接。忽略其中的细节,不难看出实际上调用了postmaster_child_launch函数,其主要内容如下。新的子进程启动后,对该连接进行权限认证,如果认证通过后,将等待客户端输入sql语句。完成权限认证后,子进程将进入idle状态,等待sql输入。原创 2025-02-19 18:00:08 · 897 阅读 · 0 评论 -
postgres源码学习之准备工作
CFLAGS=“-g3 -O0” CPPFLAGS=“-g3 -O0” 这两个参数配置的意义主要是为了后续可以方便的进行gdb单步调试。通过上一节的配置,使用pgsql test即可进行sql语句的执行;源码安装可参考https://www.postgresql.org/docs/17/install-make.html。当使用psql或者dbeave连接后,通过ps aux | grep postgres会发现多出来连接进程;然后可使用dbeaver,进行连接验证。源码下载后,进行解压。原创 2025-02-19 17:58:58 · 385 阅读 · 0 评论
分享