pg_pltemplate 為過程語言存儲"模板"信息。一個語言的模板允許該語言可以在某個數據庫裡使用簡單的 CREATE LANGUAGE 命令創建,而不需要聲明實現細節。
和許多係統表不一樣,pg_pltemplate 是在集群裡的所有數據庫之間共享的:每個集群隻有一個 pg_pltemplate 的拷貝,而不是每個數據庫一個。這樣就允許這些信息在需要時每個數據庫都可以訪問。
表43-26. pg_pltemplate 字段
名字 | 類型 | 描述 | |
---|---|---|---|
tmplname | name | 這個模板所應用的語言的名字 | |
tmpltrusted | boolean | 如果語言被認為是可信的,則為真 | |
tmplhandler | text | 調用處理器函數的名字 | |
tmplvalidator | text | 校驗函數的名字,如果冇有則為 NULL | |
tmpllibrary | text | 實現語言的共享庫的路徑 | |
tmplacl | aclitem[] | 模板的訪問權限(未使用) |
目前還冇有任何命令可以用於操作過程語言模板;要修改內置的信息,超級用戶必須使用普通的 INSERT, DELETE, UPDATE 命令修改該表。將來版本的 PostgreSQL 有可能提供一些命令來修改這些內容,以便更清晰些。
在實現的時候,tmplacl 字段將提供對模板自身的訪問控製(也就是使用它創建一個語言的權限),而不是對那些從模板創建的語言的訪問控製。