postgresql 源码结构分析

 


目录

前言

源码下载

源码结构

核心代码目录

结尾


前言

本文对postgresql源码目录结构进行介绍,以及核心代码目录介绍,对pg内核感兴趣的朋友请关注本专栏内容。


源码下载

在下面官网可以下载源码包

PostgreSQL: File Browser

也可以在github/gitee/gitcode上找postgres的源码仓库进行克隆到本地,这样就可以不断更新到最新代码修改。

github不是很稳定,下面是csdn的gitcode的镜像仓库

mirrors / postgres / postgres · GitCode

源码结构

postgres源码根目录下结构如下

[senllang@localhost postgres]$ ll

total 1180

-rw-r--r--.  1 senllang develops    490 Feb  9  2021 aclocal.m4

drwxr-xr-x.  2 senllang develops   4096 Feb  9  2021 config

-rw-r--r--.  1 senllang develops 427787 Apr 21 19:29 config.log

-rwxr-xr-x.  1 senllang develops  39999 Apr 21 19:29 config.status

-rwxr-xr-x.  1 senllang develops 568656 Feb  9  2021 configure

-rw-r--r--.  1 senllang develops  82388 Feb  9  2021 configure.in

drwxr-xr-x. 57 senllang develops   4096 Feb  9  2021 contrib

-rw-r--r--.  1 senllang develops   1192 Feb  9  2021 COPYRIGHT

drwxr-xr-x.  3 senllang develops     87 Feb  9  2021 doc

-rw-r--r--.  1 senllang develops   4278 Apr 21 19:29 GNUmakefile

-rw-r--r--.  1 senllang develops   4278 Feb  9  2021 GNUmakefile.in

-rw-r--r--.  1 senllang develops    277 Feb  9  2021 HISTORY

-rw-r--r--.  1 senllang develops   1665 Feb  9  2021 Makefile

-rw-r--r--.  1 senllang develops   1213 Feb  9  2021 README

-rw-r--r--.  1 senllang develops    721 Feb  9  2021 README.git

drwxr-xr-x. 16 senllang develops   4096 Apr 21 19:29 src

主要目录说明

doc

        文档目录,可以编译出pdf,html格式的手删文档

contrib        

插件源码目录,没有包含在内核代码中,插件在使用时通过create extension进行加载

src

postgres 数据库的源码目录

核心代码目录

我们看下src下的目录结构,它里面就是postgresql内核的代码了。

drwxr-xr-x. 28 senllang develops  4096 Feb  9  2021 backend

drwxr-xr-x. 21 senllang develops  4096 Feb  9  2021 bin

drwxr-xr-x.  3 senllang develops  4096 Feb  9  2021 common

-rw-r--r--.  1 senllang develops   173 Feb  9  2021 DEVELOPERS

drwxr-xr-x.  2 senllang develops  4096 Feb  9  2021 fe_utils

drwxr-xr-x. 31 senllang develops  4096 Apr 21 19:29 include

drwxr-xr-x.  4 senllang develops    47 Feb  9  2021 interfaces

-rw-r--r--.  1 senllang develops  1842 Feb  9  2021 Makefile

-rw-r--r--.  1 senllang develops 34174 Apr 21 19:29 Makefile.global

-rw-r--r--.  1 senllang develops 34512 Feb  9  2021 Makefile.global.in

lrwxrwxrwx.  1 senllang develops    31 Apr 21 19:29 Makefile.port -> ../src/makefiles/Makefile.linux

drwxr-xr-x.  2 senllang develops  4096 Feb  9  2021 makefiles

-rw-r--r--.  1 senllang develops 15338 Feb  9  2021 Makefile.shlib

-rw-r--r--.  1 senllang develops  6392 Feb  9  2021 nls-global.mk

drwxr-xr-x.  6 senllang develops    78 Feb  9  2021 pl

drwxr-xr-x.  2 senllang develops  4096 Feb  9  2021 port

drwxr-xr-x.  2 senllang develops   142 Feb  9  2021 template

drwxr-xr-x. 16 senllang develops  4096 Feb  9  2021 test

drwxr-xr-x.  4 senllang develops  4096 Feb  9  2021 timezone

drwxr-xr-x. 10 senllang develops  4096 Feb  9  2021 tools

drwxr-xr-x.  2 senllang develops  4096 Feb  9  2021 tutorial

主要目录介绍:

backend

数据库服务端源码

bin

客户端和服务端工具代码

common

通用算法源码,如md5,sha2,json,base64等等

fe_utils

客户端常用结构和处理

include

头文件目录

interfaces

提供的libpq,ecpg等开发接口库

pl

过程语言接口和语法处理,如plpgsql,plperl,plpython等开发接口

port

libpgport公共库

template

提供不同编译平台下的编译参数

test

测试程序,通过make check开始测试

timezone

时区相关公共接口

tools

对工具使用的使用建议或配置,如win下编译,ci,editor,还有valgrind等等

tutorial

使用postgresql的基本SQL和步骤例程

结尾,谢谢浏览!


结尾

作者邮箱:[email protected]
如有错误或者疏漏欢迎指出,互相学习。大家有什么想要了解的,欢迎留言或发邮件,您的关注是我继续分享的最大动力。

注:未经同意,不得转载!

猜你喜欢

转载自blog.csdn.net/senllang/article/details/130303467