Процедурные языки
Эта страница переведена при помощи нейросети GigaChat.
PostgreSQL позволяет пользователям создавать функции на других языках помимо SQL и C. Эти другие языки называются процедурными языками (PL). Для функций, написанных на процедурном языке, сервер базы данных не имеет встроенных знаний о том, как интерпретировать исходный текст функции. Вместо этого задача передается специальному обработчику, который знает детали языка. Обработчик может либо выполнять всю работу по разбору, синтаксическому анализу, выполнению и т.д., либо служить в качестве «клея» между PostgreSQL и существующей реализацией языка программирования. Сам обработчик является функцией на языке C, скомпилированной в общий объект и загружаемой по требованию, так же как любая другая функция на C.
В настоящее время в стандартной поставке PostgreSQL доступно четыре процедурных языка:
- PL/pgSQL (раздел «PL/pgSQL — процедурный язык SQL»),
- PL/Tcl (раздел «PL/Tcl — процедурный язык Tcl»),
- PL/Perl (раздел «PL/Perl — процедурный язык Perl»),
- PL/Python (раздел «PL/Python - процедурный язык Python»).
Существуют дополнительные процедурные языки, которые не включены в основную поставку. Кроме того, пользователи могут создавать другие языки. Основы разработки нового процедурного языка описаны в разделе «Написание обработчика процедурного языка».