Часть V. Программирование сервера#

Часть V. Программирование сервера

Часть V. Программирование сервера

Эта часть посвящена расширению функциональности сервера с помощью пользовательских функций, типов данных, триггеров и т. д. Это продвинутые темы, к которым, вероятно, следует обращаться только после того, как будет понятна вся другая пользовательская документация о Tantor SE. В последующих главах этой части описываются языки программирования на стороне сервера, доступные в дистрибутиве Tantor SE, а также общие вопросы, касающиеся языков программирования на стороне сервера. Необходимо прочитать по крайней мере ранние разделы Глава 36 (о функциях), прежде чем погружаться в материал о языках программирования на стороне сервера.

Оглавление

36. Расширение SQL
36.1. Как работает расширяемость
36.2. Типовая система Tantor SE
36.3. Пользовательские функции
36.4. Пользовательские процедуры
36.5. Функции языка запросов (SQL)
36.6. Перегрузка функций
36.7. Категории волатильности функций
36.8. Функции процедурного языка
36.9. Внутренние функции
36.10. Информация об оптимизации функций
36.11. Пользовательские агрегаты
36.12. Пользовательские типы данных
36.13. Пользовательские операторы
36.14. Информация об оптимизации операторов
36.15. Интерфейсные расширения для индексов
36.16. Упаковка связанных объектов в расширение
36.17. Инфраструктура создания расширений
37. Триггеры
37.1. Обзор поведения триггеров
37.2. Видимость изменений данных
37.3. Создание функций триггеров на языке C
37.4. Полный пример триггера
38. Триггеры событий
38.1. Обзор поведения триггеров событий
38.2. Матрица срабатывания триггеров событий
38.3. Написание функций триггеров событий на C
38.4. Полный пример триггера события
38.5. Пример триггера события перезаписи таблицы
39. Система правил
39.1. Дерево запросов
39.2. Представления и система правил
39.3. Материализованные представления
39.4. Правила для INSERT, UPDATE и DELETE
39.5. Правила и привилегии
39.6. Правила и статус команд
39.7. Правила против триггеров
40. Процедурные языки
40.1. Установка процедурных языков
41. PL/pgSQLSQL Процедурный Язык
41.1. Обзор
41.2. Структура PL/pgSQL
41.3. Объявления
41.4. Выражения
41.5. Основные операторы
41.6. Структуры управления
41.7. Курсоры
41.8. Управление транзакциями
41.9. Ошибки и сообщения
41.10. Функции триггеров
41.11. PL/pgSQL под капотом
41.12. Советы по разработке в PL/pgSQL
41.13. Перенос из PL/SQL Oracle
42. PL/Tcl — Tcl Процедурный Язык
42.1. Обзор
42.2. Функции и аргументы PL/Tcl
42.3. Значения данных в PL/Tcl
42.4. Глобальные данные в PL/Tcl
42.5. Доступ к базе данных из PL/Tcl
42.6. Функции триггеров в PL/Tcl
42.7. Функции триггеров событий в PL/Tcl
42.8. Обработка ошибок в PL/Tcl
42.9. Явные подтранзакции в PL/Tcl
42.10. Управление транзакциями
42.11. Конфигурация PL/Tcl
42.12. Имена процедур Tcl
43. PL/Perl — Perl Процедурный Язык
43.1. Функции PL/Perl и аргументы
43.2. Значения данных в PL/Perl
43.3. Встроенные функции
43.4. Глобальные значения в PL/Perl
43.5. Доверенный и недоверенный PL/Perl
43.6. Триггеры PL/Perl
43.7. Событийные триггеры PL/Perl
43.8. Под капотом PL/Perl
44. PL/Python — Язык программирования Python для процедурного программирования
44.1. Функции PL/Python
44.2. Значения данных
44.3. Обмен данными
44.4. Анонимные блоки кода
44.5. Функции триггеров
44.6. Доступ к базе данных
44.7. Явные подтранзакции
44.8. Управление транзакциями
44.9. Утилитарные функции
44.10. Python 2 и Python 3
44.11. Переменные среды
45. Интерфейс программирования сервера
45.1. Функции интерфейса
45.2. Функции поддержки интерфейса
45.3. Управление памятью
45.4. Управление транзакциями
45.5. Видимость изменений данных
45.6. Примеры
46. Фоновые рабочие процессы
47. Логическое декодирование
47.1. Примеры логического декодирования
47.2. Концепции логического декодирования
47.3. Интерфейс протокола потоковой репликации
47.4. Интерфейс логического декодирования SQL
47.5. Системные каталоги, связанные с логическим декодированием
47.6. Выходные плагины логического декодирования
47.7. Писатели вывода логического декодирования
47.8. Поддержка синхронной репликации для логического декодирования
47.9. Потоковая передача больших транзакций для логического декодирования
47.10. Поддержка двухфазного комита для логического декодирования
48. Отслеживание прогресса репликации
49. Модули архивации
49.1. Функции инициализации
49.2. Обратные вызовы модуля архива