| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 36. PL/Tcl - Tcl 過程語言 | Fast Forward | Next |
PL/Tcl 使用時支援自動裝載 Tcl 代碼。 它識別一個特殊的資料表,pltcl_modules,該資料表被認為包含 Tcl 代碼的模塊。 如果存在這個資料表,則在建立完解釋器後馬上從該資料表中抓取 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 必需可以為所有人讀取, 但是把它做成只有資料庫管理員可寫並擁有是明智的。