Chapter 37. Extending SQL (original) (raw)

DocumentationPostgreSQL 10

Supported Versions:Current (17) / 16 / 15 / 14 / 13

Development Versions:18 / devel

Unsupported versions: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 thecurrent version, or one of the other supported versions listed above instead.

Chapter 37. Extending SQL
Prev Up Part V. Server Programming Home Next

Table of Contents

37.1. How Extensibility Works

37.2. The PostgreSQL Type System

37.2.1. Base Types

37.2.2. Composite Types

37.2.3. Domains

37.2.4. Pseudo-Types

37.2.5. Polymorphic Types

37.3. User-defined Functions

37.4. Query Language (SQL) Functions

37.4.1. Arguments for SQL Functions

37.4.2. SQL Functions on Base Types

37.4.3. SQL Functions on Composite Types

37.4.4. SQL Functions with Output Parameters

37.4.5. SQL Functions with Variable Numbers of Arguments

37.4.6. SQL Functions with Default Values for Arguments

37.4.7. SQL Functions as Table Sources

37.4.8. SQL Functions Returning Sets

37.4.9. SQL Functions Returning TABLE

37.4.10. Polymorphic SQL Functions

37.4.11. SQL Functions with Collations

37.5. Function Overloading

37.6. Function Volatility Categories

37.7. Procedural Language Functions

37.8. Internal Functions

37.9. C-Language Functions

37.9.1. Dynamic Loading

37.9.2. Base Types in C-Language Functions

37.9.3. Version 1 Calling Conventions

37.9.4. Writing Code

37.9.5. Compiling and Linking Dynamically-loaded Functions

37.9.6. Composite-type Arguments

37.9.7. Returning Rows (Composite Types)

37.9.8. Returning Sets

37.9.9. Polymorphic Arguments and Return Types

37.9.10. Transform Functions

37.9.11. Shared Memory and LWLocks

37.9.12. Using C++ for Extensibility

37.10. User-defined Aggregates

37.10.1. Moving-Aggregate Mode

37.10.2. Polymorphic and Variadic Aggregates

37.10.3. Ordered-Set Aggregates

37.10.4. Partial Aggregation

37.10.5. Support Functions for Aggregates

37.11. User-defined Types

37.11.1. TOAST Considerations

37.12. User-defined Operators

37.13. Operator Optimization Information

37.13.1. COMMUTATOR

37.13.2. NEGATOR

37.13.3. RESTRICT

37.13.4. JOIN

37.13.5. HASHES

37.13.6. MERGES

37.14. Interfacing Extensions To Indexes

37.14.1. Index Methods and Operator Classes

37.14.2. Index Method Strategies

37.14.3. Index Method Support Routines

37.14.4. An Example

37.14.5. Operator Classes and Operator Families

37.14.6. System Dependencies on Operator Classes

37.14.7. Ordering Operators

37.14.8. Special Features of Operator Classes

37.15. Packaging Related Objects into an Extension

37.15.1. Extension Files

37.15.2. Extension Relocatability

37.15.3. Extension Configuration Tables

37.15.4. Extension Updates

37.15.5. Installing Extensions using Update Scripts

37.15.6. Security Considerations for Extensions

37.15.7. Extension Example

37.16. Extension Building Infrastructure

In the sections that follow, we will discuss how you can extend the PostgreSQL SQL query language by adding:


Prev Up Next
Part V. Server Programming Home 37.1. How Extensibility Works