Home
About
Download
Documentation
Community
Developers
Support
Donate
Your account
September 24, 2026:
PostgreSQL 19 Beta 4 Released!
Documentation
→
PostgreSQL 13
Supported Versions:
Current
(
18
) /
17
/
16
/
15
/
14
Development Versions:
19
/
devel
Unsupported versions:
13
/
12
/
11
/
10
/
9.6
/
9.5
/
9.4
/
9.3
/
9.2
/
9.1
/
9.0
/
8.4
/
8.3
/
8.2
/
8.1
/
8.0
/
7.4
/
7.3
/
7.2
/
7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the
current
version, or one of the other supported versions listed above instead.
Chapter 37. Extending
SQL
Prev
Up
Part V. Server Programming
Home
Next
Chapter 37. Extending
SQL
Table of Contents
37.1. How Extensibility Works
37.2. The
PostgreSQL
Type System
37.2.1. Base Types
37.2.2. Container Types
37.2.3. Domains
37.2.4. Pseudo-Types
37.2.5. Polymorphic Types
37.3. User-Defined Functions
37.4. User-Defined Procedures
37.5. Query Language (
SQL
) Functions
37.5.1. Arguments for
SQL
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
Functions with Variable Numbers of Arguments
37.5.6.
SQL
Functions with Default Values for Arguments
37.5.7.
SQL
Functions as Table Sources
37.5.8.
SQL
Functions Returning Sets
37.5.9.
SQL
Functions Returning
TABLE
37.5.10. Polymorphic
SQL
Functions
37.5.11.
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.12.1. Moving-Aggregate Mode
37.12.2. Polymorphic and Variadic Aggregates
37.12.3. Ordered-Set Aggregates
37.12.4. Partial Aggregation
37.12.5. Support Functions for Aggregates
37.13. User-Defined Types
37.13.1. TOAST Considerations
37.14. User-Defined Operators
37.15. Operator Optimization Information