モジュールとunknownコマンド

PostgreSQL 8.4.1文書
前のページ | 巻戻し | 第 39章PL/Tcl - Tcl手続き型言語 | 早送り | 次のページ

# 39.7. モジュールと`unknown`コマンド

PL/Tclでは、使用時に自動的にTclのコードを読み込む機能があります。 これは、Tclコードのモジュールを含むと仮定される`pltcl_modules`という特殊なテーブルを認識します。 このテーブルが存在する場合、そのテーブルから`unknown`モジュールが取り出され、Tclインタプリタの生成後即座に、そのインタプリタに読み込まれます。

実際、`unknown`モジュールには必要な任意の初期化コードを含めることができますが、通常は、そこにTcl "unknown"プロシージャを定義します。 このプロシージャはTclが呼び出されたプロシージャ名を認識できなかった場合に常に呼び出されます。 このプロシージャのPL/Tcl標準バージョンでは、必要なプロシージャを定義している`pltcl_modules`からのモジュール検索を試みます。 プロシージャが検出された場合、インタプリタに読み込まれ、その後、元々試みられたプロシージャ呼び出しを実行することが許されます。 二次的な`pltcl_modfuncs`テーブルは、どの関数がどのモジュールで定義されているかに関するインデックスを提供します。 これにより検索がかなり高速になります。

PostgreSQLの配布には、これらのテーブル管理用のサポートスクリプト、`pltcl_loadmod`、`pltcl_listmod`および`pltcl_delmod`が含まれています。 同様に標準の`unknown`モジュールのソースが`share/unknown.pltcl`に含まれています。 自動読み込み機構をサポートさせるためには、あらかじめ各データベースにこのモジュールを読み込ませる必要があります。

`pltcl_modules`および`pltcl_modfuncs`テーブルは全ユーザから読み取り可能でなければなりません。 しかし、その所有者をデータベース管理者とし、データベース管理者のみが書き込み可能とする方が良いでしょう。

前のページ | ホーム | 次のページ
PL/Tclのトリガプロシージャ | 上に戻る | Tclプロシージャ名