VII. Internals

Note: At present, this section is just taken from PostgreSQL documentation and is subject to revision for Postgres-XL.

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

Table of Contents
45. Overview of PostgreSQL Internals
45.1. The Path of a Query
45.2. How Connections are Established
45.3. The Parser Stage
45.4. The PostgreSQL Rule System
45.5. Planner/Optimizer
45.6. Executor
46. Overview of Postgres-XL Internals
46.1. Postgres-XL Components
46.2. GTM and Global Transaction Management
47. System Catalogs
47.1. Overview
47.2. pg_aggregate
47.3. pg_am
47.4. pg_amop
47.5. pg_amproc
47.6. pg_attrdef
47.7. pg_attribute
47.8. pg_authid
47.9. pg_auth_members
47.10. pg_cast
47.11. pg_class
47.12. pg_constraint
47.13. pg_collation
47.14. pg_conversion
47.15. pg_database
47.16. pg_db_role_setting
47.17. pg_default_acl
47.18. pg_depend
47.19. pg_description
47.20. pg_enum
47.21. pg_extension
47.22. pg_foreign_data_wrapper
47.23. pg_foreign_server
47.24. pg_foreign_table
47.25. pg_index
47.26. pg_inherits
47.27. pg_language
47.28. pg_largeobject
47.29. pg_largeobject_metadata
47.30. pg_namespace
47.31. pg_opclass
47.32. pg_operator
47.33. pg_opfamily
47.34. pg_pltemplate
47.35. pg_proc
47.36. pg_rewrite
47.37. pg_seclabel
47.38. pg_shdepend
47.39. pg_shdescription
47.40. pg_statistic
47.41. pg_tablespace
47.42. pg_trigger
47.43. pg_ts_config
47.44. pg_ts_config_map
47.45. pg_ts_dict
47.46. pg_ts_parser
47.47. pg_ts_template
47.48. pg_type
47.49. pg_user_mapping
47.50. pgxc_class
47.51. pgxc_node
47.52. pgxc_group
47.53. System Views
47.54. pg_available_extensions
47.55. pg_available_extension_versions
47.56. pg_cursors
47.57. pg_group
47.58. pg_indexes
47.59. pg_locks
47.60. pg_prepared_statements
47.61. pg_prepared_xacts
47.62. pg_roles
47.63. pg_rules
47.64. pg_seclabels
47.65. pg_settings
47.66. pg_shadow
47.67. pg_stats
47.68. pg_tables
47.69. pg_timezone_abbrevs
47.70. pg_timezone_names
47.71. pg_user
47.72. pg_user_mappings
47.73. pg_views
48. Frontend/Backend Protocol
48.1. Overview
48.2. Message Flow
48.3. Streaming Replication Protocol
48.4. Message Data Types
48.5. Message Formats
48.6. Error and Notice Message Fields
48.7. Summary of Changes since Protocol 2.0
49. Postgres-XL Coding Conventions
49.1. Formatting
49.2. Reporting Errors Within the Server
49.3. Error Message Style Guide
50. Native Language Support
50.1. For the Translator
50.2. For the Programmer
51. Writing A Procedural Language Handler
52. Writing A Foreign Data Wrapper
52.1. Foreign Data Wrapper Callback Routines
53. Genetic Query Optimizer
53.1. Query Handling as a Complex Optimization Problem
53.2. Genetic Algorithms
53.3. Genetic Query Optimization (GEQO) in PostgreSQL
53.4. Further Reading
54. Index Access Method Interface Definition
54.1. Catalog Entries for Indexes
54.2. Index Access Method Functions
54.3. Index Scanning
54.4. Index Locking Considerations
54.5. Index Uniqueness Checks
54.6. Index Cost Estimation Functions
55. GiST Indexes
55.1. Introduction
55.2. Extensibility
55.3. Implementation
55.4. Examples
56. GIN Indexes
56.1. Introduction
56.2. Extensibility
56.3. Implementation
56.4. GIN Tips and Tricks
56.5. Limitations
56.6. Examples
57. Database Physical Storage
57.1. Database File Layout
57.2. TOAST
57.3. Free Space Map
57.4. Visibility Map
57.5. The Initialization Fork
57.6. Database Page Layout
58. BKI Backend Interface
58.1. BKI File Format
58.2. BKI Commands
58.3. Structure of the Bootstrap BKI File
58.4. Example
59. How the Planner Uses Statistics
59.1. Row Estimation Examples