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 probably be approached only after all the other user documentation aboutPostgreSQL has been understood. Later chapters in this part describe the server-side programming languages available in thePostgreSQL distribution as well as general issues concerning server-side programming languages. It is essential to read at least the earlier sections ofChapter 35 (covering functions) before diving into the material about server-side programming languages.
- Table of Contents
- 35.ExtendingSQL
- 35.1.How Extensibility Works
- 35.2.ThePostgreSQL Type System
- 35.3.User-defined Functions
- 35.4.Query Language (SQL) Functions
- 35.5.Function Overloading
- 35.6.Function Volatility Categories
- 35.7.Procedural Language Functions
- 35.8.Internal Functions
- 35.9.C-Language Functions
- 35.10.User-defined Aggregates
- 35.11.User-defined Types
- 35.12.User-defined Operators
- 35.13.Operator Optimization Information
- 35.14.Interfacing Extensions To Indexes
- 35.15.Packaging Related Objects into an Extension
- 35.16.Extension Building Infrastructure
- 35.2.ThePostgreSQL Type System
- 35.1.How Extensibility Works
- 36.Triggers
- 37.Event Triggers
- 38.The Rule System
- 39.Procedural Languages
- 40.PL/pgSQL -SQL Procedural Language
- 40.1.Overview
- 40.2.Structure ofPL/pgSQL
- 40.3.Declarations
- 40.4.Expressions
- 40.5.Basic Statements
- 40.6.Control Structures
- 40.7.Cursors
- 40.8.Errors and Messages
- 40.9.Trigger Procedures
- 40.10.PL/pgSQL Under the Hood
- 40.11.Tips for Developing inPL/pgSQL
- 40.12.Porting fromOracle PL/SQL
- 40.2.Structure ofPL/pgSQL
- 40.1.Overview
- 41.PL/Tcl - Tcl Procedural Language
- 42.PL/Perl - Perl Procedural Language
- 43.PL/Python - Python Procedural Language
- 43.1.Python 2 vs. Python 3
- 43.2.PL/Python Functions
- 43.3.Data Values
- 43.4.Sharing Data
- 43.5.Anonymous Code Blocks
- 43.6.Trigger Functions
- 43.7.Database Access
- 43.8.Explicit Subtransactions
- 43.9.Utility Functions
- 43.10.Environment Variables
- 43.2.PL/Python Functions
- 43.1.Python 2 vs. Python 3
- 44.Server Programming Interface
- 44.1.Interface Functions
- 44.2.Interface Support Functions
- 44.3.Memory Management
- 44.4.Visibility of Data Changes
- 44.5.Examples
- 44.2.Interface Support Functions
- 44.1.Interface Functions
- 45.Background Worker Processes
- 46.Logical Decoding
- 46.1.Logical Decoding Examples
- 46.2.Logical Decoding Concepts
- 46.3.Streaming Replication Protocol Interface
- 46.4.Logical DecodingSQL Interface
- 46.5.System Catalogs Related to Logical Decoding
- 46.6.Logical Decoding Output Plugins
- 46.7.Logical Decoding Output Writers
- 46.8.Synchronous Replication Support for Logical Decoding
- 46.2.Logical Decoding Concepts
- 46.1.Logical Decoding Examples