<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Tcl Procedure Names</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 8.5alpha3 Documentation" HREF="index.html"><LINK REL="UP" TITLE="PL/Tcl - Tcl Procedural Language" HREF="pltcl.html"><LINK REL="PREVIOUS" TITLE="Modules and the unknown command" HREF="pltcl-unknown.html"><LINK REL="NEXT" TITLE="PL/Perl - Perl Procedural Language" HREF="plperl.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2010-04-15T09:31:23"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 8.5alpha3 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="Modules and the unknown command" HREF="pltcl-unknown.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="PL/Tcl - Tcl Procedural Language" HREF="pltcl.html" >Fast Backward</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 39. PL/Tcl - Tcl Procedural Language</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A TITLE="PL/Tcl - Tcl Procedural Language" HREF="pltcl.html" >Fast Forward</A ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A TITLE="PL/Perl - Perl Procedural Language" HREF="plperl.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="PLTCL-PROCNAMES" >39.8. Tcl Procedure Names</A ></H1 ><P > In <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN >, the same function name can be used for different function definitions as long as the number of arguments or their types differ. Tcl, however, requires all procedure names to be distinct. PL/Tcl deals with this by making the internal Tcl procedure names contain the object ID of the function from the system table <TT CLASS="STRUCTNAME" >pg_proc</TT > as part of their name. Thus, <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > functions with the same name and different argument types will be different Tcl procedures, too. This is not normally a concern for a PL/Tcl programmer, but it might be visible when debugging. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="pltcl-unknown.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="plperl.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Modules and the <CODE CLASS="FUNCTION" >unknown</CODE > command</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="pltcl.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >PL/Perl - Perl Procedural Language</TD ></TR ></TABLE ></DIV ></BODY ></HTML >