<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 18.11\. 客戶端連接缺省 ## 18.11.1\. 語句行為 `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`(參閱[Section 9.25](#calibre_link-1457)) 檢查。它和檢查`search_path`的值不太一樣,因為`current_schemas` 顯示的是在`search_path`里出現的項如何被處理。 有關模式處理的更多信息,參閱[Section 5.7](#calibre_link-1458)。 `default_tablespace` (`string`) 這個變量聲明當`CREATE`命令沒有明確聲明表空間時, 所創建對象(表和索引等)的缺省表空間。 值要么是一個表空間的名字,要么是一個表明使用當前數據庫缺省表空間的空字符串。 如果這個數值和任意現存表空間的名字都不匹配, 那么PostgreSQL將自動使用當前數據庫的缺省表空間。 如果聲明非缺省表空間,用戶必須有`CREATE`權限,或者創建嘗試將失敗。 這個變量不用于臨時表;對他們來說, [temp_tablespaces](#calibre_link-91)提供諮詢。 這個變量在創建數據庫時也沒有使用。默認情況下,新的數據庫繼承了從 模板數據庫復制的表空間設置。 關于表空間的更多信息,請參閱[Section 21.6](#calibre_link-1269)。 `temp_tablespaces` (`string`) 當`CREATE`命令不明確指定一個表空間時, 這個變量指定要在其中創建臨時對象的表空間(臨時表和臨時表的索引)。 出于此目的的臨時文件,比如排序大型數據集,也在這些表空間中創建。 該值是表空間名稱的列表。當列表中有一個以上名稱時, PostgreSQL每次臨時對象被創建時選擇一個列表中的隨機數; 除了在一個事務中之外,先后創建臨時 對象放置在列表連續的表空間中。 如果列表中選定的元素是一個空字符串, PostgreSQL會自動使用當前數據庫的缺省表空間。 當`temp_tablespaces`交互設置時,指定 不存在的表空間是一個錯誤,為 不具有`CREATE`權限的用戶聲明一個表空間。但是, 當使用事先設定的值時,則忽略不存在的表空間, 因為對于缺少`CREATE`權限的用戶是一個表空間。 特別是,該規則適用于使用`postgresql.conf`設置的值時。 默認值是一個空字符串,這會導致所有臨時對象在當前數據庫缺省表空間被創建。 參閱[default_tablespace](#calibre_link-90)。 `check_function_bodies` (`boolean`) 這個參數通常是on。設置為`off`表示在[CREATE FUNCTION](#calibre_link-4)之間關閉函數體字符串的合法性檢查。 關閉合法性檢查有時候會有用,比如避免從轉儲中恢復函數定義時向前引用的問題。 `default_transaction_isolation` (`enum`) 每個SQL事務都有一個隔離級別,可以是"讀未提交","讀已提交", "可重復讀"或者是"可串性化"。 這個參數控制每個新事務的缺省隔離級別。缺省是"讀已提交"。 參考[Chapter 13](#calibre_link-444)和[SET TRANSACTION](#calibre_link-507)獲取更多信息。 `default_transaction_read_only` (`boolean`) 只讀的SQL事務不能修改非臨時表。這個參數控制每個新事務的只讀狀態。缺省是`off`(讀/寫)。 參考[SET TRANSACTION](#calibre_link-507)獲取更多信息。 `default_transaction_deferrable` (`boolean`) 當在`可串行化`隔離級別下運行時, 延遲的只讀SQL事務允許繼續進行之前可能會延遲。 然而,一旦開始執行不會產生任何開銷要求,以確保串行化; 所以串行化代碼沒有理由迫使它終止,因為并發更新, 這使這些選項適合長時間運行只讀事務。 此參數控制每個新事務缺省延遲狀態。 它目前對讀寫事務或那些比`可串行化`低的隔離級別下的操作沒有影響。 缺省是`off`。 參閱[SET TRANSACTION](#calibre_link-507)獲取更多詳細信息。 `session_replication_role` (`enum`) 控制當前會話復制相關的觸發器和規則。設置此變量需要 超級用戶權限,并導致丟棄任何以前緩存查詢規劃。 可能的值是`origin` (缺省),`replica`和`local`。 參閱[ALTER TABLE](#calibre_link-88)獲取更多信息。 `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`, 因為它影響所有的會話。 `vacuum_freeze_table_age` (`integer`) 如果該表`pg_class`.`relfrozenxid` 字段已達到此設置中指定的時間,`VACUUM`執行全表掃描。 默認值是1.5億個事務。雖然用戶可以從零到十億設置此值。 `VACUUM`會默默的限制[autovacuum_freeze_max_age](#calibre_link-96)的95%的有效值, 從而使定期手動的`VACUUM`在自動清理該表之前有運行機會。 詳細信息請見[Section 23.1.5](#calibre_link-92)。 `vacuum_freeze_min_age` (`integer`) 指定`VACUUM`在掃描一個表時用于判斷是否用`FrozenXID` 替換事務ID的中斷壽命(在同一個事務中)。 缺省值為50百萬。雖然用戶可以指定一個 0-1000000000之間的值, 但是`VACUUM`將會悄無聲息的將有效值限制在[autovacuum_freeze_max_age](#calibre_link-96)的一半之內。 更多信息參見[Section 23.1.5](#calibre_link-92)。 `bytea_output` (`enum`) 設置`bytea`類型值的輸出格式。 有效值為`hex` (缺省) 和`escape` (傳統PostgreSQL 格式)。參見[Section 8.4](#calibre_link-628)獲取更多信息。 不管這些設置,其中`bytea`類型總是接受這兩種格式的輸入。 `xmlbinary` (`enum`) 設置二進制值是如何在XML中進行編碼的。 這適用于當`bytea`值通過`xmlelement` 或者`xmlforest`函數被轉換為XML。 可能的值是`base64`和`hex`, 這在XML模式標準中定義。默認值是`base64`。 關于XML相關的函數的進一步信息,請參閱[Section 9.14](#calibre_link-1459)。 這里的實際選擇主要是口味問題, 只有在客戶端應用程序中可能存在某些限制約束。 這兩種方法都支持所有可能的值, 雖然十六進制編碼將會比base64編碼大一些。 `xmloption` (`enum`) 當XML和字符串值之間進行轉換時,設置`DOCUMENT`或 `CONTENT`是否是隱含的。 參見[Section 8.13](#calibre_link-1460)獲取更多詳細信息。有效 值`DOCUMENT`和`CONTENT`。缺省是 `CONTENT`。 按照SQL標準,設置這個選項的命令是: ``` SET XML OPTION { DOCUMENT | CONTENT }; ``` 這種語法在PostgreSQL中是可用的。 ## 18.11.2\. 區域和格式化 `DateStyle` (`string`) 設置日期和時間值的顯示格式,以及有歧義的輸入值的解析規則。 由于歷史原因,這個變量包含兩個獨立的部分:輸出格式聲明(`ISO`, `Postgres`, `SQL`或者`German`)、 輸入輸出的年/月/日順序(`DMY`, `MDY`或者`YMD`)。 這兩個可以獨立設置或者一起設置。 關鍵字`Euro`和`European` 等價于`DMY`; 關鍵字`US`, `NonEuro`和 `NonEuropean`等價于`MDY`。 參閱[Section 8.5](#calibre_link-783)獲取更多信息。內置缺省是`ISO, MDY`, 但是initdb將在初始化配置文件時根據`lc_time`選擇一個合適的默認設置。 `IntervalStyle` (`enum`) 設置區間值的顯示格式。 `sql_standard`將產生輸出匹配SQL標準時間間隔。 `postgres`的值(默認值)會產生輸出匹配PostgreSQL8.4之前的版本。 當[DateStyle](#calibre_link-787)參數設置為`ISO`時。 `postgres_verbose`將產生輸出匹配PostgreSQL8.4之前的版本。 當`DateStyle`參數被設置成非-`ISO`輸出時。 `iso_8601`將產生輸出匹配4.4.3.2節中ISO 8601定義的時間間隔格式。 `IntervalStyle`參數也會影響不明確的間隔輸入的說明。 參閱[Section 8.5.4](#calibre_link-1461)獲取更多詳細信息。 `TimeZone` (`string`) 設置用于顯示和解析時間戳的時區。內置缺省值`GMT`, 但是,這通常被`postgresql.conf`改寫;initdb 將安裝設置對應它的系統環境。 意味著使用系統環境聲明的時區。 參閱[Section 8.5.3](#calibre_link-792)獲取更多信息。 `timezone_abbreviations` (`string`) 設置服務器接受日期時間輸入中使用的時區縮寫集合。缺省值`'Default'`, 在全世界大多數地方都能工作的很好。 另外的可用值還有`'Australia'`和`'India'`等其它值。 參見[Appendix B](#calibre_link-121)以獲取更多信息。 `extra_float_digits` (`integer`) 這個參數為浮點數值調整顯示的數據位數,浮點類型包括`float4`, `float8`以及幾何數據類型。 參數值加在標準的數據位數上(`FLT_DIG`或者`DBL_DIG`中合適的)。 數值可以設置為最高3, 以包括部分關鍵的數據位;這個功能對轉儲那些需要精確恢復的浮點數據特別有用。 或者你也可以把它設置位負數以消除不需要的數據位。 參閱[Section 8.1.3](#calibre_link-1462)。 `client_encoding` (`string`) 設置客戶端編碼(字符集)。缺省使用數據庫編碼。 字符集通過[Section 22.3.1](#calibre_link-1463)里描述的 PostgreSQL服務器支持。 `lc_messages` (`string`) 設置信息顯示的語言。可接受的值是系統相關的; 參閱[Section 22.1](#calibre_link-1271)獲取更多信息。如果這個變量設置為空字符串(缺省值), 那么其值將以一種系統相關的方式從服務器的執行環境中繼承。 在一些系統上,這個區域范疇并不存在,不過仍然允許設置這個變量, 只是不會有任何效果。同樣,也有可能是所期望的語言的翻譯信息不存在。 在這種情況下,你仍然能看到英文信息。 只有超級用戶可以改變這個設置。因為它同時影響發送到服務器日志和客戶端的信息。 并且不正確的值可能會掩蓋服務器日志的可讀性。 `lc_monetary` (`string`) 為格式化金額數量設置區域。比如用于`to_char`函數族。可接受的值是系統相關的; 參閱[Section 22.1](#calibre_link-1271)獲取更多信息。如果這個變量設置為空字符串(缺省值), 那么其值將以一種系統相關的方式從服務器的執行環境中繼承。 `lc_numeric` (`string`) 設置用于格式化數字的區域,比如用于`to_char`函數族。可接受的值是系統相關的; 參閱[Section 22.1](#calibre_link-1271)獲取更多信息。如果這個變量設置為空字符串(缺省值), 那么其值將以一種系統相關的方式從服務器的執行環境中繼承。 `lc_time` (`string`) 設置用于格式化日期和時間值的區域。比如`to_char`函數族, 可接受的值是系統相關的;參閱[Section 22.1](#calibre_link-1271)獲取更多信息。 如果這個變量設置為空字符串(缺省值), 那么其值將以一種系統相關的方式從服務器的執行環境中繼承。 `default_text_search_config` (`string`) 選擇文本搜索函數使用的那些變量的文本搜索配置沒有聲明配置的明確參數。 參見[Chapter 12](#calibre_link-426)獲取進一步信息。 內置缺省值是`pg_catalog.simple`, 如果配置匹配可以被識別的區域,則initdb將初始化該設置的配置文件, 它對應于已選擇的`lc_ctype`區域。 ## 18.11.3\. 其他缺省 `dynamic_library_path` (`string`) 如果需要打開一個可以動態裝載的模塊并且在`CREATE FUNCTION`或者 `LOAD`命令里面聲明的名字沒有目錄部分(也就是說名字里不包含斜杠), 那么系統將搜索這個目錄以查找聲明的文件。 用于`dynamic_library_path`的數值必須是一個冒號分隔 (或者是在Windows上分號分隔)的絕對路徑列表。 如果一個路徑名字以特殊變量`$libdir` (PostgreSQL編譯好的庫目錄)開頭, 那么就替換為PostgreSQL發布提供的模塊安裝路徑。 (使用`pg_config --pkglibdir`打印這個目錄名)。比如: ``` dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir' ``` 或者是在Windows環境里: ``` dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' ``` 這個參數的缺省值是`'$libdir'`。 如果把這個值設置為一個空字符串,則關閉自動路徑搜索。 這個參數可以在運行時由超級用戶修改,但是這么修改的設置只能保持到這個客戶端連接的結束, 因此這個方法應該保留給開發用途使用。我們建議在`postgresql.conf`配置文件里設置。 `gin_fuzzy_search_limit` (`integer`) GIN索引掃描返回的集合尺寸軟上限。更多信息參見[Section 57.4](#calibre_link-1464)。 `local_preload_libraries` (`string`) 指定在開始連接前預先加載一個或多個共享庫,多個庫之間用逗號分隔。 所有的庫名被轉換為小寫字母,除非雙引號引用。 該參數不能在會話開始之后更改。 因為并非只有超級用戶才能更改此選項, 因此只能加載安裝的標準庫目錄下`plugins`子目錄中的庫文件, 數據庫管理員有責任確保該目錄中的庫都是"安全的"。 `local_preload_libraries`中指定的項可以明確含有該目錄, 例如`$libdir/plugins/mylib`;也可以僅指定庫的名字— 例如`mylib`(等價于`$libdir/plugins/mylib`)。 與[shared_preload_libraries](#calibre_link-576)不同的是, 在會話開始時加載庫比第一次使用時相比并不具有性能優勢。 相反,這個特性的目的是為了調試或者測量在特定會話中不明確使用`LOAD`加載庫時的性能。 例如針對某個用戶將該參數設為`ALTER ROLE SET`來進行調試。 如果指定的庫未找到,那么連接將失敗。 每一個支持PostgreSQL的庫都有一個"magic block"用于確保兼容性。 因此不支持PostgreSQL的庫不能通過這個方法加載。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看