V. Серверное программирование
Эта часть документации посвящена расширению функциональности сервера путём реализации собственных функций, типов данных, триггеров и т. д. Это довольно сложные темы, для освоения которых рекомендуется предварительно изучить и понять всю остальную документацию для пользователей PostgreSQL. В последних главах этой части описываются языки программирования на стороне сервера, поддерживаемые дистрибутивом PostgreSQL, и рассматриваются общие вопросы, связанные с программированием на стороне сервера. Но прежде чем погружаться в этот материал, важно изучить предыдущие разделы Главы 35 (где освещаются функции).
- Содержание
- 35. Расширение SQL
- 35.1. Как реализована расширяемость
- 35.2. Система типов PostgreSQL
- 35.3. Пользовательские функции
- 35.4. Функции на языке запросов (SQL)
- 35.5. Перегрузка функций
- 35.6. Категории изменчивости функций
- 35.7. Функции на процедурных языках
- 35.8. Внутренние функции
- 35.9. Функции на языке C
- 35.10. Пользовательские агрегатные функции
- 35.11. Пользовательские типы
- 35.12. Пользовательские операторы
- 35.13. Информация для оптимизации операторов
- 35.14. Интерфейсы расширений для индексов
- 35.15. Упаковывание связанных объектов в расширение
- 35.16. Инфраструктура сборки расширений
- 35.2. Система типов PostgreSQL
- 35.1. Как реализована расширяемость
- 36. Триггеры
- 37. Триггеры событий
- 38. Система правил
- 39. Процедурные языки
- 40. PL/pgSQL — процедурный язык SQL
- 40.1. Обзор
- 40.2. Структура PL/pgSQL
- 40.3. Объявления
- 40.4. Выражения
- 40.5. Основные операторы
- 40.6. Управляющие структуры
- 40.7. Курсоры
- 40.8. Сообщения и ошибки
- 40.9. Триггерные процедуры
- 40.10. PL/pgSQL изнутри
- 40.11. Советы по разработке на PL/pgSQL
- 40.12. Портирование из Oracle PL/SQL
- 40.2. Структура PL/pgSQL
- 40.1. Обзор
- 41. PL/Tcl — процедурный язык Tcl
- 42. PL/Perl — процедурный язык Perl
- 43. PL/Python — процедурный язык Python
- 43.1. Python 2 и Python 3
- 43.2. Функции на PL/Python
- 43.3. Значения данных
- 43.4. Совместное использование данных
- 43.5. Анонимные блоки кода
- 43.6. Триггерные функции
- 43.7. Обращение к базе данных
- 43.8. Неявные подтранзакции
- 43.9. Вспомогательные функции
- 43.10. Переменные окружения
- 43.2. Функции на PL/Python
- 43.1. Python 2 и Python 3
- 44. Интерфейс программирования сервера
- 44.1. Интерфейсные функции
- 44.2. Вспомогательные интерфейсные функции
- 44.3. Управление памятью
- 44.4. Видимость изменений в данных
- 44.5. Примеры
- 44.2. Вспомогательные интерфейсные функции
- 44.1. Интерфейсные функции
- 45. Фоновые рабочие процессы
- 46. Логическое декодирование
- 46.1. Примеры логического декодирования
- 46.2. Концепции логического декодирования
- 46.3. Интерфейс протокола потоковой репликации
- 46.4. Интерфейс логического декодирования на уровне SQL
- 46.5. Системные каталоги, связанные с логическим декодированием
- 46.6. Модули вывода логического декодирования
- 46.7. Запись вывода логического декодирования
- 46.8. Поддержка синхронной репликации для логического декодирования
- 46.2. Концепции логического декодирования
- 46.1. Примеры логического декодирования