★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 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

37.4. PL/Tclにおけるグローバルデータ

ある関数の複数の呼び出し間で保持される、もしくは、異なる関数間で共有されるような、いくつかのグローバルデータを持つことが有意な場合があります。 あるセッション内で実行される全てのPL/Tclプロシージャは同一の安全なTclインタプリタを共有しますので、これは簡単に実現できます。 ですから、全てのグローバルなTcl変数は、全てのPL/Tcl関数呼び出しでアクセスすることができ、そして、そのSQLセッションの間、持続します (PL/TclU関数も同様にグローバルデータを共有しますが、異なるインタプリタ内で実行されますので、PL/Tcl関数間で通信することができません)。

PL/Tcl関数が予期しない相互作用に巻き込まれないようにするために、upvarコマンドを使用することによって、各関数でアクセスできるグローバルな配列を作成することができます。 この変数のグローバル名はプロシージャの内部名で、ローカル名はGDとなります。 関数の永続局所データではGDを使用することを推奨します。 複数の関数で共用させる予定の値に対してのみ、通常のTclのグローバル変数を使用してください。

後述のspi_execpの例の中にGDの使用例があります。