Internals

PostgreSQL 9.2.8 Documentation
Prev | Home |  | Next

# VII. Internals

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

Table of Contents
44. Overview of PostgreSQL Internals
  44.1. The Path of a Query
  44.2. How Connections are Established
  44.3. The Parser Stage
  44.4. The PostgreSQL Rule System
  44.5. Planner/Optimizer
  44.6. Executor
45. System Catalogs
  45.1. Overview
  45.2. `pg_aggregate`
  45.3. `pg_am`
  45.4. `pg_amop`
  45.5. `pg_amproc`
  45.6. `pg_attrdef`
  45.7. `pg_attribute`
  45.8. `pg_authid`
  45.9. `pg_auth_members`
  45.10. `pg_cast`
  45.11. `pg_class`
  45.12. `pg_constraint`
  45.13. `pg_collation`
  45.14. `pg_conversion`
  45.15. `pg_database`
  45.16. `pg_db_role_setting`
  45.17. `pg_default_acl`
  45.18. `pg_depend`
  45.19. `pg_description`
  45.20. `pg_enum`
  45.21. `pg_extension`
  45.22. `pg_foreign_data_wrapper`
  45.23. `pg_foreign_server`
  45.24. `pg_foreign_table`
  45.25. `pg_index`
  45.26. `pg_inherits`
  45.27. `pg_language`
  45.28. `pg_largeobject`
  45.29. `pg_largeobject_metadata`
  45.30. `pg_namespace`
  45.31. `pg_opclass`
  45.32. `pg_operator`
  45.33. `pg_opfamily`
  45.34. `pg_pltemplate`
  45.35. `pg_proc`
  45.36. `pg_range`
  45.37. `pg_rewrite`
  45.38. `pg_seclabel`
  45.39. `pg_shdepend`
  45.40. `pg_shdescription`
  45.41. `pg_shseclabel`
  45.42. `pg_statistic`
  45.43. `pg_tablespace`
  45.44. `pg_trigger`
  45.45. `pg_ts_config`
  45.46. `pg_ts_config_map`
  45.47. `pg_ts_dict`
  45.48. `pg_ts_parser`
  45.49. `pg_ts_template`
  45.50. `pg_type`
  45.51. `pg_user_mapping`
  45.52. System Views
  45.53. `pg_available_extensions`
  45.54. `pg_available_extension_versions`
  45.55. `pg_cursors`
  45.56. `pg_group`
  45.57. `pg_indexes`
  45.58. `pg_locks`
  45.59. `pg_prepared_statements`
  45.60. `pg_prepared_xacts`
  45.61. `pg_roles`
  45.62. `pg_rules`
  45.63. `pg_seclabels`
  45.64. `pg_settings`
  45.65. `pg_shadow`
  45.66. `pg_stats`
  45.67. `pg_tables`
  45.68. `pg_timezone_abbrevs`
  45.69. `pg_timezone_names`
  45.70. `pg_user`
  45.71. `pg_user_mappings`
  45.72. `pg_views`
46. Frontend/Backend Protocol
  46.1. Overview
  46.2. Message Flow
  46.3. Streaming Replication Protocol
  46.4. Message Data Types
  46.5. Message Formats
  46.6. Error and Notice Message Fields
  46.7. Summary of Changes since Protocol 2.0
47. PostgreSQL Coding Conventions
  47.1. Formatting
  47.2. Reporting Errors Within the Server
  47.3. Error Message Style Guide
48. Native Language Support
  48.1. For the Translator
  48.2. For the Programmer
49. Writing A Procedural Language Handler
50. Writing A Foreign Data Wrapper
  50.1. Foreign Data Wrapper Functions
  50.2. Foreign Data Wrapper Callback Routines
  50.3. Foreign Data Wrapper Helper Functions
  50.4. Foreign Data Wrapper Query Planning
51. Genetic Query Optimizer
  51.1. Query Handling as a Complex Optimization Problem
  51.2. Genetic Algorithms
  51.3. Genetic Query Optimization (GEQO) in PostgreSQL
  51.4. Further Reading
52. Index Access Method Interface Definition
  52.1. Catalog Entries for Indexes
  52.2. Index Access Method Functions
  52.3. Index Scanning
  52.4. Index Locking Considerations
  52.5. Index Uniqueness Checks
  52.6. Index Cost Estimation Functions
53. GiST Indexes
  53.1. Introduction
  53.2. Extensibility
  53.3. Implementation
  53.4. Examples
54. SP-GiST Indexes
  54.1. Introduction
  54.2. Extensibility
  54.3. Implementation
  54.4. Examples
55. GIN Indexes
  55.1. Introduction
  55.2. Extensibility
  55.3. Implementation
  55.4. GIN Tips and Tricks
  55.5. Limitations
  55.6. Examples
56. Database Physical Storage
  56.1. Database File Layout
  56.2. TOAST
  56.3. Free Space Map
  56.4. Visibility Map
  56.5. The Initialization Fork
  56.6. Database Page Layout
57. BKI Backend Interface
  57.1. BKI File Format
  57.2. BKI Commands
  57.3. Structure of the Bootstrap BKI File
  57.4. Example
58. How the Planner Uses Statistics
  58.1. Row Estimation Examples

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