zoukankan      html  css  js  c++  java
  • PostgreSQL9.2.4内核源码结构介绍

         PostgreSQL的源代码可以随意获得,其开源协议也允许研究者任意修改,这里介绍一下PostgreSQL的源码结构以及部分实现机制。下载PostgreSQL源代码并减压后,其一级目录结构如下图:

                  

     PostgreSQL源代码一级结构

    其中config目录下存放一些系统的配置文件。contrib目录下包括一些没有集成到核心代码中的外围工具和一些实验性质的开发代码。doc目录下是帮助文档,由SGML编写。src为系统核心代码,其他文件属于编译安装相关文件。 src目录,各子目录及其对应内容如下表:

    PostgreSQL源代码src目录下的子目录结构

    backend

    数据库引擎代码,也称为后台程序代码。

    bin

    外围工具,如数据库连接工具psql等。

    include

    头文件目录。

    interface

    系统提供的对外接口,如libpq。

    makefiles

    平台相关的makefile文件。

    pl

    过程语言PL/PostgreSQLSQL等实现代码。

    port

    平台兼容处理模块。

    template

    针对不同平台的编译脚本模板。

    test

    回归测试用例和自动化测试框架。

    timezone

    时区相关代码和数据。

    tools

    辅助工具,如编译windows版本的脚本。

    tutorial

    系统提供的部分示例示例。

    系统的核心实现代码都位于src\backend这个目录

    Access

    数据存取层,包括表数据索引的操作以及事务相关代码。

    bootstrap

    数据库初始化模块,和src\bin\initdb下的代码密切相关

    catalog

    系统表的操作相关代码。

    commands

    SQL命令执行,包括vacuum、copy、alter等。

    executor

    SQL语句执行,包括select、insert、update和delete语句的执行。

    foreign

    FDW(Foreign Data Wrapper)处理相关代码

    lib

    公用库,包含几个通用的程序。

    libpq

    前后端通信处理相关代码。

    main

    系统主入口函数,负责将控制转到postmaster或postgres。

    nodes

    节点相关代码,节点是查询计划中的存储单元。

    optimizer

    查询优化相关代码,负责创建查询路径和查询计划。

    parser

    SQL语句解析模块。

    po

    国际化(i18n)处理模块

    port

    平台兼容处理模块。

    postmaster

    主进程postmaster相关代码。

    regex

    正则表达式处理模块。

    replication

    streaming replication相关代码。

    rewrite

    规则系统(rule)模块。

    snowball

    分词程序,用于实现全文检索。

    storage

    存储层模块,包括存储管理器、缓冲区管理、文件管理、锁管理等。

    tcop

    SQL命令分发模块,负责调用parser、optimizer、executor和commands中的函数。

    tsearch

    全文检索模块。

    utils

    一些辅助程序,如内建数据类型、错误报告、排序实现等相关代码。

  • 相关阅读:
    将1、2、3、……、n这n个连续自然数分成g组,使每组的和相等。g组中个数最多的一组有几个?
    磁带机、驱动器、磁带库、机械手之间的区别
    Mysql基础命令
    pip 加速下载
    NBU命令之 nbftconfig :配置与光纤传输 (FT) 服务器和 SAN 客户端相关的属性
    IEDriverServer.exe驱动问题汇总
    系统集成项目管理工程师考试2020介绍
    LTO1,LTO2,LTO3,LTO4,LTO5 LTO6 磁带读写速度和兼容性及LTO6主要参数
    Mysql 备份方式 MySQL Agent & MySQL Enterprise Backup & Percona XtraBackup
    Netbackuk命令之bpclntcmd
  • 原文地址:https://www.cnblogs.com/songyuejie/p/3911114.html
Copyright © 2011-2022 走看看