Глава 37. Расширение SQL
Содержание
- 37.1. Как реализована расширяемость
- 37.2. Система типов Postgres Pro
- 37.3. Пользовательские функции
- 37.4. Пользовательские процедуры
- 37.5. Функции на языке запросов (SQL)
- 37.4. Пользовательские процедуры
- 37.5.1. Аргументы SQL-функций
- 37.5.2. Функции SQL с базовыми типами
- 37.5.3. Функции SQL с составными типами
- 37.5.4. Функции SQL с выходными параметрами
- 37.5.5. Процедуры SQL с выходными параметрами
- 37.5.6. Функции SQL с переменным числом аргументов
- 37.5.7. Функции SQL со значениями аргументов по умолчанию
- 37.5.8. Функции SQL, порождающие таблицы
- 37.5.9. Функции SQL, возвращающие множества
- 37.5.10. Функции SQL, возвращающие таблицы (
TABLE)- 37.5.11. Полиморфные функции SQL
- 37.5.12. Функции SQL с правилами сортировки
- 37.5.2. Функции SQL с базовыми типами
- 37.5.1. Аргументы SQL-функций
- 37.6. Перегрузка функций
- 37.7. Категории изменчивости функций
- 37.8. Функции на процедурных языках
- 37.9. Внутренние функции
- 37.10. Функции на языке C
- 37.7. Категории изменчивости функций
- 37.10.1. Динамическая загрузка
- 37.10.2. Базовые типы в функциях на языке C
- 37.10.3. Соглашение о вызовах версии 1
- 37.10.4. Написание кода
- 37.10.5. Компиляция и компоновка динамически загружаемых функций
- 37.10.6. Аргументы составного типа
- 37.10.7. Возврат строк (составных типов)
- 37.10.8. Возврат множеств
- 37.10.9. Полиморфные типы аргументов и результата
- 37.10.10. Разделяемая память и лёгкие блокировки
- 37.10.11. Использование C++ для расширяемости
- 37.10.2. Базовые типы в функциях на языке C
- 37.10.1. Динамическая загрузка
- 37.11. Информация для оптимизации функций
- 37.12. Пользовательские агрегатные функции
- 37.13. Пользовательские типы
- 37.14. Пользовательские операторы
- 37.15. Информация для оптимизации операторов
- 37.14. Пользовательские операторы
- 37.16. Интерфейсы расширений для индексов
- 37.17. Упаковка связанных объектов в расширение
- 37.18. Инфраструктура сборки расширений
В следующих разделах мы обсудим, как в Postgres Pro можно расширять язык запросов SQL, добавляя собственные:
функции (начиная с Раздела 37.3)
агрегатные функции (начиная с Раздела 37.12)
типы данных (начиная с Раздела 37.13)
операторы (начиная с Раздела 37.14)
классы операторов для индексов (начиная с Раздела 37.16)
пакеты связанных объектов (начиная с Раздела 37.17)
Chapter 37. Extending SQL
Table of Contents
- 37.1. How Extensibility Works
- 37.2. The Postgres Pro Type System
- 37.3. User-Defined Functions
- 37.4. User-Defined Procedures
- 37.5. Query Language (SQL) Functions
- 37.4. User-Defined Procedures
- 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 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. Polymorphic SQL Functions
- 37.5.12. SQL Functions with Collations
- 37.5.2. SQL Functions on Base Types
- 37.5.1. Arguments for SQL Functions
- 37.6. Function Overloading
- 37.7. Function Volatility Categories
- 37.8. Procedural Language Functions
- 37.9. Internal Functions
- 37.10. C-Language Functions
- 37.7. Function Volatility Categories
- 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.10.2. Base Types in C-Language Functions
- 37.10.1. Dynamic Loading
- 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.14. User-Defined Operators
- 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 the Postgres Pro SQL query language by adding:
functions (starting in Section 37.3)
aggregates (starting in Section 37.12)
data types (starting in Section 37.13)
operators (starting in Section 37.14)
operator classes for indexes (starting in Section 37.16)
packages of related objects (starting in Section 37.17)