Home
About
Download
Documentation
Community
Developers
Support
Donate
Your account
November 14, 2024:
PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 Released!
Documentation
→
PostgreSQL 9.1
Supported Versions:
Current
(
17
) /
16
/
15
/
14
/
13
Development Versions:
devel
Unsupported versions:
12
/
11
/
10
/
9.6
/
9.5
/
9.4
/
9.3
/
9.2
/
9.1
/
9.0
/
8.4
/
8.3
/
8.2
/
8.1
/
8.0
/
7.4
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the
current
version, or one of the other supported versions listed above instead.
PostgreSQL 9.1.24 Documentation
Prev
Home
Next
VII. Internals
This part contains assorted information that might be of use to
PostgreSQL
developers.
Table of Contents
44.
Overview of PostgreSQL Internals
44.1.
The Path of a Query
44.2.
How Connections are Established
44.3.
The Parser Stage
44.4.
The
PostgreSQL
Rule System
44.5.
Planner/Optimizer
44.6.
Executor
45.
System Catalogs
45.1.
Overview
45.2.
pg_aggregate
45.3.
pg_am
45.4.
pg_amop
45.5.
pg_amproc
45.6.
pg_attrdef
45.7.
pg_attribute
45.8.
pg_authid
45.9.
pg_auth_members
45.10.
pg_cast
45.11.
pg_class
45.12.
pg_constraint
45.13.
pg_collation
45.14.
pg_conversion
45.15.
pg_database
45.16.
pg_db_role_setting
45.17.
pg_default_acl
45.18.
pg_depend
45.19.
pg_description
45.20.
pg_enum
45.21.
pg_extension
45.22.
pg_foreign_data_wrapper
45.23.
pg_foreign_server
45.24.
pg_foreign_table
45.25.
pg_index
45.26.
pg_inherits
45.27.
pg_language
45.28.
pg_largeobject
45.29.
pg_largeobject_metadata
45.30.
pg_namespace
45.31.
pg_opclass
45.32.
pg_operator
45.33.
pg_opfamily
45.34.
pg_pltemplate
45.35.
pg_proc
45.36.
pg_rewrite
45.37.
pg_seclabel
45.38.
pg_shdepend
45.39.
pg_shdescription
45.40.
pg_statistic
45.41.
pg_tablespace
45.42.
pg_trigger
45.43.
pg_ts_config
45.44.
pg_ts_config_map
45.45.
pg_ts_dict
45.46.
pg_ts_parser
45.47.
pg_ts_template
45.48.
pg_type
45.49.
pg_user_mapping
45.50.
System Views
45.51.
pg_available_extensions
45.52.
pg_available_extension_versions
45.53.
pg_cursors
45.54.
pg_group
45.55.
pg_indexes
45.56.
pg_locks
45.57.
pg_prepared_statements
45.58.
pg_prepared_xacts
45.59.
pg_roles
45.60.
pg_rules
45.61.
pg_seclabels
45.62.
pg_settings
45.63.
pg_shadow
45.64.
pg_stats
45.65.
pg_tables
45.66.
pg_timezone_abbrevs
45.67.
pg_timezone_names
45.68.
pg_user
45.69.
pg_user_mappings
45.70.
pg_views
46.
Frontend/Backend Protocol
46.1.
Overview
46.2.
Message Flow
46.3.
Streaming Replication Protocol
46.4.
Message Data Types
46.5.
Message Formats
46.6.
Error and Notice Message Fields
46.7.
Summary of Changes since Protocol 2.0
47.
PostgreSQL Coding Conventions
47.1.
Formatting
47.2.
Reporting Errors Within the Server
47.3.
Error Message Style Guide
48.
Native Language Support
48.1.
For the Translator
48.2.
For the Programmer
49.
Writing A Procedural Language Handler
50.
Writing A Foreign Data Wrapper
50.1.
Foreign Data Wrapper Functions
50.2.
Foreign Data Wrapper Callback Routines
51.
Genetic Query Optimizer
51.1.
Query Handling as a Complex Optimization Problem
51.2.
Genetic Algorithms
51.3.
Genetic Query Optimization (
GEQO
) in PostgreSQL
51.4.
Further Reading
52.
Index Access Method Interface Definition
52.1.
Catalog Entries for Indexes
52.2.
Index Access Method Functions
52.3.
Index Scanning
52.4.
Index Locking Considerations
52.5.
Index Uniqueness Checks
52.6.
Index Cost Estimation Functions
53.
GiST Indexes
53.1.
Introduction
53.2.
Extensibility
53.3.
Implementation
53.4.
Examples
54.
GIN Indexes
54.1.
Introduction
54.2.
Extensibility
54.3.
Implementation
54.4.
GIN Tips and Tricks
54.5.
Limitations
54.6.
Examples
55.
Database Physical Storage
55.1.
Database File Layout
55.2.
TOAST
55.3.
Free Space Map
55.4.
Visibility Map
55.5.
The Initialization Fork
55.6.
Database Page Layout
56.
BKI
Backend Interface
56.1.
BKI
File Format
56.2.
BKI
Commands
56.3.
Structure of the Bootstrap
BKI
File
56.4.
Example
57.
How the Planner Uses Statistics
57.1.
Row Estimation Examples
Prev
Home
Next
postmaster
Overview of PostgreSQL Internals