- 专栏内容: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和步骤例程 |
结尾,谢谢浏览!
结尾
作者邮箱:study@senllang.onaliyun.com
如有错误或者疏漏欢迎指出,互相学习。大家有什么想要了解的,欢迎留言或发邮件,您的关注是我继续分享的最大动力。
注:未经同意,不得转载!