4 This part contains assorted information that might be of use to
9 51. Overview of PostgreSQL Internals
11 51.1. The Path of a Query
12 51.2. How Connections Are Established
13 51.3. The Parser Stage
14 51.4. The PostgreSQL Rule System
15 51.5. Planner/Optimizer
35 52.16. pg_db_role_setting
40 52.21. pg_event_trigger
42 52.23. pg_foreign_data_wrapper
43 52.24. pg_foreign_server
44 52.25. pg_foreign_table
50 52.31. pg_largeobject_metadata
55 52.36. pg_parameter_acl
56 52.37. pg_partitioned_table
60 52.41. pg_publication_namespace
61 52.42. pg_publication_rel
63 52.44. pg_replication_origin
68 52.49. pg_shdescription
71 52.52. pg_statistic_ext
72 52.53. pg_statistic_ext_data
73 52.54. pg_subscription
74 52.55. pg_subscription_rel
79 52.60. pg_ts_config_map
84 52.65. pg_user_mapping
90 53.3. pg_available_extensions
91 53.4. pg_available_extension_versions
92 53.5. pg_backend_memory_contexts
95 53.8. pg_file_settings
97 53.10. pg_hba_file_rules
98 53.11. pg_ident_file_mappings
103 53.16. pg_prepared_statements
104 53.17. pg_prepared_xacts
105 53.18. pg_publication_tables
106 53.19. pg_replication_origin_status
107 53.20. pg_replication_slots
114 53.27. pg_shmem_allocations
115 53.28. pg_shmem_allocations_numa
118 53.31. pg_stats_ext_exprs
120 53.33. pg_timezone_abbrevs
121 53.34. pg_timezone_names
123 53.36. pg_user_mappings
125 53.38. pg_wait_events
127 54. Frontend/Backend Protocol
131 54.3. SASL Authentication
132 54.4. Streaming Replication Protocol
133 54.5. Logical Streaming Replication Protocol
134 54.6. Message Data Types
135 54.7. Message Formats
136 54.8. Error and Notice Message Fields
137 54.9. Logical Replication Message Formats
138 54.10. Summary of Changes since Protocol 2.0
140 55. PostgreSQL Coding Conventions
143 55.2. Reporting Errors Within the Server
144 55.3. Error Message Style Guide
145 55.4. Miscellaneous Coding Conventions
147 56. Native Language Support
149 56.1. For the Translator
150 56.2. For the Programmer
152 57. Writing a Procedural Language Handler
153 58. Writing a Foreign Data Wrapper
155 58.1. Foreign Data Wrapper Functions
156 58.2. Foreign Data Wrapper Callback Routines
157 58.3. Foreign Data Wrapper Helper Functions
158 58.4. Foreign Data Wrapper Query Planning
159 58.5. Row Locking in Foreign Data Wrappers
161 59. Writing a Table Sampling Method
163 59.1. Sampling Method Support Functions
165 60. Writing a Custom Scan Provider
167 60.1. Creating Custom Scan Paths
168 60.2. Creating Custom Scan Plans
169 60.3. Executing Custom Scans
171 61. Genetic Query Optimizer
173 61.1. Query Handling as a Complex Optimization Problem
174 61.2. Genetic Algorithms
175 61.3. Genetic Query Optimization (GEQO) in PostgreSQL
176 61.4. Further Reading
178 62. Table Access Method Interface Definition
179 63. Index Access Method Interface Definition
181 63.1. Basic API Structure for Indexes
182 63.2. Index Access Method Functions
184 63.4. Index Locking Considerations
185 63.5. Index Uniqueness Checks
186 63.6. Index Cost Estimation Functions
188 64. Write Ahead Logging for Extensions
190 64.1. Generic WAL Records
191 64.2. Custom WAL Resource Managers
193 65. Built-in Index Access Methods
197 65.3. SP-GiST Indexes
202 66. Database Physical Storage
204 66.1. Database File Layout
208 66.5. The Initialization Fork
209 66.6. Database Page Layout
210 66.7. Heap-Only Tuples (HOT)
212 67. Transaction Processing
214 67.1. Transactions and Identifiers
215 67.2. Transactions and Locking
216 67.3. Subtransactions
217 67.4. Two-Phase Transactions
219 68. System Catalog Declarations and Initial Contents
221 68.1. System Catalog Declaration Rules
222 68.2. System Catalog Initial Data
223 68.3. BKI File Format
225 68.5. Structure of the Bootstrap BKI File
228 69. How the Planner Uses Statistics
230 69.1. Row Estimation Examples
231 69.2. Multivariate Statistics Examples
232 69.3. Planner Statistics and Security
234 70. Backup Manifest Format
236 70.1. Backup Manifest Top-level Object
237 70.2. Backup Manifest File Object
238 70.3. Backup Manifest WAL Range Object