Chapter 36. ExtendingSQL
Table of Contents
- 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.4. User-Defined Procedures
- 36.5.1. Arguments forSQL Functions
- 36.5.2.SQL Functions on Base Types
- 36.5.3.SQL Functions on Composite Types
- 36.5.4.SQL Functions with Output Parameters
- 36.5.5.SQL Procedures with Output Parameters
- 36.5.6.SQL Functions with Variable Numbers of Arguments
- 36.5.7.SQL Functions with Default Values for Arguments
- 36.5.8.SQL Functions as Table Sources
- 36.5.9.SQL Functions Returning Sets
- 36.5.10.SQL Functions Returning
TABLE
- 36.5.11. PolymorphicSQL Functions
- 36.5.12.SQL Functions with Collations
- 36.5.2.SQL Functions on Base Types
- 36.5.1. Arguments forSQL 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.7. Function Volatility Categories
- 36.10.1. Dynamic Loading
- 36.10.2. Base Types in C-Language Functions
- 36.10.3. Version 1 Calling Conventions
- 36.10.4. Writing Code
- 36.10.5. Compiling and Linking Dynamically-Loaded Functions
- 36.10.6. Composite-Type Arguments
- 36.10.7. Returning Rows (Composite Types)
- 36.10.8. Returning Sets
- 36.10.9. Polymorphic Arguments and Return Types
- 36.10.10. Shared Memory
- 36.10.11. LWLocks
- 36.10.12. Custom Wait Events
- 36.10.13. Injection Points
- 36.10.14. Using C++ for Extensibility
- 36.10.2. Base Types in C-Language Functions
- 36.10.1. Dynamic Loading
- 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.14. User-Defined Operators
- 36.16. Interfacing Extensions to Indexes
- 36.17. Packaging Related Objects into an Extension
- 36.18. Extension Building Infrastructure
In the sections that follow, we will discuss how you can extend thePostgres ProSQL query language by adding: functions (starting inSection 36.3) aggregates (starting inSection 36.12) data types (starting inSection 36.13) operators (starting inSection 36.14) operator classes for indexes (starting inSection 36.16) packages of related objects (starting inSection 36.17)