PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

42.11. PL/Tcl 配置 #

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

pltcl.start_proc (string) #

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

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

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

只有超级用户可以修改这个设置。 虽然这个设置可以在会话内被修改,这样的修改不会影响已经创建的 Tcl 解释器。

pltclu.start_proc (string) #

这个参数与 pltcl.start_proc 完全一样, 只是它适用于 PL/TclU。被引用的函数必须 以 pltclu 语言编写。