Internals
- Table of Contents
 - 48. Overview of PostgreSQL Internals
 - 
     
- 48.1. The Path of a Query
 - 48.2. How Connections are Established
 - 48.3. The Parser Stage
 - 48.4. The PostgreSQL Rule System
 - 48.5. Planner/Optimizer
 - 48.6. Executor
 
 - 49. System Catalogs
 - 
     
- 49.1. Overview
 - 49.2. pg_aggregate
 - 49.3. pg_am
 - 49.4. pg_amop
 - 49.5. pg_amproc
 - 49.6. pg_attrdef
 - 49.7. pg_attribute
 - 49.8. pg_authid
 - 49.9. pg_auth_members
 - 49.10. pg_cast
 - 49.11. pg_class
 - 49.12. pg_collation
 - 49.13. pg_constraint
 - 49.14. pg_conversion
 - 49.15. pg_database
 - 49.16. pg_db_role_setting
 - 49.17. pg_default_acl
 - 49.18. pg_depend
 - 49.19. pg_description
 - 49.20. pg_enum
 - 49.21. pg_event_trigger
 - 49.22. pg_extension
 - 49.23. pg_foreign_data_wrapper
 - 49.24. pg_foreign_server
 - 49.25. pg_foreign_table
 - 49.26. pg_index
 - 49.27. pg_inherits
 - 49.28. pg_language
 - 49.29. pg_largeobject
 - 49.30. pg_largeobject_metadata
 - 49.31. pg_namespace
 - 49.32. pg_opclass
 - 49.33. pg_operator
 - 49.34. pg_opfamily
 - 49.35. pg_pltemplate
 - 49.36. pg_policy
 - 49.37. pg_proc
 - 49.38. pg_range
 - 49.39. pg_replication_origin
 - 49.40. pg_rewrite
 - 49.41. pg_seclabel
 - 49.42. pg_shdepend
 - 49.43. pg_shdescription
 - 49.44. pg_shseclabel
 - 49.45. pg_statistic
 - 49.46. pg_tablespace
 - 49.47. pg_transform
 - 49.48. pg_trigger
 - 49.49. pg_ts_config
 - 49.50. pg_ts_config_map
 - 49.51. pg_ts_dict
 - 49.52. pg_ts_parser
 - 49.53. pg_ts_template
 - 49.54. pg_type
 - 49.55. pg_user_mapping
 - 49.56. System Views
 - 49.57. pg_available_extensions
 - 49.58. pg_available_extension_versions
 - 49.59. pg_cursors
 - 49.60. pg_file_settings
 - 49.61. pg_group
 - 49.62. pg_indexes
 - 49.63. pg_locks
 - 49.64. pg_matviews
 - 49.65. pg_policies
 - 49.66. pg_prepared_statements
 - 49.67. pg_prepared_xacts
 - 49.68. pg_replication_origin_status
 - 49.69. pg_replication_slots
 - 49.70. pg_roles
 - 49.71. pg_rules
 - 49.72. pg_seclabels
 - 49.73. pg_settings
 - 49.74. pg_shadow
 - 49.75. pg_stats
 - 49.76. pg_tables
 - 49.77. pg_timezone_abbrevs
 - 49.78. pg_timezone_names
 - 49.79. pg_user
 - 49.80. pg_user_mappings
 - 49.81. pg_views
 
 - 50. Frontend/Backend Protocol
 - 
     
- 50.1. Overview
 - 50.2. Message Flow
 - 50.3. Streaming Replication Protocol
 - 50.4. Message Data Types
 - 50.5. Message Formats
 - 50.6. Error and Notice Message Fields
 - 50.7. Summary of Changes since Protocol 2.0
 
 - 51. PostgreSQL Coding Conventions
 - 
     
- 51.1. Formatting
 - 51.2. Reporting Errors Within the Server
 - 51.3. Error Message Style Guide
 
 - 52. Native Language Support
 - 
     
- 52.1. For the Translator
 - 52.2. For the Programmer
 
 - 53. Writing A Procedural Language Handler
 - 54. Writing A Foreign Data Wrapper
 - 55. Writing A Table Sampling Method
 - 56. Writing A Custom Scan Provider
 - 
     
- 56.1. Creating Custom Scan Paths
 - 56.2. Creating Custom Scan Plans
 - 56.3. Executing Custom Scans
 
 - 57. Genetic Query Optimizer
 - 58. Index Access Method Interface Definition
 - 
     
- 58.1. Catalog Entries for Indexes
 - 58.2. Index Access Method Functions
 - 58.3. Index Scanning
 - 58.4. Index Locking Considerations
 - 58.5. Index Uniqueness Checks
 - 58.6. Index Cost Estimation Functions
 
 - 59. GiST Indexes
 - 
     
- 59.1. Introduction
 - 59.2. Built-in Operator Classes
 - 59.3. Extensibility
 - 59.4. Implementation
 - 59.5. Examples
 
 - 60. SP-GiST Indexes
 - 
     
- 60.1. Introduction
 - 60.2. Built-in Operator Classes
 - 60.3. Extensibility
 - 60.4. Implementation
 - 60.5. Examples
 
 - 61. GIN Indexes
 - 
     
- 61.1. Introduction
 - 61.2. Built-in Operator Classes
 - 61.3. Extensibility
 - 61.4. Implementation
 - 61.5. GIN Tips and Tricks
 - 61.6. Limitations
 - 61.7. Examples
 
 - 62. BRIN Indexes
 - 
     
- 62.1. Introduction
 - 62.2. Built-in Operator Classes
 - 62.3. Extensibility
 
 - 63. Database Physical Storage
 - 
     
- 63.1. Database File Layout
 - 63.2. TOAST
 - 63.3. Free Space Map
 - 63.4. Visibility Map
 - 63.5. The Initialization Fork
 - 63.6. Database Page Layout
 
 - 64. BKI Backend Interface
 - 
     
- 64.1. BKI File Format
 - 64.2. BKI Commands
 - 64.3. Structure of the Bootstrap BKI File
 - 64.4. Example
 
 - 65. How the Planner Uses Statistics