在 PostgreSQL 中,如果函数放置在不同的模式中, 或者参数的数量或类型不同,则可以使用相同的函数名称定义不同的函数。 然而,Tcl 要求所有过程名称必须是唯一的。 PL/Tcl 通过在内部 Tcl 过程名称中包含参数类型名称来处理此问题, 然后在必要时将函数的对象 ID (OID) 附加到内部 Tcl 过程名称, 以使其与同一 Tcl 解释器中所有先前加载的函数名称不同。 因此,具有相同名称和不同参数类型的 PostgreSQL 函数 也将是不同的 Tcl 过程。 这通常对 PL/Tcl 程序员来说不是问题, 但在调试时可能会显现出来。
出于这个原因,PL/Tcl 函数不能直接调用另一个函数(即在 Tcl 内部)。
如果需要这样做,必须通过 SQL 进行,使用 spi_exec 或相关命令。