This part contains assorted information that might be of use to PostgreSQL developers.
Table of Contents
51. Overview of PostgreSQL Internals : 51.1. The Path of a Query
[51.2. How Connections are Established](connect-estab.md)
[51.3. The Parser Stage](parser-stage.md)
[51.4. The PostgreSQL Rule System](rule-system.md)
[51.5. Planner/Optimizer](planner-optimizer.md)
[51.6. Executor](executor.md)
52. System Catalogs : 52.1. Overview
[52.2. `pg_aggregate`](catalog-pg-aggregate.md)
[52.3. `pg_am`](catalog-pg-am.md)
[52.4. `pg_amop`](catalog-pg-amop.md)
[52.5. `pg_amproc`](catalog-pg-amproc.md)
[52.6. `pg_attrdef`](catalog-pg-attrdef.md)
[52.7. `pg_attribute`](catalog-pg-attribute.md)
[52.8. `pg_authid`](catalog-pg-authid.md)
[52.9. `pg_auth_members`](catalog-pg-auth-members.md)
[52.10. `pg_cast`](catalog-pg-cast.md)
[52.11. `pg_class`](catalog-pg-class.md)
[52.12. `pg_collation`](catalog-pg-collation.md)
[52.13. `pg_constraint`](catalog-pg-constraint.md)
[52.14. `pg_conversion`](catalog-pg-conversion.md)
[52.15. `pg_database`](catalog-pg-database.md)
[52.16. `pg_db_role_setting`](catalog-pg-db-role-setting.md)
[52.17. `pg_default_acl`](catalog-pg-default-acl.md)
[52.18. `pg_depend`](catalog-pg-depend.md)
[52.19. `pg_description`](catalog-pg-description.md)
[52.20. `pg_enum`](catalog-pg-enum.md)
[52.21. `pg_event_trigger`](catalog-pg-event-trigger.md)
[52.22. `pg_extension`](catalog-pg-extension.md)
[52.23. `pg_foreign_data_wrapper`](catalog-pg-foreign-data-wrapper.md)
[52.24. `pg_foreign_server`](catalog-pg-foreign-server.md)
[52.25. `pg_foreign_table`](catalog-pg-foreign-table.md)
[52.26. `pg_index`](catalog-pg-index.md)
[52.27. `pg_inherits`](catalog-pg-inherits.md)
[52.28. `pg_init_privs`](catalog-pg-init-privs.md)
[52.29. `pg_language`](catalog-pg-language.md)
[52.30. `pg_largeobject`](catalog-pg-largeobject.md)
[52.31. `pg_largeobject_metadata`](catalog-pg-largeobject-metadata.md)
[52.32. `pg_namespace`](catalog-pg-namespace.md)
[52.33. `pg_opclass`](catalog-pg-opclass.md)
[52.34. `pg_operator`](catalog-pg-operator.md)
[52.35. `pg_opfamily`](catalog-pg-opfamily.md)
[52.36. `pg_partitioned_table`](catalog-pg-partitioned-table.md)
[52.37. `pg_pltemplate`](catalog-pg-pltemplate.md)
[52.38. `pg_policy`](catalog-pg-policy.md)
[52.39. `pg_proc`](catalog-pg-proc.md)
[52.40. `pg_publication`](catalog-pg-publication.md)
[52.41. `pg_publication_rel`](catalog-pg-publication-rel.md)
[52.42. `pg_range`](catalog-pg-range.md)
[52.43. `pg_replication_origin`](catalog-pg-replication-origin.md)
[52.44. `pg_rewrite`](catalog-pg-rewrite.md)
[52.45. `pg_seclabel`](catalog-pg-seclabel.md)
[52.46. `pg_sequence`](catalog-pg-sequence.md)
[52.47. `pg_shdepend`](catalog-pg-shdepend.md)
[52.48. `pg_shdescription`](catalog-pg-shdescription.md)
[52.49. `pg_shseclabel`](catalog-pg-shseclabel.md)
[52.50. `pg_statistic`](catalog-pg-statistic.md)
[52.51. `pg_statistic_ext`](catalog-pg-statistic-ext.md)
[52.52. `pg_subscription`](catalog-pg-subscription.md)
[52.53. `pg_subscription_rel`](catalog-pg-subscription-rel.md)
[52.54. `pg_tablespace`](catalog-pg-tablespace.md)
[52.55. `pg_transform`](catalog-pg-transform.md)
[52.56. `pg_trigger`](catalog-pg-trigger.md)
[52.57. `pg_ts_config`](catalog-pg-ts-config.md)
[52.58. `pg_ts_config_map`](catalog-pg-ts-config-map.md)
[52.59. `pg_ts_dict`](catalog-pg-ts-dict.md)
[52.60. `pg_ts_parser`](catalog-pg-ts-parser.md)
[52.61. `pg_ts_template`](catalog-pg-ts-template.md)
[52.62. `pg_type`](catalog-pg-type.md)
[52.63. `pg_user_mapping`](catalog-pg-user-mapping.md)
[52.64. System Views](views-overview.md)
[52.65. `pg_available_extensions`](view-pg-available-extensions.md)
[52.66. `pg_available_extension_versions`](view-pg-available-extension-versions.md)
[52.67. `pg_config`](view-pg-config.md)
[52.68. `pg_cursors`](view-pg-cursors.md)
[52.69. `pg_file_settings`](view-pg-file-settings.md)
[52.70. `pg_group`](view-pg-group.md)
[52.71. `pg_hba_file_rules`](view-pg-hba-file-rules.md)
[52.72. `pg_indexes`](view-pg-indexes.md)
[52.73. `pg_locks`](view-pg-locks.md)
[52.74. `pg_matviews`](view-pg-matviews.md)
[52.75. `pg_policies`](view-pg-policies.md)
[52.76. `pg_prepared_statements`](view-pg-prepared-statements.md)
[52.77. `pg_prepared_xacts`](view-pg-prepared-xacts.md)
[52.78. `pg_publication_tables`](view-pg-publication-tables.md)
[52.79. `pg_replication_origin_status`](view-pg-replication-origin-status.md)
[52.80. `pg_replication_slots`](view-pg-replication-slots.md)
[52.81. `pg_roles`](view-pg-roles.md)
[52.82. `pg_rules`](view-pg-rules.md)
[52.83. `pg_seclabels`](view-pg-seclabels.md)
[52.84. `pg_sequences`](view-pg-sequences.md)
[52.85. `pg_settings`](view-pg-settings.md)
[52.86. `pg_shadow`](view-pg-shadow.md)
[52.87. `pg_stats`](view-pg-stats.md)
[52.88. `pg_tables`](view-pg-tables.md)
[52.89. `pg_timezone_abbrevs`](view-pg-timezone-abbrevs.md)
[52.90. `pg_timezone_names`](view-pg-timezone-names.md)
[52.91. `pg_user`](view-pg-user.md)
[52.92. `pg_user_mappings`](view-pg-user-mappings.md)
[52.93. `pg_views`](view-pg-views.md)
53. Frontend/Backend Protocol : 53.1. Overview
[53.2. Message Flow](protocol-flow.md)
[53.3. SASL Authentication](sasl-authentication.md)
[53.4. Streaming Replication Protocol](protocol-replication.md)
[53.5. Logical Streaming Replication Protocol](protocol-logical-replication.md)
[53.6. Message Data Types](protocol-message-types.md)
[53.7. Message Formats](protocol-message-formats.md)
[53.8. Error and Notice Message Fields](protocol-error-fields.md)
[53.9. Logical Replication Message Formats](protocol-logicalrep-message-formats.md)
[53.10. Summary of Changes since Protocol 2.0](protocol-changes.md)
54. PostgreSQL Coding Conventions : 54.1. Formatting
[54.2. Reporting Errors Within the Server](error-message-reporting.md)
[54.3. Error Message Style Guide](error-style-guide.md)
[54.4. Miscellaneous Coding Conventions](source-conventions.md)
55. Native Language Support : 55.1. For the Translator
[55.2. For the Programmer](nls-programmer.md)
56. Writing A Procedural Language Handler
57. Writing A Foreign Data Wrapper : 57.1. Foreign Data Wrapper Functions
[57.2. Foreign Data Wrapper Callback Routines](fdw-callbacks.md)
[57.3. Foreign Data Wrapper Helper Functions](fdw-helpers.md)
[57.4. Foreign Data Wrapper Query Planning](fdw-planning.md)
[57.5. Row Locking in Foreign Data Wrappers](fdw-row-locking.md)
58. Writing A Table Sampling Method : 58.1. Sampling Method Support Functions
59. Writing A Custom Scan Provider : 59.1. Creating Custom Scan Paths
[59.2. Creating Custom Scan Plans](custom-scan-plan.md)
[59.3. Executing Custom Scans](custom-scan-execution.md)
60. Genetic Query Optimizer : 60.1. Query Handling as a Complex Optimization Problem
[60.2. Genetic Algorithms](geqo-intro2.md)
[60.3. Genetic Query Optimization (GEQO) in PostgreSQL](geqo-pg-intro.md)
[60.4. Further Reading](geqo-biblio.md)
61. Index Access Method Interface Definition : 61.1. Basic API Structure for Indexes
[61.2. Index Access Method Functions](index-functions.md)
[61.3. Index Scanning](index-scanning.md)
[61.4. Index Locking Considerations](index-locking.md)
[61.5. Index Uniqueness Checks](index-unique-checks.md)
[61.6. Index Cost Estimation Functions](index-cost-estimation.md)
63. B-Tree Indexes : 63.1. Introduction
[63.2. Behavior of B-Tree Operator Classes](btree-behavior.md)
[63.3. B-Tree Support Functions](btree-support-funcs.md)
[63.4. Implementation](btree-implementation.md)
64. GiST Indexes : 64.1. Introduction
[64.2. Built-in Operator Classes](gist-builtin-opclasses.md)
[64.3. Extensibility](gist-extensibility.md)
[64.4. Implementation](gist-implementation.md)
[64.5. Examples](gist-examples.md)
65. SP-GiST Indexes : 65.1. Introduction
[65.2. Built-in Operator Classes](spgist-builtin-opclasses.md)
[65.3. Extensibility](spgist-extensibility.md)
[65.4. Implementation](spgist-implementation.md)
[65.5. Examples](spgist-examples.md)
66. GIN Indexes : 66.1. Introduction
[66.2. Built-in Operator Classes](gin-builtin-opclasses.md)
[66.3. Extensibility](gin-extensibility.md)
[66.4. Implementation](gin-implementation.md)
[66.5. GIN Tips and Tricks](gin-tips.md)
[66.6. Limitations](gin-limit.md)
[66.7. Examples](gin-examples.md)
67. BRIN Indexes : 67.1. Introduction
[67.2. Built-in Operator Classes](brin-builtin-opclasses.md)
[67.3. Extensibility](brin-extensibility.md)
68. Database Physical Storage : 68.1. Database File Layout
[68.2. TOAST](storage-toast.md)
[68.3. Free Space Map](storage-fsm.md)
[68.4. Visibility Map](storage-vm.md)
[68.5. The Initialization Fork](storage-init.md)
[68.6. Database Page Layout](storage-page-layout.md)
69. System Catalog Declarations and Initial Contents : 69.1. System Catalog Declaration Rules
[69.2. System Catalog Initial Data](system-catalog-initial-data.md)
[69.3. BKI File Format](bki-format.md)
[69.4. BKI Commands](bki-commands.md)
[69.5. Structure of the Bootstrap BKI File](bki-structure.md)
[69.6. BKI Example](bki-example.md)
70. How the Planner Uses Statistics : 70.1. Row Estimation Examples
[70.2. Multivariate Statistics Examples](multivariate-statistics-examples.md)
[70.3. Planner Statistics and Security](planner-stats-security.md)
