41.11. Конфигурация PL/Tcl#
41.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
.