Part V. Server Programming
This part is about extending the server functionality with user-defined functions, data types, triggers, etc. These are advanced topics which should be approached only after all the other user documentation aboutPostgres Pro has been understood. Later chapters in this part describe the server-side programming languages available in thePostgres Pro distribution as well as general issues concerning server-side programming. It is essential to read at least the earlier sections ofChapter 36 (covering functions) before diving into the material about server-side programming.
Table of Contents
- 36. ExtendingSQL
- 36.1. How Extensibility Works
- 36.2. ThePostgres Pro Type System
- 36.3. User-Defined Functions
- 36.4. User-Defined Procedures
- 36.5. Query Language (SQL) Functions
- 36.6. Function Overloading
- 36.7. Function Volatility Categories
- 36.8. Procedural Language Functions
- 36.9. Internal Functions
- 36.10. C-Language Functions
- 36.11. Function Optimization Information
- 36.12. User-Defined Aggregates
- 36.13. User-Defined Types
- 36.14. User-Defined Operators
- 36.15. Operator Optimization Information
- 36.16. Interfacing Extensions to Indexes
- 36.17. Packaging Related Objects into an Extension
- 36.18. Extension Building Infrastructure
- 36.2. ThePostgres Pro Type System
- 36.1. How Extensibility Works
- 37. Triggers
- 38. Event Triggers
- 39. The Rule System
- 40. Procedural Languages
- 41.PL/pgSQL —SQL Procedural Language
- 41.1. Overview
- 41.2. Structure ofPL/pgSQL
- 41.3. Declarations
- 41.4. Expressions
- 41.5. Basic Statements
- 41.6. Control Structures
- 41.7. Cursors
- 41.8. Transaction Management
- 41.9. Errors and Messages
- 41.10. Trigger Functions
- 41.11.PL/pgSQL under the Hood
- 41.12. Tips for Developing inPL/pgSQL
- 41.13. Porting fromOracle PL/SQL
- 41.2. Structure ofPL/pgSQL
- 41.1. Overview
- 42. PL/Tcl — Tcl Procedural Language
- 42.1. Overview
- 42.2. PL/Tcl Functions and Arguments
- 42.3. Data Values in PL/Tcl
- 42.4. Global Data in PL/Tcl
- 42.5. Database Access from PL/Tcl
- 42.6. Trigger Functions in PL/Tcl
- 42.7. Event Trigger Functions in PL/Tcl
- 42.8. Error Handling in PL/Tcl
- 42.9. Explicit Subtransactions in PL/Tcl
- 42.10. Transaction Management
- 42.11. PL/Tcl Configuration
- 42.12. Tcl Procedure Names
- 42.2. PL/Tcl Functions and Arguments
- 42.1. Overview
- 43. PL/Perl — Perl Procedural Language
- 44. PL/Python — Python Procedural Language
- 45. Server Programming Interface
- 46. Background Worker Processes
- 47. Logical Decoding
- 47.1. Logical Decoding Examples
- 47.2. Logical Decoding Concepts
- 47.3. Streaming Replication Protocol Interface
- 47.4. Logical DecodingSQL Interface
- 47.5. System Catalogs Related to Logical Decoding
- 47.6. Logical Decoding Output Plugins
- 47.7. Logical Decoding Output Writers
- 47.8. Synchronous Replication Support for Logical Decoding
- 47.9. Streaming of Large Transactions for Logical Decoding
- 47.10. Two-phase Commit Support for Logical Decoding
- 47.2. Logical Decoding Concepts
- 47.1. Logical Decoding Examples
- 48. Replication Progress Tracking
- 49. Archive Modules