美文网首页
第3课 PostgreSQL代码结构

第3课 PostgreSQL代码结构

作者: 椟夜 | 来源:发表于2018-08-31 21:59 被阅读178次

    序言

    • PostgreSQL是遵照BSD开源协议类似的开源协议PostgreSQL License发布。该许可证可以在PostgreSQL源代码的COPYRIGHT文件中找到。

    • 从该协议可以看到,开发人员或者商业组织只要遵循该协议,便可以自由地使用PostgreSQL,可以完全控制这些第三方代码,在必要的时候可以加以修改或者二次开发。

    • PostgreSQL源代码包含3400多个文件,主要程序由C语言编写,包括十几个大型模块,定义了几百个主要的数据结构和上万个函数。

    • 克隆源代码

    $git clone https://github.com/postgres/postgres
    

    源代码目录

    image.png

    主要模块说明

    • 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数据库内核分析》,点开链接可以听听,有点意思。

    《数据库系统概论(第4版)》,点开链接可以听听,有点意思。

    更多IT有声课程,点我发现更多

    第 0 课 PostgreSQL 系列文章列表

    其他相关文章分享列表:

    第 23 课 PostgreSQL 创建自己的数据库、模式、用户
    第 22 课 PostgreSQL 控制文件
    第 21 课 PostgreSQL 日志系统
    第 16 课 查询过程源码分析
    第 15 课 PostgreSQL 系统参数配置
    第 14 课 PostgreSQL 数据存储结构
    第 13 课 PostgreSQL 存储之Page(页面)源码分析
    第 12 课 PostgreSQL 认证方式
    第 11 课 PostgreSQL 增加一个内核C函数
    第 10 课 PostgreSQL 在内核增加一个配置参数
    第 09 课 PostgreSQL 4种进程启动方式
    第 08 课 PostgreSQL 事务介绍
    第 07 课 PostgreSQL 数据库、模式、表、空间、用户间的关系
    第 06 课 PostgreSQL 系统表介绍
    第 05 课 PostgreSQL 编译源代码进行开发
    第 04 课 PostgreSQL 安装最新的版本
    第 03 课 PostgreSQL 代码结构
    第 02 课 PostgreSQL 的特性、应用、安装
    第 01 课 PostgreSQL 简介及发展历程

    上面文章都在专辑中:PostgreSQL专辑链接,点我查看

    如果有用,可以收藏这篇文件,随时在更新....

    更多交流加群: PostgreSQL内核开发群 876673220

    亲,记得点赞、留言、打赏额!!!

    上一课
    下一课

    相关文章

      网友评论

          本文标题:第3课 PostgreSQL代码结构

          本文链接:https://www.haomeiwen.com/subject/mcgewftx.html