PostgreSQL-第一课

PostgreSQL-代码结构图

绪论

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查询转化为内部查询树。
  • Optimizer:优化器,执行来自Optimizer的查询计划。
  • Commands:执行非计划查询的SQL命令,如创建表命令等。
  • Catalog:系统表操作,包含用于操作系统表的专用函数。
  • Storage:管理各种类型的存储系统(如磁盘、闪存等)。
  • Access:提供各种存储方法,支持堆、索引等对数据的存取。
  • Nodes:定义系统内部所用到的节点、链表等结构,以及处理这些结构的函数。
  • Utils:各种支持函数,如错误报告、各种初始化操作等。
  • Regex:正则表达式库及相关函数,用于支持正规表达式处理。
  • Rewrite:查询重写,根据规则系统对查询进行重写。
  • initdb:初始化数据库集簇。
  • TSearch:全文搜索。
  • Psql:数据库交互工具。
  • Port:平台兼容性处理相关的函数。

Postgresql内部模块之间的调用关系如下图所示:
模块间调用关系图

参考资料

发布了15 篇原创文章 · 获赞 0 · 访问量 336

猜你喜欢

转载自blog.csdn.net/u011228324/article/details/104012892