Content-Length: 74756 | pFad | http://postgrespro.ru/docs/postgrespro/9.6/pltcl-unknown.html

Postgres Pro Standard : Документация: 9.6: 40.9. Модули и команда unknown : Компания Postgres Professional

40.9. Модули и команда unknown

PL/Tcl поддерживает автозагрузку кода Tcl. Для этого он задействует специальную таблицу, pltcl_modules, предназначенную для размещения модулей кода Tcl. Если эта таблица существует, из таблицы выбирается модуль unknown и загружается в интерпретатор Tcl непосредственно перед первым выполнением функции PL/Tcl в сеансе базы данных. (Это происходит независимо для каждого интерпретатора Tcl, если их несколько в одном сеансе; см. Раздел 40.4.)

Хотя модуль unknown может на самом деле содержать любой нужный вам скрипт инициализации, обычно в нём определяется процедура unknown языка Tcl, которая вызывается всякий раз, когда Tcl не распознаёт имя вызываемой процедуры. Принятая в PL/Tcl версия этой процедуры пытается найти в pltcl_modules модуль, в котором будет определена требуемая процедура. Если такой модуль находится, он загружается в интерпретатор и затем выполнение изначального вызова процедуры может быть продолжено. Дополнительная таблица pltcl_modfuncs содержит индекс, связывающий функции с модулями, в которых они определены, так что поиск выполняется довольно быстро.

В составе Postgres Pro поставляются вспомогательные скрипты для обслуживания этих таблиц: pltcl_loadmod, pltcl_listmod, pltcl_delmod, а также исходный код стандартного модуля unknown в share/unknown.pltcl. Для поддержки механизма автозагрузки этот модуль должен изначально загружаться в каждую базу данных.

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









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://postgrespro.ru/docs/postgrespro/9.6/pltcl-unknown.html

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy