Chapter 35. ExtendingSQL
- Table of Contents
- 35.1.How Extensibility Works
- 35.2.ThePostgreSQL Type System
- 35.1.How Extensibility Works
- 35.2.1.Base Types
- 35.2.2.Composite Types
- 35.2.3.Domains
- 35.2.4.Pseudo-Types
- 35.2.5.Polymorphic Types
- 35.2.2.Composite Types
- 35.2.1.Base Types
- 35.3.User-defined Functions
- 35.4.Query Language (SQL) Functions
- 35.4.1.Arguments forSQL Functions
- 35.4.2.SQL Functions on Base Types
- 35.4.3.SQL Functions on Composite Types
- 35.4.4.SQL Functions with Output Parameters
- 35.4.5.SQL Functions with Variable Numbers of Arguments
- 35.4.6.SQL Functions with Default Values for Arguments
- 35.4.7.SQL Functions as Table Sources
- 35.4.8.SQL Functions Returning Sets
- 35.4.9.SQL Functions ReturningTABLE
- 35.4.10.PolymorphicSQL Functions
- 35.4.11.SQL Functions with Collations
- 35.4.2.SQL Functions on Base Types
- 35.4.1.Arguments forSQL 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.6.Function Volatility Categories
- 35.9.1.Dynamic Loading
- 35.9.2.Base Types in C-Language Functions
- 35.9.3.Version 0 Calling Conventions
- 35.9.4.Version 1 Calling Conventions
- 35.9.5.Writing Code
- 35.9.6.Compiling and Linking Dynamically-loaded Functions
- 35.9.7.Composite-type Arguments
- 35.9.8.Returning Rows (Composite Types)
- 35.9.9.Returning Sets
- 35.9.10.Polymorphic Arguments and Return Types
- 35.9.11.Transform Functions
- 35.9.12.Shared Memory and LWLocks
- 35.9.13.Using C++ for Extensibility
- 35.9.2.Base Types in C-Language Functions
- 35.9.1.Dynamic Loading
- 35.10.User-defined Aggregates
- 35.10.1.Moving-Aggregate Mode
- 35.10.2.Polymorphic and Variadic Aggregates
- 35.10.3.Ordered-Set Aggregates
- 35.10.4.Support Functions for Aggregates
- 35.10.2.Polymorphic and Variadic Aggregates
- 35.10.1.Moving-Aggregate Mode
- 35.11.User-defined Types
- 35.12.User-defined Operators
- 35.13.Operator Optimization Information
- 35.12.User-defined Operators
- 35.14.Interfacing Extensions To Indexes
- 35.14.1.Index Methods and Operator Classes
- 35.14.2.Index Method Strategies
- 35.14.3.Index Method Support Routines
- 35.14.4.An Example
- 35.14.5.Operator Classes and Operator Families
- 35.14.6.System Dependencies on Operator Classes
- 35.14.7.Ordering Operators
- 35.14.8.Special Features of Operator Classes
- 35.14.2.Index Method Strategies
- 35.14.1.Index Methods and Operator Classes
- 35.15.Packaging Related Objects into an Extension
- 35.15.1.Extension Files
- 35.15.2.Extension Relocatability
- 35.15.3.Extension Configuration Tables
- 35.15.4.Extension Updates
- 35.15.5.Extension Example
- 35.15.2.Extension Relocatability
- 35.15.1.Extension Files
- 35.16.Extension Building Infrastructure
In the sections that follow, we will discuss how you can extend thePostgreSQLSQL query language by adding: functions (starting inSection 35.3) aggregates (starting inSection 35.10) data types (starting inSection 35.11) operators (starting inSection 35.12) operator classes for indexes (starting inSection 35.14) packages of related objects (starting inSection 35.15)