Internals
- Table of Contents
- 49. Overview of PostgreSQL Internals
-
- 49.1. The Path of a Query
- 49.2. How Connections are Established
- 49.3. The Parser Stage
- 49.4. The PostgreSQL Rule System
- 49.5. Planner/Optimizer
- 49.6. Executor
- 50. System Catalogs
-
- 50.1. Overview
- 50.2. pg_aggregate
- 50.3. pg_am
- 50.4. pg_amop
- 50.5. pg_amproc
- 50.6. pg_attrdef
- 50.7. pg_attribute
- 50.8. pg_authid
- 50.9. pg_auth_members
- 50.10. pg_cast
- 50.11. pg_class
- 50.12. pg_collation
- 50.13. pg_constraint
- 50.14. pg_conversion
- 50.15. pg_database
- 50.16. pg_db_role_setting
- 50.17. pg_default_acl
- 50.18. pg_depend
- 50.19. pg_description
- 50.20. pg_enum
- 50.21. pg_event_trigger
- 50.22. pg_extension
- 50.23. pg_foreign_data_wrapper
- 50.24. pg_foreign_server
- 50.25. pg_foreign_table
- 50.26. pg_index
- 50.27. pg_inherits
- 50.28. pg_init_privs
- 50.29. pg_language
- 50.30. pg_largeobject
- 50.31. pg_largeobject_metadata
- 50.32. pg_namespace
- 50.33. pg_opclass
- 50.34. pg_operator
- 50.35. pg_opfamily
- 50.36. pg_pltemplate
- 50.37. pg_policy
- 50.38. pg_proc
- 50.39. pg_range
- 50.40. pg_replication_origin
- 50.41. pg_rewrite
- 50.42. pg_seclabel
- 50.43. pg_shdepend
- 50.44. pg_shdescription
- 50.45. pg_shseclabel
- 50.46. pg_statistic
- 50.47. pg_tablespace
- 50.48. pg_transform
- 50.49. pg_trigger
- 50.50. pg_ts_config
- 50.51. pg_ts_config_map
- 50.52. pg_ts_dict
- 50.53. pg_ts_parser
- 50.54. pg_ts_template
- 50.55. pg_type
- 50.56. pg_user_mapping
- 50.57. System Views
- 50.58. pg_available_extensions
- 50.59. pg_available_extension_versions
- 50.60. pg_config
- 50.61. pg_cursors
- 50.62. pg_file_settings
- 50.63. pg_group
- 50.64. pg_indexes
- 50.65. pg_locks
- 50.66. pg_matviews
- 50.67. pg_policies
- 50.68. pg_prepared_statements
- 50.69. pg_prepared_xacts
- 50.70. pg_replication_origin_status
- 50.71. pg_replication_slots
- 50.72. pg_roles
- 50.73. pg_rules
- 50.74. pg_seclabels
- 50.75. pg_settings
- 50.76. pg_shadow
- 50.77. pg_stats
- 50.78. pg_tables
- 50.79. pg_timezone_abbrevs
- 50.80. pg_timezone_names
- 50.81. pg_user
- 50.82. pg_user_mappings
- 50.83. pg_views
- 51. Frontend/Backend Protocol
-
- 51.1. Overview
- 51.2. Message Flow
- 51.3. Streaming Replication Protocol
- 51.4. Message Data Types
- 51.5. Message Formats
- 51.6. Error and Notice Message Fields
- 51.7. Summary of Changes since Protocol 2.0
- 52. PostgreSQL Coding Conventions
-
- 52.1. Formatting
- 52.2. Reporting Errors Within the Server
- 52.3. Error Message Style Guide
- 52.4. Miscellaneous Coding Conventions
- 53. Native Language Support
-
- 53.1. For the Translator
- 53.2. For the Programmer
- 54. Writing A Procedural Language Handler
- 55. Writing A Foreign Data Wrapper
- 56. Writing A Table Sampling Method
- 57. Writing A Custom Scan Provider
-
- 57.1. Creating Custom Scan Paths
- 57.2. Creating Custom Scan Plans
- 57.3. Executing Custom Scans
- 58. Genetic Query Optimizer
- 59. Index Access Method Interface Definition
-
- 59.1. Basic API Structure for Indexes
- 59.2. Index Access Method Functions
- 59.3. Index Scanning
- 59.4. Index Locking Considerations
- 59.5. Index Uniqueness Checks
- 59.6. Index Cost Estimation Functions
- 60. Generic WAL Records
- 61. GiST Indexes
-
- 61.1. Introduction
- 61.2. Built-in Operator Classes
- 61.3. Extensibility
- 61.4. Implementation
- 61.5. Examples
- 62. SP-GiST Indexes
-
- 62.1. Introduction
- 62.2. Built-in Operator Classes
- 62.3. Extensibility
- 62.4. Implementation
- 62.5. Examples
- 63. GIN Indexes
-
- 63.1. Introduction
- 63.2. Built-in Operator Classes
- 63.3. Extensibility
- 63.4. Implementation
- 63.5. GIN Tips and Tricks
- 63.6. Limitations
- 63.7. Examples
- 64. BRIN Indexes
-
- 64.1. Introduction
- 64.2. Built-in Operator Classes
- 64.3. Extensibility
- 65. Database Physical Storage
-
- 65.1. Database File Layout
- 65.2. TOAST
- 65.3. Free Space Map
- 65.4. Visibility Map
- 65.5. The Initialization Fork
- 65.6. Database Page Layout
- 66. BKI Backend Interface
-
- 66.1. BKI File Format
- 66.2. BKI Commands
- 66.3. Structure of the Bootstrap BKI File
- 66.4. Example
- 67. How the Planner Uses Statistics
-
- 67.1. Row Estimation Examples