Глава 40. Расширение SQL

Содержание

40.1. Как реализована расширяемость
40.2. Система типов Postgres Pro
40.2.1. Базовые типы
40.2.2. Типы-контейнеры
40.2.3. Домены
40.2.4. Псевдотипы
40.2.5. Полиморфные типы
40.3. Пользовательские функции
40.4. Пользовательские процедуры
40.5. Функции на языке запросов (SQL)
40.5.1. Аргументы SQL-функций
40.5.2. Функции SQL с базовыми типами
40.5.3. Функции SQL с составными типами
40.5.4. Функции SQL с выходными параметрами
40.5.5. Функции SQL с переменным числом аргументов
40.5.6. Функции SQL со значениями аргументов по умолчанию
40.5.7. Функции SQL, порождающие таблицы
40.5.8. Функции SQL, возвращающие множества
40.5.9. Функции SQL, возвращающие таблицы (TABLE)
40.5.10. Полиморфные функции SQL
40.5.11. Функции SQL с правилами сортировки
40.6. Перегрузка функций
40.7. Категории изменчивости функций
40.8. Функции на процедурных языках
40.9. Внутренние функции
40.10. Функции на языке C
40.10.1. Динамическая загрузка
40.10.2. Базовые типы в функциях на языке C
40.10.3. Соглашение о вызовах версии 1
40.10.4. Написание кода
40.10.5. Компиляция и компоновка динамически загружаемых функций
40.10.6. Аргументы составного типа
40.10.7. Возврат строк (составных типов)
40.10.8. Возврат множеств
40.10.9. Полиморфные типы аргументов и результата
40.10.10. Разделяемая память и лёгкие блокировки
40.10.11. Использование C++ для расширяемости
40.11. Информация для оптимизации функций
40.12. Пользовательские агрегатные функции
40.12.1. Режим движущегося агрегата
40.12.2. Агрегатные функции с полиморфными и переменными аргументами
40.12.3. Сортирующие агрегатные функции
40.12.4. Частичное агрегирование
40.12.5. Вспомогательные функции для агрегатов
40.13. Пользовательские типы
40.14. Пользовательские операторы
40.15. Информация для оптимизации операторов
40.15.1. COMMUTATOR
40.15.2. NEGATOR
40.15.3. RESTRICT
40.15.4. JOIN
40.15.5. HASHES
40.15.6. MERGES
40.16. Интерфейсы расширений для индексов
40.16.1. Методы индексов и классы операторов
40.16.2. Стратегии методов индексов
40.16.3. Опорные процедуры метода индекса
40.16.4. Пример
40.16.5. Семейства и классы операторов
40.16.6. Системные зависимости от классов операторов
40.16.7. Операторы упорядочивания
40.16.8. Особенности классов операторов
40.17. Упаковывание связанных объектов в расширение
40.17.1. Файлы расширений
40.17.2. Перемещаемость расширений
40.17.3. Конфигурационные таблицы расширений
40.17.4. Обновление расширений
40.17.5. Установка расширений скриптами обновления
40.17.6. Замечания о безопасности расширений
40.17.7. Пример расширения
40.18. Инфраструктура сборки расширений

В следующих разделах мы обсудим, как в Postgres Pro можно расширять язык запросов SQL, добавляя собственные: