Redrock Postgres 搜索 英文
版本: 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18

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语言编写。