| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 38. PL/Tcl - Tcl 過程語言 | Fast Forward | Next |
PL/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 必需可以為所有人讀取, 但是把它做成只有數據庫管理員可寫並擁有是聰明的做法。