PostgreSQL 18.0 Documentation The PostgreSQL Global Development Group Copyright © 1996–2025 The PostgreSQL Global Development Group Legal Notice Table of Contents Preface 1. What Is PostgreSQL? 2. A Brief History of PostgreSQL 3. Conventions 4. Further Information 5. Bug Reporting Guidelines I. Tutorial 1. Getting Started 2. The SQL Language 3. Advanced Features II. The SQL Language 4. SQL Syntax 5. Data Definition 6. Data Manipulation 7. Queries 8. Data Types 9. Functions and Operators 10. Type Conversion 11. Indexes 12. Full Text Search 13. Concurrency Control 14. Performance Tips 15. Parallel Query III. Server Administration 16. Installation from Binaries 17. Installation from Source Code 18. Server Setup and Operation 19. Server Configuration 20. Client Authentication 21. Database Roles 22. Managing Databases 23. Localization 24. Routine Database Maintenance Tasks 25. Backup and Restore 26. High Availability, Load Balancing, and Replication 27. Monitoring Database Activity 28. Reliability and the Write-Ahead Log 29. Logical Replication 30. Just-in-Time Compilation (JIT) 31. Regression Tests IV. Client Interfaces 32. libpq — C Library 33. Large Objects 34. ECPG — Embedded SQL in C 35. The Information Schema V. Server Programming 36. Extending SQL 37. Triggers 38. Event Triggers 39. The Rule System 40. Procedural Languages 41. PL/pgSQL — SQL Procedural Language 42. PL/Tcl — Tcl Procedural Language 43. PL/Perl — Perl Procedural Language 44. PL/Python — Python Procedural Language 45. Server Programming Interface 46. Background Worker Processes 47. Logical Decoding 48. Replication Progress Tracking 49. Archive Modules 50. OAuth Validator Modules VI. Reference I. SQL Commands II. PostgreSQL Client Applications III. PostgreSQL Server Applications VII. Internals 51. Overview of PostgreSQL Internals 52. System Catalogs 53. System Views 54. Frontend/Backend Protocol 55. PostgreSQL Coding Conventions 56. Native Language Support 57. Writing a Procedural Language Handler 58. Writing a Foreign Data Wrapper 59. Writing a Table Sampling Method 60. Writing a Custom Scan Provider 61. Genetic Query Optimizer 62. Table Access Method Interface Definition 63. Index Access Method Interface Definition 64. Write Ahead Logging for Extensions 65. Built-in Index Access Methods 66. Database Physical Storage 67. Transaction Processing 68. System Catalog Declarations and Initial Contents 69. How the Planner Uses Statistics 70. Backup Manifest Format VIII. Appendixes A. PostgreSQL Error Codes B. Date/Time Support C. SQL Key Words D. SQL Conformance E. Release Notes F. Additional Supplied Modules and Extensions G. Additional Supplied Programs H. External Projects I. The Source Code Repository J. Documentation K. PostgreSQL Limits L. Acronyms M. Glossary N. Color Support O. Obsolete or Renamed Features Bibliography Index