PostgreSQL 9.6beta2 Documentation
Prev | Home |  | Next

# VII. Internals

This part contains assorted information that might be of use to PostgreSQL developers.

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_init_privs`
  49.29. `pg_language`
  49.30. `pg_largeobject`
  49.31. `pg_largeobject_metadata`
  49.32. `pg_namespace`
  49.33. `pg_opclass`
  49.34. `pg_operator`
  49.35. `pg_opfamily`
  49.36. `pg_pltemplate`
  49.37. `pg_policy`
  49.38. `pg_proc`
  49.39. `pg_range`
  49.40. `pg_replication_origin`
  49.41. `pg_rewrite`
  49.42. `pg_seclabel`
  49.43. `pg_shdepend`
  49.44. `pg_shdescription`
  49.45. `pg_shseclabel`
  49.46. `pg_statistic`
  49.47. `pg_tablespace`
  49.48. `pg_transform`
  49.49. `pg_trigger`
  49.50. `pg_ts_config`
  49.51. `pg_ts_config_map`
  49.52. `pg_ts_dict`
  49.53. `pg_ts_parser`
  49.54. `pg_ts_template`
  49.55. `pg_type`
  49.56. `pg_user_mapping`
  49.57. System Views
  49.58. `pg_available_extensions`
  49.59. `pg_available_extension_versions`
  49.60. `pg_config`
  49.61. `pg_cursors`
  49.62. `pg_file_settings`
  49.63. `pg_group`
  49.64. `pg_indexes`
  49.65. `pg_locks`
  49.66. `pg_matviews`
  49.67. `pg_policies`
  49.68. `pg_prepared_statements`
  49.69. `pg_prepared_xacts`
  49.70. `pg_replication_origin_status`
  49.71. `pg_replication_slots`
  49.72. `pg_roles`
  49.73. `pg_rules`
  49.74. `pg_seclabels`
  49.75. `pg_settings`
  49.76. `pg_shadow`
  49.77. `pg_stats`
  49.78. `pg_tables`
  49.79. `pg_timezone_abbrevs`
  49.80. `pg_timezone_names`
  49.81. `pg_user`
  49.82. `pg_user_mappings`
  49.83. `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
  51.4. Miscellaneous Coding Conventions
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
  54.1. Foreign Data Wrapper Functions
  54.2. Foreign Data Wrapper Callback Routines
  54.3. Foreign Data Wrapper Helper Functions
  54.4. Foreign Data Wrapper Query Planning
  54.5. Row Locking in Foreign Data Wrappers
55. Writing A Table Sampling Method
  55.1. Sampling Method Support Functions
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
  57.1. Query Handling as a Complex Optimization Problem
  57.2. Genetic Algorithms
  57.3. Genetic Query Optimization (GEQO) in PostgreSQL
  57.4. Further Reading
58. Index Access Method Interface Definition
  58.1. Basic API Structure 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. Generic WAL Records
60. GiST Indexes
  60.1. Introduction
  60.2. Built-in Operator Classes
  60.3. Extensibility
  60.4. Implementation
  60.5. Examples
61. SP-GiST Indexes
  61.1. Introduction
  61.2. Built-in Operator Classes
  61.3. Extensibility
  61.4. Implementation
  61.5. Examples
62. GIN Indexes
  62.1. Introduction
  62.2. Built-in Operator Classes
  62.3. Extensibility
  62.4. Implementation
  62.5. GIN Tips and Tricks
  62.6. Limitations
  62.7. Examples
63. BRIN Indexes
  63.1. Introduction
  63.2. Built-in Operator Classes
  63.3. Extensibility
64. Database Physical Storage
  64.1. Database File Layout
  64.2. TOAST
  64.3. Free Space Map
  64.4. Visibility Map
  64.5. The Initialization Fork
  64.6. Database Page Layout
65. BKI Backend Interface
  65.1. BKI File Format
  65.2. BKI Commands
  65.3. Structure of the Bootstrap BKI File
  65.4. Example
66. How the Planner Uses Statistics
  66.1. Row Estimation Examples

Prev | Home | Next
postmaster |  | Overview of PostgreSQL Internals