search_path (string)
這個變量指定當一個對象(表、數據類型、函數等)被用一個無模式限定的簡單名稱引用時,用于進行搜索該對象的模式順序。當在不同模式中有同名對象時,將使用第一個在搜索路徑中被找到的對象。一個不屬于搜索路徑中任何一個模式的對象只能通過用限定名(帶點號)指定包含它的模式來引用。search_path的值必需是一個逗號分隔的模式名列表。任何不是一個已有模式的名稱,或者是一個用戶不具有USAGE權限的模式,將被安靜地忽略。如果列表項之一是特殊名?user,則具有SESSION_USER返回的名字的模式將取代它(如果有這樣一個模式并且該用戶有該模式的USAGE權限;如果沒有,user會被忽略)。系統目錄模式pg_catalog總是被搜索,不管它是否在搜索路徑中被提及。如果它在路徑中被提及,那么它將被按照路徑指定的順序搜索。如果pg_catalog不在路徑中,則它將在任何路徑項之前被搜索。同樣,當前會話的臨時表模式pg_temp_nnn也總是被搜索(如果存在)。它可以在路徑中通過使用別名pg_temp顯式列出。如果在路徑中沒有列出,那么會首先對它進行搜索(甚至是在pg_catalog之前)。然而,臨時模式只被用來搜索關系(表、視圖、序列等)和數據類型名。它從不用于搜索函數或操作符名。當對象創建時沒有指定一個特定目標模式,它們將被放置在search_path中第一個合法模式中。如果搜索路徑為空將報告一個錯誤。這個參數的缺省值是"$user", public。這種設置支持一個數據庫(其中沒有用戶擁有私有模式,并且所有人共享使用public)、每個用戶私有模式及其組合的共享使用。其它效果可以通過全局或者針對每個用戶修改默認搜索路徑設置獲得。搜索路徑的當前有效值可以通過SQL函數current_schemas檢查。它和檢查search_path的值不太一樣,因為current_schemas顯示出現在search_path中的項如何被解析。
row_security (boolean)
此變量控制是否提高錯誤以代替應用行安全策略。當設置為on時,策略往往適用。 當設置為off時,查詢失敗,這將應用至少一個策略。默認為on。在有限的行可見性引起不正確的結果的位置更改為off。例如,pg_dump使用缺省更改。這個變量不影響避開每行安全策略的角色,即超級用戶和具有BYPASSRLS屬性的角色。關于行安全策略的更多信息,參閱CREATE POLICY。
default_tablespace (string)
這個變量指定當一個CREATE命令沒有顯式指定一個表空間時,創建對象(表和索引)的默認表空間。該值要么是一個表空間的名字,要么是一個指定使用當前數據庫默認表空間的空字符串。如果該值和任何現有表空間的名字都不匹配,TeleDB將自動使用當前數據庫的默認表空間。如果指定了一個非默認的表空間,用戶必須對它有CREATE權限,否則創建企圖將失敗。這個變量不被用于臨時表,對臨時表會使用temp_tablespaces。當創建數據庫時也會使用這個變量。默認情況下,一個新數據庫會從它的模板數據庫繼承其表空間設置。有關表空間的更多的信息。
temp_tablespaces (string)
這個變量指定當一個CREATE命令沒有顯式指定一個表空間時,創建臨時對象(臨時表和臨時表上的索引)的默認表空間。用于排序大型數據集的臨時文件也被創建在這些表空間中。該值是一個表空間名字的列表。當列表中有多于一個名稱時,每次一個臨時對象被創建時TeleDB隨機選擇列表中的一個成員。例外是在一個事務中,連續創建的臨時對象被放置在里表中的連續表空間中。如果列表被選中元素是一個空字符串,TeleDB將自動使用當前數據庫的默認表空間。當temp_tablespaces被交互式地設置時,指定一個不存在的表空間是一種錯誤,類似于為用戶指定一個不具有CREATE權限的表空間。不過,當使用一個之前設置的值時,不存在的表空間會被忽略,就像用戶缺少CREATE權限的表空間一樣。特殊地,使用一個在postgresql.conf中設置的值時,這條規則起效。默認值是一個空字符串,它使得所有臨時對象被創建在當前數據庫的默認表空間中。參閱default_tablespace。
check_function_bodies (boolean)
這個參數通常為打開。當設置為off時,它禁用CREATE FUNCTION期間對函數體字符串的驗證。禁用驗證避免了驗證處理的副作用并且避免了如向前引用導致的偽肯定。在代表其他用戶載入函數之前設置這個參數為off;pg_dump會自動這樣做。
default_transaction_isolation (enum)
每個SQL 事務都有一個隔離級別,可以是“讀未提交”、“讀已提交”、“可重復讀”或者“可序列化”。這個參數控制每個新事務的默認隔離級別。默認是“讀已提交”。
default_transaction_read_only (boolean)
一個只讀的SQL 事務不能修改非臨時表。這個參數控制每個新事務的默認只讀狀態 。默認是off(讀/寫)。更多信息請參考SET TRANSACTION。
default_transaction_deferrable (boolean)
當運行在可序列化隔離級別時,一個可延遲只讀SQL 事務可以在它被允許繼續之前延遲一段時間。但是,一旦它開始執行就不會產生任何用來保證可序列化性的負荷;因此序列化代碼將沒有任何理由因為并發更新而強制它中斷,使得這個選項適合于長時間運行的只讀事務。這個參數控制每個新事務的默認可延遲狀態。目前它對讀寫事務或者那些操作在低于可序列化隔離級別上的事務無效。默認值是off。詳情請參閱SET TRANSACTION。
session_replication_role (enum)
為當前會話控制復制相關的觸發器和規則的觸發。需要超級用戶權限才能設置這個變量,并且會導致丟棄任何之前緩存下來的查詢計劃。可能的值有origin(默認)、replica和local。詳見ALTER TABLE。
statement_timeout (integer)
中止任何使用了超過指定毫秒數的語句,從命令到達服務器開始計時。如果log_min_error_statement被設置為ERROR或更低,語句如果超時也會被記錄。一個零值(默認)將關閉這個參數。我們不推薦在postgresql.conf中設置statement_timeout,因為它會影響所有會話。
lock_timeout (integer)
如果任何語句在試圖獲取表、索引、行或其他數據庫對象上的鎖時等到超過指定的毫秒數,該語句將被中止。該時間限制獨立地應用于每一次鎖獲取嘗試。該限制會應用到顯式鎖定請求(如LOCK TABLE或不帶NOWAIT的SELECT FOR UPDATE)和隱式獲得的鎖。如果log_min_error_statement被設置為ERROR或更低,超時的語句會被記錄。一個零值(默認)將關閉這個參數。與statement_timeout不同,這個超時只在等待鎖時發生。注意如果statement_timeout為非零,設置lock_timeout為相同或更大的值沒有意義,因為事務超時將總是第一個被觸發。我們不推薦在postgresql.conf中設置lock_timeout,因為它會影響所有會話。
idle_in_transaction_session_timeout (integer)
終止任何已經閑置超過這個參數所指定的時間(以毫秒計)的打開事務的會話。這使得該會話所持有的任何鎖被釋放,并且其所持有的連接槽可以被重用,它也允許只對這個事務可見的元組被清理。默認值0 會禁用這個特性。
vacuum_freeze_table_age (integer)
當表的pg_class.relfrozenxid域達到該設置指定的年齡時,VACUUM會執行一次全表掃描。 積極的掃描不同于常規的VACUUM,因為它會訪問每個可能包含未凍結XID或MXID的頁面,而不僅僅是那些可能包含死元組的頁面。 默認值是 1.5 億個事務。盡管用戶可以把這個值設置為從 0 到 20 億,VACUUM會悄悄地將有效值限制為autovacuum_freeze_max_age值的95%,因此在表上啟動一次反回卷自動清理之前有機會進行一次定期手動VACUUM。
vacuum_freeze_min_age (integer)
指定VACUUM在掃描表時用來決定是否凍結行版本的切斷年齡(以事務計)。默認值是 5 千萬個事務。盡管用戶可以將這個值設置為從 0 到 10 億,VACUUM會悄悄地將有效值限制為autovacuum_freeze_max_age值的一半,這樣在強制執行的自動清理之間不會有過短的時間間隔。
vacuum_multixact_freeze_table_age (integer)
如果表的pg_class.relminmxid域超過了這個設置指定的年齡,VACUUM會執行一次全表掃描。 積極的掃描不同于常規的VACUUM,因為它會訪問每個可能包含未凍結XID或MXID的頁面,而不僅僅是那些可能包含死元組的頁面。 默認值是 1.5 億個組合事務。盡管用戶可以把這個值設置為從 0 到 20 億,VACUUM會悄悄地將有效值設置為autovacuum_multixact_freeze_max_age值的95%,因此在表上啟動一次反回卷自動清理之前有機會進行一次定期手動VACUUM。
vacuum_multixact_freeze_min_age (integer)
指定VACUUM在掃描表時用來決定是否把組合事務 ID 替換為一個更新的事務 ID 或組合事務 ID 的切斷年齡(以組合事務計)。默認值是 5 千萬個組合事務。盡管用戶可以將這個值設置為從 0 到 10 億,VACUUM會悄悄地將有效值設置為autovacuum_multixact_freeze_max_age值的一半,這樣在強制執行的自動清理之間不會有過短的時間間隔。
bytea_output (enum)
設置bytea類型值的輸出格式。有效值是hex(默認)和 escape(傳統格式)。不管這個設置的值如何,bytea類型總是接受這兩種格式的輸入。
xmlbinary (enum)
設置二進制值如何被編碼為XML。例如,這適用于通過xmlelement函數或xmlforest函數將bytea值轉換到 XML 值。可能的值有base64和hex,它們都是用 XML 模式標準定義的。默認值是base64。這里的實際選擇都是根據愛好做出的,只受客戶端應用中可能存在的限制的約束。兩種方法都支持所有可能的值,盡管十六進制編碼將比 base64 編碼更大。
xmloption (enum)
當在XML和字符串值之間進行轉換時,無論設置DOCUMENT或 CONTENT都是隱式的。 有效值是DOCUMENT和CONTENT。 缺省值是CONTENT。 當在 XML 和字符串值之間進行轉換時,設置DOCUMENT或CONTENT都是隱式的。
有效值是DOCUMENT和CONTENT。默認值是CONTENT。根據 SQL 標準,設置這個選項的命令是:SET XML OPTION { DOCUMENT | CONTENT }。
gin_pending_list_limit (integer)
當啟用fastupdate時,設置正在使用的GIN掛起列表的最大尺寸。如果列表增長大于這個最大尺寸, 通過移動塊存儲的主要的GIN數據結構項進行清理。 默認值為四字節(4MB)。 為單個GIN索引改變索引存儲參數來重寫此設置。