postgresql 源码结构分析

这篇具有很好参考价值的文章主要介绍了postgresql 源码结构分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

  • 专栏内容: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
如有错误或者疏漏欢迎指出,互相学习。大家有什么想要了解的,欢迎留言或发邮件,您的关注是我继续分享的最大动力。

注:未经同意,不得转载!文章来源地址https://www.toymoban.com/news/detail-423215.html

到了这里,关于postgresql 源码结构分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PG-DBA培训07:PostgreSQL体系结构深入与源码解析

    PostgreSQL体系结构深入解析,PostgreSQL数据库源码解析,initdb源码解析 PostgreSQL数据库体系架构 PostgreSQL数据库存储结构 PostgreSQL数据库进程结构 PostgreSQL数据库内存结构 PostgreSQL数据库源码解析 使用gdb跟踪分析PostgreSQL源码 PostgreSQL源码解析之initdb初始化过程 PostgreSQL源码解析之PG启动

    2024年02月15日
    浏览(92)
  • postgresql 内核源码分析 btree索引的增删查代码基本原理流程分析,索引膨胀的原因在这里

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 ​ 开源贡献 : toadb开源库 个人主页 :我的主页 管理社区 :开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 在postgresql最常用的索引就是btree,它支持范围和等值查询。 本文主要介绍

    2024年02月11日
    浏览(50)
  • postgresql 内核源码分析 btree索引插入分析,索引页面分裂流程,多举措进行并发优化,对异常进行保护处理

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 ​ 开源贡献 : toadb开源库 个人主页 :我的主页 管理社区 :开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. B树索引在PostgreSQL中得到了广泛应用,它是一种自平衡树数据结构,可以维

    2024年02月08日
    浏览(64)
  • Postgresql源码(110)分析dsm动态共享内存分配与共享内存mq实例(dsm/toc接口备忘录)

    相关 《Postgresql源码(90)共享内存申请CreateSharedMemoryAndSemaphores》 《Linux内存映射函数mmap与匿名内存块》 《Linux共享内存与子进程继承》 用dsm框架的流程 评估共享内存大小:多次用shm_toc_estimate_chunk、shm_toc_estimate_keys向estimate中增加数据结构,最后用shm_toc_estimate得出刚才增加

    2024年02月14日
    浏览(60)
  • 【三十天精通 Vue 3】 专栏内容介绍

    全网最火Vue3专栏 欢迎来到全网最火的 Vue 3 专栏,一场深度探索 Vue 3 前端框架的盛宴正式开启!无论你是 Vue 新手还是经验丰富的开发者,这里都将成为你深入学习和掌握 Vue 3 的不二之选。我们带你踏上一段令人激动的学习之旅,从入门到高级,逐步揭开 Vue 3 的神秘面纱。

    2024年02月09日
    浏览(52)
  • postgresql 内核源码分析 表锁relation lock的使用,session lock会话锁的应用场景,操作表不再困难

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 个人主页 :我的主页 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. ================================================================== 当表打开,或者操作表时,都需要对表relation 进行加锁,表锁定义了8种级互

    2024年02月16日
    浏览(50)
  • 源码分析——ConcurrentHashMap源码+底层数据结构分析

    1. 存储结构 Java 7 中 ConcurrentHashMap 的存储结构如上图,ConcurrnetHashMap 由很多个 Segment 组合,而每一个 Segment 是一个类似于 HashMap 的结构,所以每一个 HashMap 的内部可以进行扩容。但是 Segment 的个数一旦 初始化就不能改变 ,默认 Segment 的个数是 16 个,你也可以认为 ConcurrentH

    2024年02月13日
    浏览(52)
  • Vector-CAPL 自动化探索 专栏内容介绍

    🚀 欢迎来到 “Vector-CAPL 自动化探索” 专栏,我是陈书予,将带您踏上一段充满创新的旅程,深入探讨如何利用Vector-CAPL(vTESTStudio)实现自动化测试的无限可能。 vTESTstudio测试用例概述: 状态图编辑器: 测试表编辑器: CAPL编辑器: 追溯矩阵效果图: 🔍 专栏亮点: 在这

    2024年02月13日
    浏览(40)
  • 【SA8295P 源码分析】14 - Passthrough配置文件 /mnt/vm/images/linux-la.config 内容分析

    【源码分析】 因为一些原因,本文需要移除, 对于已经购买的兄弟,不用担心,不是跑路, 我会继续持续提供技术支持, 有什么模块想学习的,或者有什么问题有疑问的, 请私聊我,我们 +VX 沟通技术问题,一起学习,一起进步 接下来,我一一私聊已经购买的兄弟添加V

    2024年02月12日
    浏览(37)
  • 源码分析——HashMap(JDK1.8)源码+底层数据结构分析

    HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包