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