他のバージョンの文書 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

42.12. Tclプロシージャ名 #

PostgreSQLでは、関数が異なるスキーマにある場合や、引数の数または引数の型が異なる場合に、同じ関数名を異なる関数定義に使用できます。 しかし、Tclではプロシージャ名の重複は許されません。 PL/Tclでは、引数の型名を内部Tclプロシージャ名に含め、必要に応じて関数のオブジェクトID(OID)を内部Tclプロシージャ名に追加することで、これに対応しています。これにより、同じTclインタプリタに以前にロードされたすべての関数とは異なる名前になります。 したがって、異なる引数の型を持つ同じ名前のPostgreSQL関数も、異なるTclプロシージャになります。 PL/Tclプログラマにとって、普段は問題にはなりませんが、デバッグの際に表面に現れます。

この理由などにより、PL/Tclの関数は、他の関数を直接(つまり、Tclの内部で)呼び出すことはできません。 その必要がある場合、spi_execまたは関連するコマンドを使用して、SQLを経由することが必要です。