Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

PostgreSQL: source code directory structure

2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)06/01 Report--

Source structure

Part of a file used by aclocal.m4:config

Directory of files used for config/:config

Config.log:

Configure:configure file

The prototype of configure.in:configure file

Contrib/:contribution program

COPYRIGHT: copyright information

Doc/: document directory

GUNMakefile: Makefile of the first-level directory

The embryonic form of GUNMakefile.in:Makefile

HISTORY: modifying history

INSTALL: brief description of installation method

Makefile:Makefile template

README: simple description

Src/: source code directory

Source code directory of backend/: backend

Access/: various storage access methods (under various subdirectories) common (common function), gin (Generalized Inverted Index general inverse index), gist (Generalized Search Tree general index), hash (hash index), heap (heap access method), index (general index function), nbtree (Btree function), transam (transaction processing)

Initialization of bootstrap/: database (when initdb)

Catalog/: system directory

The processing of SQL text that commands/:SELECT/INSERT/UPDATE/DELETE thought

Common.mk:

Executor/: Actuator (execution of access)

Foreign/:FDW (Foreign Data Wrapper) processing

Lib/: common function

Libpq/: front-end / back-end communication processing

The main function of main/:postgres

Makefile makefile

Nls.mk

The processing functions related to the nodes of the nodes/: text Tree

Optimizer/: optimizer

Parser/:SQL composition parser

Po

Port/: platform related code

Postgres

Main function of postmaster/:postmaster (resident postgres)

Regex/: regular processing

Replication/:streaming replication

Rewrite/: rules and view-related rewriting processing

Related to snowball/: full-text retrieval (stem processing)

Storage/ shared memory, storage on disk, cache, etc. All primary / secondary record management (the following directories) buffer/ (cache management), file/ (files), freespace/ (Fee Space Map management) ipc/ (interprocess communication), large_object / (access functions for large objects), lmgr/ (lock management), page/ (page access related functions), smgr/ (storage manager)

The main part of tcop/:postgres (the process of the database engine)

Tsearch/: full-text search

Utils/ various modules (following directories) adt/ (embedded data types), cache/ (cache management), error/ (error handling), fmgr/ (function management), hash/ (hash functions), init/ (database initialization, initial processing of postgres), mb/ (multi-byte word processing), misc/ (other), mmgr/ (memory management functions), resowner/ (management of data in query processing (buffer pin and table locks), Sort/ (sort processing), time/ (MVCC management of transactions)

Makefile for bcc32.mak:Win32 port (for Borland C++)

The code of UNIX commands such as bin/:psql

Common:

DEVELOPERS: gaze for developers

Fe_utils

Include/: header file

The header file of the code for backend, etc., is contained in include. Although its organization is similar to the directory structure of backend, it is not exactly the same. Basically, subdirectories at the next level are no longer set up at the next level.

Code for libraries related to the interfaces/: front end

Makefile:Makefile

Set value of Makefile.global:make (generated from configure)

The prototype of Makefile.global used by Makefile.global.in:Configure

Makefile.port: the set value of the platform-related make is actually a connection to makefile/Makefile. (generated from configure)

Setting value of make related to makefiles/: platform

Makefile.shlib: Makefile for shared libraries

Nls-global.mk: rules for Makefile files used in information directories

The code of pl/: stored procedure language

Code related to porting port/: platform

Settings related to template/: platform

Test/: various test scripts

Timezone/: time zone related code

Tools/: 's respective development tools and documentation

Tutorial/: tutorial

Makefile for win32.mak Win32 port (for Visual C++)

Module call relationship

Access: provides a variety of access methods to support data access such as heap, index, etc.

Bootstrap: used to support the Bootstrap run mode, which is mainly used to create the initial template database.

Catalog: system table operations, including special functions for operating system tables.

Commands: SQL commands that execute unplanned queries, such as the create table command.

Executor: executor that executes the query plan from Optimizer.

Libpq:C/C++ 's library function, which handles communication with the client, is dependent on almost all modules.

Main: the main program module that transfers control to the Postmaster process or the Postgres process.

Nodes: defines the nodes, linked lists, and other structures used within the system, and the functions that deal with these structures.

Optimizer: optimizer that creates the optimal query path and query plan based on the query tree.

Parser: compiler that converts SQL queries into internal query trees.

Port: platform compatibility handles related functions.

Postmaster: listens to daemons requested by users and controls the startup and termination of Postgres processes.

Regex: regular expression library and related functions to support regular expression processing.

Rewrite: query rewriting, query rewriting according to the rule system.

Storage: manages various types of storage systems (such as disks, flash memory, etc.).

The main processing part of a tcop:Postgres service process that calls functions in Parser, Optimizer, Executor, and Commands to execute queries submitted by the client

Tsearch: full-text search.

Utils: various functions are supported, such as error reporting, various initialization operations, etc.

Initdb: initializes the database cluster.

Psql: database interaction tool.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report