Перейти к основному содержимому

Процедурные языки

примечание

Эта страница переведена при помощи нейросети 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»). Существуют дополнительные процедурные языки, которые не включены в основную поставку. В приложении H содержится информация о том, где их найти. Кроме того, пользователи могут определять другие языки; основы разработки нового процедурного языка описаны в разделе «Написание обработчика процедурного языка».