43.10. PL/Tcl 配置

本节列出了影响PL/Tcl的配置参数。

pltcl.start_proc (string)

此参数如果设置为非空字符串,则指定无论什么时候为PL/Tcl创建新的Tcl 解释器都要执行的无参数PL/Tcl函数的名称(可能是模式限定的)。 这样的函数可以执行每个会话的初始化,例如加载额外的Tcl代码。 当在数据库会话中首次执行PL/Tcl函数时,或者由于新的SQL角色调用了PL/Tcl 函数而必须创建额外的解释器时,会创建一个新的Tcl解释器。

引用的函数必须以pltcl语言编写,且不得标记为 SECURITY DEFINER。(这些限制确保它在它应该初始化的解释器中运行。) 当前用户也必须有权调用它。

如果函数因错误而失败,它将中止导致新解释器被创建并传播到调用查询的函数调用, 导致当前事务或子事务被中止。在Tcl中已经完成的任何操作都不会被撤消; 但是,不会再使用该解释器。如果再次使用该函数,则将在新的Tcl解释器中再次尝试初始化。

只有超级用户可以更改此设置。尽管可以在会话中更改此设置, 但这些更改不会影响已经创建的Tcl解释器。

pltclu.start_proc (string)

该参数与pltcl.start_proc完全相同, 只是它适用于PL/TclU。引用的函数必须用pltclu语言编写。