Chapter 37. ExtendingSQL
- 37.1. How Extensibility Works
- 37.2. ThePostgres Pro Type System
- 37.3. User-Defined Functions
- 37.4. User-Defined Procedures
- 37.5. Query Language (SQL) Functions
- 37.5.1. Arguments forSQL Functions
- 37.5.2.SQL Functions on Base Types
- 37.5.3.SQL Functions on Composite Types
- 37.5.4.SQL Functions with Output Parameters
- 37.5.5.SQL Procedures with Output Parameters
- 37.5.6.SQL Functions with Variable Numbers of Arguments
- 37.5.7.SQL Functions with Default Values for Arguments
- 37.5.8.SQL Functions as Table Sources
- 37.5.9.SQL Functions Returning Sets
- 37.5.10.SQL Functions Returning
TABLE
- 37.5.11. PolymorphicSQL Functions
- 37.5.12.SQL Functions with Collations
- 37.6. Function Overloading
- 37.7. Function Volatility Categories
- 37.8. Procedural Language Functions
- 37.9. Internal Functions
- 37.10. C-Language Functions
- 37.10.1. Dynamic Loading
- 37.10.2. Base Types in C-Language Functions
- 37.10.3. Version 1 Calling Conventions
- 37.10.4. Writing Code
- 37.10.5. Compiling and Linking Dynamically-Loaded Functions
- 37.10.6. Composite-Type Arguments
- 37.10.7. Returning Rows (Composite Types)
- 37.10.8. Returning Sets
- 37.10.9. Polymorphic Arguments and Return Types
- 37.10.10. Shared Memory and LWLocks
- 37.10.11. Using C++ for Extensibility
- 37.11. Function Optimization Information
- 37.12. User-Defined Aggregates
- 37.13. User-Defined Types
- 37.14. User-Defined Operators
- 37.15. Operator Optimization Information
- 37.16. Interfacing Extensions to Indexes
- 37.17. Packaging Related Objects into an Extension
- 37.18. Extension Building Infrastructure
In the sections that follow, we will discuss how you can extend thePostgres ProSQL query language by adding:
aggregates (starting inSection 37.12)
data types (starting inSection 37.13)
operators (starting inSection 37.14)
operator classes for indexes (starting inSection 37.16)
packages of related objects (starting inSection 37.17)