在 PostgreSQL 中,如果函数位于不同的模式(schema)中,或者函数的参数数量或类型不同,可以使用相同的函数名来定义不同的函数。然而,Tcl 要求所有过程名都必须是唯一的。PL/Tcl 通过在内部 Tcl 过程名中包含参数类型名称来解决这个问题,并在必要时将函数的对象 ID (OID) 追加到内部 Tcl 过程名后面,以使其与同一 Tcl 解释器中之前加载的所有函数名称区分开。因此,同名但参数类型不同的 PostgreSQL 函数也将是不同的 Tcl 过程。这通常不是 PL/Tcl 程序员需要关心的问题,但在调试时可能会显现出来。
出于此原因以及其他原因,PL/Tcl 函数不能直接(即在 Tcl 内部)调用另一个函数。如果需要这样做,您必须通过 SQL 调用,使用 spi_exec
或相关命令。
如果您在文档中看到任何不正确、与您的实际经验不符或需要进一步澄清的内容,请使用此表单报告文档问题。