Skip to content

Code

代码仓库

  • pg 官方仓库:https://git.postgresql.org/git/postgresql.git
  • github 仓库:https://github.com/postgres/postgres.git
  • gitee 仓库:https://gitee.com/mirrors/PostgreSQL.git

代码目录

.
├── access 实现核心存储访问机制,包括表和索引的数据读写、事务可见性控制等
├── archive 提供 WAL(预写日志)归档功能相关代码,支持将 WAL 日志归档到外部存储
├── backup 包含物理备份与恢复相关逻辑,如基础备份生成、增量备份处理等
├── bootstrap 负责数据库初始化工作,如系统表创建、初始数据加载等启动流程
├── catalog 管理系统目录(系统表),维护数据库对象(表、索引等)的元数据
├── commands 实现 SQL 命令执行逻辑,处理 CREATE、ALTER、DROP 等 DDL 及部分 DML 命令
├── executor SQL 执行器核心,将查询计划转换为实际数据操作,执行查询并返回结果
├── foreign 实现外部数据包装器(FDW)框架,支持访问 PostgreSQL 以外的外部数据源
├── jit 包含即时编译(JIT)功能代码,通过动态生成机器码优化查询执行效率
├── lib 存放后端内部通用函数库,如字符串处理、数学计算、内存管理等基础工具函数
├── libpq 实现 C 语言客户端通信库,处理客户端与服务器的网络连接和协议交互
├── main 包含后端进程入口函数,负责进程初始化与主逻辑调度
├── nls.mk 国际化相关 Makefile 配置,管理后端消息翻译文件的生成与编译
├── nodes 定义内部数据结构(如查询树、计划树节点)及节点操作函数
├── optimizer 查询优化器核心,分析 SQL 查询并生成最优查询计划
├── parser 负责 SQL 语句的解析,将文本转换为抽象语法树(AST)
├── partitioning 实现表分区功能,处理分区表创建、数据路由、分区修剪等
├── po 存放国际化翻译文件(.po),包含各语言对后端消息的翻译文本
├── port 提供跨平台兼容性代码,适配不同操作系统的系统调用与特性差异
├── postmaster 主进程(守护进程)代码,负责监听连接、管理后端进程生命周期
├── regex 集成正则表达式处理库,提供 SQL 中 REGEXP 相关操作的实现
├── replication 实现数据库复制功能,包含主从复制、流复制、逻辑复制逻辑
├── rewrite 处理规则(Rule)和视图(View),将对视图的查询重写为对基表的查询
├── snowball 集成 Snowball 词根提取库,为全文搜索提供多语言词根分析支持
├── statistics 管理数据库统计信息,为查询优化提供数据分布等支撑信息
├── storage 实现存储子系统,包含缓冲池、事务日志(WAL)、磁盘文件管理等
├── tcop “查询编译器” 模块,协调客户端 SQL 请求的接收、解析、重写等过程 traffic cop
├── tsearch 实现全文搜索功能,包含文本分词、索引创建、检索匹配逻辑
└── utils 存放通用工具模块,如内存分配、错误处理、日期时间处理等辅助功能

核心目录

.
├── main 包含后端进程入口函数,负责进程初始化与主逻辑调度
├── postmaster 主进程(守护进程)代码,负责监听连接、管理后端进程生命周期
├── tcop “查询编译器” 模块,协调客户端 SQL 请求的接收、解析、重写等过程 traffic cop
├── parser 负责 SQL 语句的解析,将文本转换为抽象语法树(AST)
├── catalog 管理系统目录(系统表),维护数据库对象(表、索引等)的元数据
├── rewrite 处理规则(Rule)和视图(View),将对视图的查询重写为对基表的查询
├── optimizer 查询优化器核心,分析 SQL 查询并生成最优查询计划
├── executor SQL 执行器核心,将查询计划转换为实际数据操作,执行查询并返回结果
├── access 实现核心存储访问机制,包括表和索引的数据读写、事务可见性控制等; heap, btree, mvcc(visibility)
└── storage 实现存储子系统,包含缓冲池、事务日志(WAL)、磁盘文件管理等