42.12. Имена процедур Tcl #
В PostgreSQL одно имя функции может использоваться разными определениями функций, если они расположены в разных схемах или если они имеют разное число и типы аргументов. Tcl, однако, требует, чтобы имена всех процедур различались. PL/Tcl решает эту проблему, включая в состав внутреннего имени процедур Tcl имена типов аргументов, а затем прибавляя к внутреннему имени процедуры Tcl идентификатор объекта функции (OID), если нужно, чтобы имя отличалось от имён других ранее загруженных функций в рамках одного интерпретатора Tcl. Таким образом, функциям PostgreSQL с одним именем и разными типами аргументов так же будут соответствовать различные процедуры Tcl. Это обычно остаётся незамеченным для программиста PL/Tcl, но может проявиться при отладке.
В том числе по этой причине функция PL/Tcl не может напрямую вызвать другую функцию (то есть в рамках Tcl). Это можно сделать через SQL, использовав функцию spi_exec
или связанную команду.