绪论
PostgreSQL是遵照一个和BSD开源协议类似的协议PostgreSQL License发布。PostgreSQL源代码包含3400多个文件,主要程序由C语言编写,包括十几个大型模块,定义了几百个主要的数据结构和上万个函数。
代码结构
PostgreSQL源代码结构清晰,每一个子目录都对应一个模块,其中主要目录(模块)及用途如下:
- Bootstrap:用于支持Bootstrap运行模式,该模式主要用来创建初始的模块数据库。
- Main:主程序模块,他负责将控制权转到Postmaster进程或者Postgres进程。
- Postmaster:监听用户请求的守护进程,并控制Postgres进程的启动和终止。
- Libpq:C/C++的库函数,处理和客户端间的通行,几乎所有的模块都依赖它。
- Tcop:Postgres服务进程的主要处理部分,它调用Parser、Optimizer、Executor和Commands中的函数来执行客户端提交的查询。
- Parser:编译器,将SQL查询转化为内部查询树。