溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PostgreSQL:源碼目錄結(jié)構(gòu)

發(fā)布時(shí)間:2020-08-06 22:45:32 來源:ITPUB博客 閱讀:164 作者:Ryan_Bai 欄目:關(guān)系型數(shù)據(jù)庫

源碼結(jié)構(gòu)

PostgreSQL:源碼目錄結(jié)構(gòu)

  • aclocal.m4:config 用的文件的一部分

  • config/:config 用的文件的目錄

  • config.log:

  • configure:configure 文件

  • configure.in:configure 文件的雛形

  • contrib/:contribution 程序

  • COPYRIGHT:版權(quán)信息

  • doc/:文檔目錄

  • GUNMakefile:第一級(jí)目錄的 Makefile

  • GUNMakefile.in:Makefile 的雛形

  • HISTORY:修改歷史

  • INSTALL:安裝方法簡(jiǎn)要說明

  • Makefile:Makefile模版

  • README:簡(jiǎn)單說明

  • src/:源代碼目錄

    PostgreSQL:源碼目錄結(jié)構(gòu)

    • backend/:后端的源碼目錄

      PostgreSQL:源碼目錄結(jié)構(gòu)

      • access/:各種存儲(chǔ)訪問方法(在各個(gè)子目錄下) common(共同函數(shù))、gin (Generalized Inverted Index通用逆向索引)、gist (Generalized Search Tree通用索引)、 hash (哈希索引)、heap (heap的訪問方法)、index (通用索引函數(shù))、 nbtree (Btree函數(shù))、transam (事務(wù)處理)

      • bootstrap/:數(shù)據(jù)庫的初始化處理(initdb的時(shí)候)

      • catalog/:系統(tǒng)目錄

      • commands/:SELECT/INSERT/UPDATE/DELETE以為的SQL文的處理

      • common.mk:

      • executor/:執(zhí)行器(訪問的執(zhí)行)

      • foreign/:FDW(Foreign Data Wrapper)處理

      • lib/:共同函數(shù)

      • libpq/:前端/后端通信處理

      • main/:postgres的主函數(shù)

      • Makefile makefile

      • nls.mk

      • nodes/:構(gòu)文樹節(jié)點(diǎn)相關(guān)的處理函數(shù)

      • optimizer/:優(yōu)化器

      • parser/:SQL構(gòu)文解析器

      • po

      • port/:平臺(tái)相關(guān)的代碼

      • postgres

      • postmaster/:postmaster的主函數(shù) (常駐postgres)

      • regex/:正則處理

      • replication/:streaming replication

      • rewrite/:規(guī)則及視圖相關(guān)的重寫處理

      • snowball/:全文檢索相關(guān)(語干處理)

      • storage/ 共享內(nèi)存、磁盤上的存儲(chǔ)、緩存等全部一次/二次記錄管理(以下的目錄)buffer/(緩存管理)、 file/(文件)、freespace/(Fee Space Map管理) ipc/(進(jìn)程間通信)、large_object /(大對(duì)象的訪問函數(shù))、 lmgr/(鎖管理)、page/(頁面訪問相關(guān)函數(shù))、 smgr/(存儲(chǔ)管理器)

      • tcop/:postgres (數(shù)據(jù)庫引擎的進(jìn)程)的主要部分

      • tsearch/:全文檢索

      • utils/ 各種模塊(以下目錄) adt/(嵌入的數(shù)據(jù)類型)、cache/(緩存管理)、 error/(錯(cuò)誤處理)、fmgr/(函數(shù)管理)、hash/(hash函數(shù))、 init/(數(shù)據(jù)庫初始化、postgres的初期處理)、 mb/(多字節(jié)文字處理)、misc/(其他)、mmgr/(內(nèi)存的管理函數(shù))、 resowner/(查詢處理中的數(shù)據(jù)(buffer pin及表鎖)的管理)、sort/(排序處理)、time/(事務(wù)的 MVCC 管理)

    • bcc32.mak:Win32 端口用的 Makefile (Borland C++ 用)

    • bin/:psql 等 UNIX命令的代碼

    • common:

    • DEVELOPERS:面向開發(fā)人員的注視

    • fe_utils

    • include/:頭文件

      backend等的代碼的頭文件包含在include里面。其組織雖然與backend的目錄結(jié)構(gòu)類似,但是并非完全相同,基本上來說下一級(jí)的子目錄不再設(shè)下一級(jí)目錄。

      PostgreSQL:源碼目錄結(jié)構(gòu)

    • interfaces/:前端相關(guān)的庫的代碼

    • Makefile:Makefile

    • Makefile.global:make 的設(shè)定值(從configure生成的)

    • Makefile.global.in:Configure使用的Makefile.global的雛形

    • Makefile.port:平臺(tái)相關(guān)的make的設(shè)定值,實(shí)際是一個(gè)到makefile/Makefile的連接. (從configure生成的)

    • makefiles/:平臺(tái)相關(guān)的make 的設(shè)置值

    • Makefile.shlib:共享庫用的Makefile

    • nls-global.mk:信息目錄用的Makefile文件的規(guī)則

    • pl/:存儲(chǔ)過程語言的代碼

    • port/:平臺(tái)移植相關(guān)的代碼

    • template/:平臺(tái)相關(guān)的設(shè)置值

    • test/:各種測(cè)試腳本

    • timezone/:時(shí)區(qū)相關(guān)代碼

    • tools/:各自開發(fā)工具和文檔

    • tutorial/:教程

    • win32.mak Win32 端口用的 Makefile (Visual C++ 用)

模塊調(diào)用關(guān)系

PostgreSQL:源碼目錄結(jié)構(gòu)

  • access:提供各種存取方法,支持堆、索引等對(duì)數(shù)據(jù)的存取。

  • bootstrap:用于支持Bootstrap運(yùn)行模式,該模式主要用來創(chuàng)建初始的模板數(shù)據(jù)庫。

  • catalog:系統(tǒng)表操作,包含用于操作系統(tǒng)表的專用函數(shù)。

  • commands:執(zhí)行非計(jì)劃查詢的SQL命令,如創(chuàng)建表命令等。

  • executor:執(zhí)行器,執(zhí)行來自O(shè)ptimizer的查詢計(jì)劃。

  • libpq:C/C++的庫函數(shù),處理與客戶端間的通信,幾乎所有的模塊都依賴它。

  • main:主程序模塊,它負(fù)責(zé)將控制權(quán)轉(zhuǎn)到Postmaster進(jìn)程或Postgres進(jìn)程。

  • nodes:定義系統(tǒng)內(nèi)部所用到的節(jié)點(diǎn)、鏈表等結(jié)構(gòu),以及處理這些結(jié)構(gòu)的函數(shù)。

  • optimizer:優(yōu)化器,根據(jù)查詢樹創(chuàng)建最優(yōu)的查詢路徑和查詢計(jì)劃。

  • parser:編譯器,將SQL查詢轉(zhuǎn)化為內(nèi)部查詢樹。

  • port:平臺(tái)兼容性處理相關(guān)的函數(shù)。

  • postmaster:監(jiān)聽用戶請(qǐng)求的守護(hù)進(jìn)程,并控制Postgres進(jìn)程的啟動(dòng)和終止。

  • regex:正規(guī)表達(dá)式庫及相關(guān)函數(shù),用于支持正規(guī)表達(dá)式處理。

  • rewrite:查詢重寫,根據(jù)規(guī)則系統(tǒng)對(duì)查詢進(jìn)行重寫。

  • storage:管理各種類型的存儲(chǔ)系統(tǒng)(如磁盤、閃存等)。

  • tcop:Postgres服務(wù)進(jìn)程的主要處理部分,它調(diào)用Parser、Optimizer、Executor和Commands中的函數(shù)來執(zhí)行客戶端提交的查詢

  • tsearch:全文檢索。

  • utils:各種支持函數(shù),如錯(cuò)誤報(bào)告、各種初始化操作等。

  • Initdb:初始化數(shù)據(jù)庫集簇。

  • Psql:數(shù)據(jù)庫交互工具。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI