Часть V. Серверное программирование
Эта часть документации посвящена расширению функциональности сервера путём реализации собственных функций, типов данных, триггеров и т. д. Это довольно сложные темы, для освоения которых рекомендуется предварительно изучить и понять всю остальную документацию для пользователей Postgres Pro. В последних главах этой части описываются языки программирования на стороне сервера, поддерживаемые дистрибутивом Postgres Pro, и рассматриваются общие вопросы, связанные с программированием на стороне сервера. Но прежде чем погружаться в этот материал, важно изучить предыдущие разделы Главы 40 (где освещаются функции).
Содержание
- 40. Расширение SQL
 - 40.1. Как реализована расширяемость
- 40.2. Система типов Postgres Pro
 - 40.3. Пользовательские функции
 - 40.4. Пользовательские процедуры
 - 40.5. Функции на языке запросов (SQL)
 - 40.6. Перегрузка функций
 - 40.7. Категории изменчивости функций
 - 40.8. Функции на процедурных языках
 - 40.9. Внутренние функции
 - 40.10. Функции на языке C
 - 40.11. Информация для оптимизации функций
 - 40.12. Пользовательские агрегатные функции
 - 40.13. Пользовательские типы
 - 40.14. Пользовательские операторы
 - 40.15. Информация для оптимизации операторов
 - 40.16. Интерфейсы расширений для индексов
 - 40.17. Упаковка связанных объектов в расширение
 - 40.18. Инфраструктура сборки расширений
  - 40.2. Система типов Postgres Pro
 
- 40.1. Как реализована расширяемость
 - 41. Триггеры
 - 42. Триггеры событий
 - 42.1. Обзор механизма работы триггеров событий
- 42.2. Матрица срабатывания триггеров событий
 - 42.3. Триггерные функции событий на языке C
 - 42.4. Пример событийного триггера на языке C
 - 42.5. Пример событийного триггера, обрабатывающего перезапись таблицы
 - 42.6. Пример событийного триггера, обрабатывающего вход в базу данных
  - 42.2. Матрица срабатывания триггеров событий
 
- 42.1. Обзор механизма работы триггеров событий
 - 43. Система правил
 - 44. Процедурные языки
 - 45. PL/pgSQL — процедурный язык SQL
 - 45.1. Обзор
- 45.2. Структура PL/pgSQL
 - 45.3. Объявления
 - 45.4. Выражения
 - 45.5. Основные операторы
 - 45.6. Управляющие структуры
 - 45.7. Курсоры
 - 45.8. Управление транзакциями
 - 45.9. Сообщения и ошибки
 - 45.10. Триггерные функции
 - 45.11. Пакеты
 - 45.12. PL/pgSQL изнутри
 - 45.13. Советы по разработке на PL/pgSQL
 - 45.14. Портирование из Oracle PL/SQL
  - 45.2. Структура PL/pgSQL
 
- 45.1. Обзор
 - 46. PL/Tcl — процедурный язык Tcl
 - 46.1. Обзор
- 46.2. Функции на PL/Tcl и их аргументы
 - 46.3. Значения данных в PL/Tcl
 - 46.4. Глобальные данные в PL/Tcl
 - 46.5. Обращение к базе данных из PL/Tcl
 - 46.6. Триггерные функции на PL/Tcl
 - 46.7. Функции событийных триггеров в PL/Tcl
 - 46.8. Обработка ошибок в PL/Tcl
 - 46.9. Явные подтранзакции в PL/Tcl
 - 46.10. Управление транзакциями
 - 46.11. Конфигурация PL/Tcl
 - 46.12. Имена процедур Tcl
  - 46.2. Функции на PL/Tcl и их аргументы
 
- 46.1. Обзор
 - 47. PL/Perl — процедурный язык Perl
 - 48. PL/Python — процедурный язык Python
 - 49. Интерфейс программирования сервера
 - 50. Фоновые рабочие процессы
- 51. Логическое декодирование
  - 51.1. Примеры логического декодирования
- 51.2. Концепции логического декодирования
 - 51.3. Интерфейс протокола потоковой репликации
 - 51.4. Интерфейс логического декодирования на уровне SQL
 - 51.5. Системные каталоги, связанные с логическим декодированием
 - 51.6. Модули вывода логического декодирования
 - 51.7. Запись вывода логического декодирования
 - 51.8. Поддержка синхронной репликации для логического декодирования
 - 51.9. Передача больших транзакций для логического декодирования
 - 51.10. Поддержка двухфазной фиксации для логического декодирования
  - 51.2. Концепции логического декодирования
 
- 51.1. Примеры логического декодирования
 - 52. Отслеживание прогресса репликации
- 53. Модули архивирования