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

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

примечание

Эта страница переведена при помощи нейросети GigaChat.

Этот раздел содержит параметры конфигурации, которые влияют на 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.