Часть V. Серверное программирование
Эта часть документации посвящена расширению функциональности сервера путём реализации собственных функций, типов данных, триггеров и т. д. Это довольно сложные темы, для освоения которых рекомендуется предварительно изучить и понять всю остальную документацию для пользователей Postgres Pro. В последних главах этой части описываются языки программирования на стороне сервера, поддерживаемые дистрибутивом Postgres Pro, и рассматриваются общие вопросы, связанные с программированием на стороне сервера. Но прежде чем погружаться в этот материал, важно изучить предыдущие разделы Главы 41 (где освещаются функции).
Содержание
- 41. Расширение SQL
- 41.1. Как реализована расширяемость
- 41.2. Система типов Postgres Pro
- 41.3. Пользовательские функции
- 41.4. Пользовательские процедуры
- 41.5. Функции на языке запросов (SQL)
- 41.6. Перегрузка функций
- 41.7. Категории изменчивости функций
- 41.8. Функции на процедурных языках
- 41.9. Внутренние функции
- 41.10. Функции на языке C
- 41.11. Информация для оптимизации функций
- 41.12. Пользовательские агрегатные функции
- 41.13. Пользовательские типы
- 41.14. Пользовательские операторы
- 41.15. Информация для оптимизации операторов
- 41.16. Интерфейсы расширений для индексов
- 41.17. Упаковывание связанных объектов в расширение
- 41.18. Инфраструктура сборки расширений
- 41.2. Система типов Postgres Pro
- 41.1. Как реализована расширяемость
- 42. Триггеры
- 43. Триггеры событий
- 43.1. Обзор механизма работы триггеров событий
- 43.2. Матрица срабатывания триггеров событий
- 43.3. Триггерные функции событий на языке C
- 43.4. Полный пример триггера события
- 43.5. Пример событийного триггера, обрабатывающего перезапись таблицы
- 43.6. Пример событийного триггера, обрабатывающего вход в базу данных
- 43.2. Матрица срабатывания триггеров событий
- 43.1. Обзор механизма работы триггеров событий
- 44. Система правил
- 45. Процедурные языки
- 46. PL/pgSQL — процедурный язык SQL
- 46.1. Обзор
- 46.2. Структура PL/pgSQL
- 46.3. Объявления
- 46.4. Выражения
- 46.5. Основные операторы
- 46.6. Управляющие структуры
- 46.7. Курсоры
- 46.8. Управление транзакциями
- 46.9. Сообщения и ошибки
- 46.10. Триггерные функции
- 46.11. Пакеты
- 46.12. PL/pgSQL изнутри
- 46.13. Советы по разработке на PL/pgSQL
- 46.14. Портирование из Oracle PL/SQL
- 46.2. Структура PL/pgSQL
- 46.1. Обзор
- 47. PL/Tcl — процедурный язык Tcl
- 47.1. Обзор
- 47.2. Функции на PL/Tcl и их аргументы
- 47.3. Значения данных в PL/Tcl
- 47.4. Глобальные данные в PL/Tcl
- 47.5. Обращение к базе данных из PL/Tcl
- 47.6. Триггерные функции на PL/Tcl
- 47.7. Функции событийных триггеров в PL/Tcl
- 47.8. Обработка ошибок в PL/Tcl
- 47.9. Явные подтранзакции в PL/Tcl
- 47.10. Управление транзакциями
- 47.11. Конфигурация PL/Tcl
- 47.12. Имена процедур Tcl
- 47.2. Функции на PL/Tcl и их аргументы
- 47.1. Обзор
- 48. PL/Perl — процедурный язык Perl
- 49. PL/Python — процедурный язык Python
- 50. Интерфейс программирования сервера
- 51. Фоновые рабочие процессы
- 52. Логическое декодирование
- 52.1. Примеры логического декодирования
- 52.2. Концепции логического декодирования
- 52.3. Интерфейс протокола потоковой репликации
- 52.4. Интерфейс логического декодирования на уровне SQL
- 52.5. Системные каталоги, связанные с логическим декодированием
- 52.6. Модули вывода логического декодирования
- 52.7. Запись вывода логического декодирования
- 52.8. Поддержка синхронной репликации для логического декодирования
- 52.9. Передача больших транзакций для логического декодирования
- 52.10. Поддержка двухфазной фиксации для логического декодирования
- 52.2. Концепции логического декодирования
- 52.1. Примеры логического декодирования
- 53. Отслеживание прогресса репликации
- 54. Модули архивирования