Часть V. Серверное программирование
Эта часть документации посвящена расширению функциональности сервера путём реализации собственных функций, типов данных, триггеров и т. д. Это довольно сложные темы, для освоения которых рекомендуется предварительно изучить и понять всю остальную документацию для пользователей PostgreSQL. В последних главах этой части описываются языки программирования на стороне сервера, поддерживаемые дистрибутивом PostgreSQL, и рассматриваются общие вопросы, связанные с программированием на стороне сервера. Но прежде чем погружаться в этот материал, важно изучить предыдущие разделы Главы 37 (где освещаются функции).
Содержание
- 37. Расширение SQL
- 37.1. Как реализована расширяемость
- 37.2. Система типов PostgreSQL
- 37.3. Пользовательские функции
- 37.4. Функции на языке запросов (SQL)
- 37.5. Перегрузка функций
- 37.6. Категории изменчивости функций
- 37.7. Функции на процедурных языках
- 37.8. Внутренние функции
- 37.9. Функции на языке C
- 37.10. Пользовательские агрегатные функции
- 37.11. Пользовательские типы
- 37.12. Пользовательские операторы
- 37.13. Информация для оптимизации операторов
- 37.14. Интерфейсы расширений для индексов
- 37.15. Упаковывание связанных объектов в расширение
- 37.16. Инфраструктура сборки расширений
- 38. Триггеры
- 39. Триггеры событий
- 40. Система правил
- 41. Процедурные языки
- 42. PL/pgSQL — процедурный язык SQL
- 43. PL/Tcl — процедурный язык Tcl
- 43.1. Обзор
- 43.2. Функции на PL/Tcl и их аргументы
- 43.3. Значения данных в PL/Tcl
- 43.4. Глобальные данные в PL/Tcl
- 43.5. Обращение к базе данных из PL/Tcl
- 43.6. Процедуры триггеров на PL/Tcl
- 43.7. Процедуры событийных триггеров в PL/Tcl
- 43.8. Обработка ошибок в PL/Tcl
- 43.9. Явные подтранзакции в PL/Tcl
- 43.10. Конфигурация PL/Tcl
- 43.11. Имена процедур Tcl
- 44. PL/Perl — процедурный язык Perl
- 45. PL/Python — процедурный язык Python
- 46. Интерфейс программирования сервера
- 47. Фоновые рабочие процессы
- 48. Логическое декодирование
- 48.1. Примеры логического декодирования
- 48.2. Концепции логического декодирования
- 48.3. Интерфейс протокола потоковой репликации
- 48.4. Интерфейс логического декодирования на уровне SQL
- 48.5. Системные каталоги, связанные с логическим декодированием
- 48.6. Модули вывода логического декодирования
- 48.7. Запись вывода логического декодирования
- 48.8. Поддержка синхронной репликации для логического декодирования
- 49. Отслеживание прогресса репликации
Bibliography
Selected references and readings for SQL and PostgreSQL.
Some white papers and technical reports from the original POSTGRES development team are available at the University of California, Berkeley, Computer Science Department web site.
SQL Reference Books
[bowman01] The Practical SQL Handbook. Using SQL Variants. Fourth Edition. ISBN 0-201-70309-2. Addison-Wesley Professional. 2001.
[date97] A Guide to the SQL Standard. A user's guide to the standard database language SQL. Fourth Edition. ISBN 0-201-96426-0. Addison-Wesley. 1997.
[date04] An Introduction to Database Systems. Eighth Edition. ISBN 0-321-19784-4. Addison-Wesley. 2003.
[elma04] Fundamentals of Database Systems. Fourth Edition. ISBN 0-321-12226-7. Addison-Wesley. 2003.
[melt93] Understanding the New SQL. A complete guide. ISBN 1-55860-245-3. Morgan Kaufmann. 1993.
[ull88] Principles of Database and Knowledge-Base Systems. Classical Database Systems. Computer Science Press. 1988.
PostgreSQL-specific Documentation
[sim98] Enhancement of the ANSI SQL Implementation of PostgreSQL. Department of Information Systems, Vienna University of Technology. Vienna, Austria. November 29, 1998.
[yu95] The Postgres95. User Manual. University of California. Berkeley, California. Sept. 5, 1995.
[fong] The design and implementation of the POSTGRES query optimizer. University of California, Berkeley, Computer Science Department.
Proceedings and Articles
[ports12] “Serializable Snapshot Isolation in PostgreSQL”. VLDB Conference, August 2012.
[berenson95] “A Critique of ANSI SQL Isolation Levels”. ACM-SIGMOD Conference on Management of Data, June 1995.
[olson93] Partial indexing in POSTGRES: research project. UCB Engin T7.49.1993 O676. University of California. Berkeley, California. 1993.
[ong90] “A Unified Framework for Version Modeling Using Production Rules in a Database System”. ERL Technical Memorandum M90/33. University of California. Berkeley, California. April, 1990.
[rowe87] “The POSTGRES data model”. VLDB Conference, Sept. 1987.
[seshadri95] “Generalized Partial Indexes”. Eleventh International Conference on Data Engineering, 6-10 March 1995. Cat. No.95CH35724. IEEE Computer Society Press. Los Alamitos, California. 1995. 420-7.
[ston86] “The design of POSTGRES”. ACM-SIGMOD Conference on Management of Data, May 1986.
[ston87a] “The design of the POSTGRES rules system”. IEEE Conference on Data Engineering, Feb. 1987.
[ston87b] “The design of the POSTGRES storage system”. VLDB Conference, Sept. 1987.
[ston89] “A commentary on the POSTGRES rules system”. SIGMOD Record 18(3). Sept. 1989.
[ston89b] “The case for partial indexes”. SIGMOD Record 18(4). Dec. 1989. 4-11.
[ston90a] “The implementation of POSTGRES”. Transactions on Knowledge and Data Engineering 2(1). IEEE. March 1990.
[ston90b] “On Rules, Procedures, Caching and Views in Database Systems”. ACM-SIGMOD Conference on Management of Data, June 1990.