postgresql 源码结构分析

news2024/12/25 12:53:46

 

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/453966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进销存管理系统和ERP的工作原理和实现方式有何不同?

一、ERP是什么? ERP即企业资源规划(Enterprise Resource Planning),是一种集成管理软件系统。它的目的是整合和规划各种企业资源和业务流程,包括财务、物流、采购、生产、销售等,以提高企业的管理效率和业…

Java -- IO流

IO流 主要用于读写数据 IO流按照流的方向可以分为以下两种: 输入流输出流 IO流按照操作文件类型可以分为以下两种: 字节流字符流 字节流可以操作所有类型的文件,而字符流只可以操作纯文本文件 #mermaid-svg-tfFZjSluOmEFUpyc {font-fam…

SVM-老师讲的真的很好!

支持向量机(Support Vector Machine) 如同逻辑回归一样,SVM是一个分类模型 目标 SVM解决分类模型的基本思路:什么是一个好的分类边界? SVM认为,好的分类决策边界应当是:类别边界的距离应当尽可能的远 目标函数 拉格朗日乘子法 那么我们的公式就可以写为

SIP协议之通话转接

一、介绍 在SIP协议应用中,有一个常用的功能叫通话转接,用于将接通后的通话转给第三方接听处理。 二、原理及流程 转接是通过SIP协议的一个扩展请求方法REFER实现的。呼叫转接由RFC5589(Session Initiation Protocol (SIP) Call Control - Transfer)定义…

(数字图像处理MATLAB+Python)第六章图像平滑-第一节:图像平滑概述和空间域平滑滤波

文章目录 一:图像中的噪声(1)图像噪声分类(2)图像噪声的数学模型(3)程序 二:空间域平滑滤波(1)均值滤波A:均值滤波原理B:示例C&#x…

203、【栈与队列】leetcode ——剑指 Offer II 040. 矩阵中最大的矩形 / 85. 最大矩形:暴力+单调栈(C++/Pyhont版本)

题目描述 Problem: 剑指 Offer II 040. 矩阵中最大的矩形 文章目录 题目描述解法一:暴力解法思路解题方法复杂度Code 解法二:单调栈解法 解法一:暴力解法 思路 首先, 按行获取到达某一元素位置时,之前与当前连续1的个…

【JUC高并发编程】—— 初见JUC

一、JUC 概述 什么是JUC JUC 是 Java并发编程的缩写,指的是 Java.util.concurrent 即Java工具集下的并发编程库 【说白了就是处理线程的工具包】 JUC提供了一套并发编程工具,这些工具是Java 5以后引入的,使得Java开发者可以更加方便地编写…

86页2023年新型智慧城市顶层设计规划解决方案(ppt可编辑)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 整体架构 智慧城市建设从顶层设计入手,结合软硬件资源整合能力,为公众提供全生命周期一站式服务管理。智慧城市的整体框架分为发展战略层、技术实施层…

HuggingFace入门教程--环境搭建

HuggingFace中文直译为”拥抱脸“,是最近非常火爆的一个人工智能社区,官网地址是:https://huggingface.co/ .关于HuggingFace的相关介绍大家可以自行百度。本文主要为刚入人工智能坑的小白指下路,同时也是逼着自己记录下学习过程中…

Cuckoo Filter

其他判重数据结构 Bloom Filter 无法支持删除和计数的功能,需要更多的存储空间来存储数据 因为在CS中,删除和计数是常见的操作,但是这会对布隆过滤器的存储空间产生影响,同样为了实现这一操作,需要更多的存储空间 数…

vue---父子、兄弟、跨层级关系组件通信

目录 1、props / $emit (父子通信) 2、$root、 $parent / $children(vue3废弃) 3、ref/$refs 4、EventBus ($emit / $on) 5、provideinject(依赖注入) 6、$attrs $listeners(透传&#x…

电子政务网络智慧运维方案

随着电子政务建设的深入,我国政府的信息化建设已经具备了一定的规模,形成了部、省、市、县四级体系;大型政务服务事项、公文流转、行政审批、费税征缴、信息公开、网格化社会管理、三网融合、智慧城市建设等大量政府核心业务越来越依赖信息化…

Linux 静态库的制作与使用

目录 静态库1、 什么是库2、 静态库的制作2.1 命名规则与制作规则 3、 静态库的使用 静态库 1、 什么是库 库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供使用者可以直接拿来用的变量、函数或类。库是一种特殊的程序&#xff…

atbetaflight——指定commit号编译固件

一、说明 在开发过程中,比如成员A上传了一次code,而成员B需要测试本次提交的code,但是由于没有搭建ci,成员B就需要自己拉code编译,本文将详细说明编译步骤; 二、步骤 1、使用vscode打开code 在使用git clone下载到code后的文件…

HDCTF2023复盘

文章目录 前言 CryptoNormal_rsaNormal_rsa(Revenge)(低指数e攻击)Math_RSA(二次剩余)爬过小山的看云(hill,云影) MischardMisc(base64)MasterMisc(crc,wav)ExtremeMisc(zip爆破,明文攻击) Reverseeasy_re(Upx,base64)easyasm(xor) WebWelcome To HDCTF 2023(JSFuck)SearchMast…

『C++』异常详解

「前言」文章是关于C异常方面,下面开始讲解 「归属专栏」C嘎嘎 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」 「每篇一句」 少年的肩膀,就该这样才对嘛, 什么都不要急, 先挑起清风明月、杨柳依依和草长…

华为OD机试真题(Java),吃到最多的刚好合适的菜(100%通过+复盘思路)

一、题目描述 入职后,导师会请你吃饭,你选择了火锅。 火锅里会在不同时间下很多菜。 不同食材要煮不同的时间,才能变得刚好合适。你希望吃到最多的刚好合适的菜,但你的手速不够快,用m代表手速,每次下手捞…

作业3综合练习

综合练习: 要求:请给openlab搭建web网站 网站需求: 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student #更改配置文件 (虚拟主机标签…

嵌入式51单片机04-矩阵按键系列

文章目录 矩阵按键一、矩阵按键基础知识二、矩阵按键系列代码1. 矩阵按键操作(显示数字)(1)仿真电路图(2)源代码(3)实验结果 2. 矩阵按键操作(控制数码管)&am…

STM32的GPIO重映射配置(解除下载端口的重映射)

在设计一个项目的时候,因为用的是STMF103C8T6,引脚较少,所以把可以用的GPIO都需要用上,但是由于下载的引脚在出生时,被厂家已经配置好了,所以我们得利用软件配置一下,使引脚变成正常的GPIO。 手…