42.11. Конфигурация PL/Tcl#

42.11. Конфигурация PL/Tcl

42.11. Конфигурация PL/Tcl

Этот раздел перечисляет параметры конфигурации, которые влияют на PL/Tcl.

pltcl.start_proc (string)

Если этот параметр установлен в непустую строку, то он указывает имя (возможно, с указанием схемы) функции PL/Tcl без параметров, которая должна выполняться каждый раз при создании нового интерпретатора Tcl для PL/Tcl. Такая функция может выполнять инициализацию для каждой сессии, например, загрузку дополнительного кода Tcl. Новый интерпретатор Tcl создается, когда функция PL/Tcl выполняется впервые в сессии базы данных или когда требуется создать дополнительный интерпретатор, потому что функция PL/Tcl вызывается новой ролью SQL.

Ссылочная функция должна быть написана на языке pltcl и не должна быть помечена как SECURITY DEFINER. (Эти ограничения гарантируют, что она будет выполняться в соответствующем интерпретаторе). Текущий пользователь также должен иметь разрешение на ее вызов.

Если функция завершается с ошибкой, она прерывает вызов функции, который вызвал создание нового интерпретатора, и передает ошибку обратно к вызывающему запросу, что приводит к прерыванию текущей транзакции или подтранзакции. Любые действия, уже выполненные в рамках Tcl, не будут отменены; однако этот интерпретатор больше не будет использоваться. Если язык будет использован снова, инициализация будет попытана снова в рамках нового интерпретатора Tcl.

Только суперпользователи могут изменять это значение. Хотя это значение может быть изменено в рамках сессии, такие изменения не будут влиять на уже созданные интерпретаторы Tcl.

pltclu.start_proc (string)

Этот параметр точно такой же, как pltcl.start_proc, за исключением того, что он применяется к PL/TclU. Ссылочная функция должна быть написана на языке pltclu.