PostgreSQL源码学习(1)–PG13代码结构

PostgreSQL代码结构

  • Bootstrap:用于支持Bootstrap运行模式,该模式主要用来创建初始的模板数据库。
  • Main:主程序模块,它负责将控制权转到Postmaster进程或postgres进程。
  • Postmaster:监听用户请求的守护进程,并控制Postgres进程的启动和终止。
  • Libpq:C/C++的库函数,处理与客户端间的通信,几乎所有的模块都依赖它。
  • Tcop:Postgres服务进程的主要处理部分,它调用Parser、Optimizer、Executor和Commands中的函数来执行客户端提交的查询。
  • Parser:编译器,将SQL查询转化为内部查询树。
  • Optimizer:优化器,根据查询树创建最优的查询路径和查询计划。
  • Executor:执行器,执行来自Optimizer的查询计划。
  • Commands:执行非计划查询的SQL命令,如创建表命令等。
  • Catalog:系统表操作,包含用于操作系统表的专用函数。
  • Storage:管理各种类型的存储系统(如磁盘、闪存等)。
  • Access:提供各种存取方法,支持堆、索引等对数据的存取。
  • Nodes:定义系统内部所用到的节点,链表等结构,以及处理这些结构的函数。
  • Utils:各种支持函数,如错误报告、各种初始化操作等。
  • Regex:正则表达式库及相关函数,用于支持正则表达式处理。
  • Rewrite:查询重写,根据规则系统对查询进行重写。
  • Initdb:初始化数据库集簇。
  • TSearch:全文检索。
  • Psql:数据库交互工具。
  • Port:平台兼容性处理相关的函数。

PostgreSQL源码学习(1)--PG13代码结构相关推荐

  1. postgresql源码学习(27)—— 事务日志⑦-日志落盘上层函数 XLogFlush

    一. 预备知识 1. XLOG什么时候需要落盘 事务commit之前 log buffer被覆盖之前 后台进程定期落盘 2. 两个核心结构体 这两个结构体定义代码在xlog.c,它们在日志落盘过程中非 ...

  2. postgresql源码学习(49)—— MVCC⑤-cmin与cmax 同事务内的可见性判断

    一. 难以理解的场景 postgresql源码学习(十九)-- MVCC④-可见性判断 HeapTupleSatisfiesMVCC函数_Hehuyi_In的博客-CSDN博客 在前篇的可见性判断中有 ...

  3. PostgreSQL源码学习(一)编译安装与GDB入门

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 PostgreSQL源码学习(一)编译安装与GDB入门 前言 一.安装PostgreSQL 1.获取源码 2.配置 3.编译 3.安装 ...

  4. postgresql源码学习(51)—— 提交日志CLOG 原理 用途 管理函数

    一. CLOG是什么 CLOG(commit log)记录事务的最终状态. 物理上,是$PGDATA/pg_xact目录下的一些文件 逻辑上,是一个数组,下标为事务id,值为事务最终状态 1. 事务最 ...

  5. postgresql源码学习(57)—— pg中的四种动态库加载方法

    一. 基础知识 1. 什么是库 库其实就是一些通用代码,可以在程序中重复使用,比如一些数学函数,可以不需要自己编写,直接调用相关函数即可实现,避免重复造轮子. 在linux中,支持两种类型的库: 1. ...

  6. postgresql源码学习(53)—— vacuum②-lazy vacuum之heap_vacuum_rel函数

    一. table_relation_vacuum函数 1. 函数定义 前篇最后(https://blog.csdn.net/Hehuyi_In/article/details/128749517),我 ...

  7. postgresql源码学习(52)—— vacuum①-准备工作与主要流程

    关于vacuum的基础知识,参考,本篇从源码层继续学习 https://blog.csdn.net/Hehuyi_In/article/details/102992065 https://blog.c ...

  8. postgresql源码学习(一)—— 源码编译安装与gdb调试入门

    一. postgresql源码编译安装 因为只是用来调试的测试环境,把基本的软件装好和库建好就可以,一切从简. 1. 创建用户和目录 mkdir -p /data/postgres/base/ mkd ...

  9. postgresql源码学习(九)—— 常规锁②-强弱锁与Fast Path

    一. 强锁与弱锁 根据兼容性表,彼此相容的3个锁(1-3级,AccessShareLock.RowShareLock.RowExclusiveLock)是弱锁,4级锁ShareUpdateExclus ...

最新文章

  1. 近期激光雷达点云的3D目标检测方法
  2. python3 tcp 通信源码
  3. windows 下安装 scrapy报错:error: Unable to find vcvarsall.bat
  4. NFS Volume Provider(Part II) - 每天5分钟玩转 OpenStack(63)
  5. 如何用手机打开dcm格式图片_实现原始Dicom自动转换BIDS格式 ——Heudiconv
  6. 深入理解jvm jdk1,7(1)
  7. Morevec算子特征提取 opencv C++ CSU
  8. 190101每日一句
  9. 计算机组成原理试题库10,计算机组成原理试题10
  10. 油库蓝牙+北斗RTK人员定位方案解析
  11. 小包实用工具:国家代码大全
  12. 自己对ajax的第一次上手被人说菜死还真是菜
  13. BaseProxy:异步http/https中间人
  14. [FineReport]高级条件分组、斜线、自动查询、控件编辑属性、条件属性
  15. 9个非常有意思的HTML5动画推荐
  16. AngularJs实现增加订单、批量发货
  17. 哈夫曼树(模拟+哈夫曼树+最小WPL)
  18. Dell H310配置no-raid直通模式
  19. 从零开始perp交叉编译及配置
  20. 九段刀客 vue-router实现原理

热门文章

  1. Python数据分析学习笔记:计算相关系数
  2. Java Web学习笔记02:在Intellij里创建Web项目
  3. 利用R和Octave求解线性方程组
  4. 【BZOJ1095】捉迷藏,动态点分治
  5. 5.过滤器作为模板——寻找沃尔多、不相同的模板匹配_3
  6. java能字典_适用于Java的任何字典定义API?
  7. 无人机官方网站_无人机开发设计资料整理
  8. 2017.9.6 Robot 失败总结
  9. 2017.3.30 寿司晚宴 失败总结
  10. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (1) - 特性概述