<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # E.8\. 版本9.2 > **發布日期:** 2012-09-10 ## E.8.1\. 概述 此版本主要集中在性能上的改進,但新的SQL功能不缺乏。工作在備份支持領域繼續進行。主要功能包括: * 允許查詢從索引中檢索數據,避免堆訪問(_索引掃描_) * 即使當使用預備語句時,允許規劃器為特定參數值產生自定義規劃 * 提高規劃器使用嵌套循環內部索引掃描的能力 * 允許流復制轉發數據到其他從屬([_級聯復制_](#calibre_link-1438)) * 允許[pg_basebackup](#calibre_link-471)執行來自備用服務器的基礎備份 * 添加[pg_receivexlog](#calibre_link-464)工具以歸檔作為他們寫入的WAL文件 * 添加[SP-GiST](#calibre_link-550) (空間劃分GiST)索引訪問方法 * 添加[range data types](#calibre_link-1153)支持 * 添加[`JSON`](#calibre_link-1753)數據類型 * 為視圖增加[`security_barrier`](#calibre_link-473)選項 * 允許libpq連接字符串有[URI](#calibre_link-458)的格式 * 添加[單行處理模式](#calibre_link-626)到libpq 更好的處理大的結果集 以上項的更多詳情在下面的章節有介紹。 ## E.8.2\. 遷移到版本9.2 使用pg_dump轉儲/恢復,或者使用pg_upgrade 從任何以前版本中遷移數據。 版本9.2包含可能影響與先前版本的兼容性的一些變化。 觀察下面的不兼容: ### E.8.2.1\. 系統目錄 * 從[`pg_tablespace`](#calibre_link-523)中刪除`spclocation`字段(Magnus Hagander) 該字段實際上定義表空間位置的符號鏈接的復制,從而當移動表空間時,可能有遺漏錯誤風險。 在服務器關閉時,通過手動調節符號鏈接,這種變化允許刪除表空間目錄。 為了替換該字段,我們添加[`pg_tablespace_location()`](#calibre_link-2243) 允許符號鏈接查詢。 * 移動`tsvector`最常見元素統計到新的[`pg_stats`](#calibre_link-771)列(Alexander Korotkov) 為了在`most_common_vals` 和`most_common_freqs`的`tsvector`列中可用的原先的數據 查詢`most_common_elems`和`most_common_elem_freqs`。 ### E.8.2.2\. 函數 * 刪除[hstore](#calibre_link-382)'s `=&gt;`操作符(Robert Haas) 用戶應該使用`hstore(text, text)`。 自PostgreSQL 9.0, 當創建命名`=&gt;`的操作符,則發出一個警告信息。 因為SQL標準保留了另一個使用的標記。 * 確保[`xpath()`](#calibre_link-1976)在字符串值中逃逸特殊字符(Florian Pflug) 倘若沒有這個,那么對于結果可能不是有效的XML。 * 使用[`pg_relation_size()`](#calibre_link-1933) 并且如果該對象不存在則返回空(Phil Sorber) 這可以防止查詢調用這些函數從并發`DROP`后立即返回錯誤。 * 使用[`EXTRACT(EPOCH FROM `_timestamp without time zone_`)`](#calibre_link-1876)從當地午夜測量時間,而不是UTC午夜(Tom Lane) 這一變化恢復在版本7.3中缺乏考慮的變化。 從UTC午夜測量是不一致的, 因為它使結果依賴于[`timezone`](#calibre_link-793)設置, 這不應該有`timestamp without time zone`的計算。以前的操作仍然可以通過映射輸入 值到`timestamp with time zone`可用。 * 正確解析帶有尾隨`yesterday`,`today`和`tomorrow`的時間字符串(Dean Rasheed) 先前`SELECT '04:00:00 yesterday'::timestamp`返回午夜時yesterday的日期。 * 修復[`to_date()`](#calibre_link-800)和 `to_timestamp()`以封裝不完整日期到2020(Bruce Momjian) 先前,提供年以及不一致封裝低于四位的年掩碼。 ### E.8.2.3\. 對象修改 * 防止[`ALTER DOMAIN`](#calibre_link-568)工作于非域類型上(Peter Eisentraut) 在非域類型上所有者和模式變化是可能的。 * 在[`CREATE FUNCTION`](#calibre_link-4)中 不再強制小寫過程語言名字(Robert Haas) 當反引號語言標識符仍然是小寫字母時,字符串和帶引號的標識符不再強行向下。 因此,例如`CREATE FUNCTION ... LANGUAGE 'C'`將不再工作; 它必須拼寫`'c'`,或更好地省略引號。 * 改變外鍵執行觸發器系統產生的名稱(Tom Lane) 這一變化確保在涉及自我參照的外鍵約束的情況下以正確的順序觸發觸發器。 ### E.8.2.4\. 命令行工具 * 提供一致的反引號,變量擴張, 以及[psql](#calibre_link-23)元命令參數中的引用子字符串操作(Tom Lane) 以前,當不通過相鄰文本空白分隔的時候。奇怪地處理這種引用。 例如`'FOO'BAR`作為`FOO BAR`被輸出 (空間意外插入)并且`FOO'BAR'BAZ`輸出不變(不刪除期望的引用)。 * 不再將[clusterdb](#calibre_link-1612)表名看作雙引號; 不再將[reindexdb](#calibre_link-1029)表和索引名看作雙引號(Bruce Momjian) 如果希望引用,那么用戶現在必須在命令參數中包含雙引號。 * [createuser](#calibre_link-22)缺省不再提示選項設置(Peter Eisentraut) 使用`--interactive`獲得舊的操作。 * 禁用[dropuser](#calibre_link-45)中的用戶名提示, 除非指定`--interactive`(Peter Eisentraut) ### E.8.2.5\. 服務器設置 * 添加服務器參數以指定[服務器端SSL文件位置](#calibre_link-1389) 這允許改變名字和文件位置,該文件先前作為`server.crt`, `server.key`, `root.crt`和數據目錄中 `root.crl`的硬編碼。_缺省時服務器將不再檢查`root.crt`或者 `root.crl`_;加載這些文件,相關參數必須設置為非缺省值。 * 刪除`silent_mode`參數(Heikki Linnakangas) 可以使用`pg_ctl start -l postmaster.log`獲得類似操作。 * 刪除不再需要的`wal_sender_delay`參數(Tom Lane) * 刪除`custom_variable_classes`參數(Tom Lane) 通過該設置提供的檢查是含糊的。現在可以以任何類名作為任何設置前綴。 ### E.8.2.6\. 監控 * 重命名[`pg_stat_activity`](#calibre_link-1440)`.procpid` 到`pid`,匹配其他系統表(Magnus Hagander) * 創建一個單一的`pg_stat_activity`列以報告進程狀態(Scott Mead, Magnus Hagander) 先前的`query`和`query_start`值現在仍然可用于空閑會話, 允許增強分析。 * 當查詢完成時,重命名`pg_stat_activity`.`current_query`到 `query`,因為它是不清楚的(Magnus Hagander) * 改變所有SQL級別統計時序值到以毫秒計的`float8`列 這種變化消除設計假設該值精確到微秒,沒有更多的(因為`float8`值可以是分數)。 受影響的列:`pg_stat_user_functions`.`total_time`,`pg_stat_user_functions`.`self_time`,`pg_stat_xact_user_functions`.`total_time`, 和`pg_stat_xact_user_functions`.`self_time`。 潛在這些列的統計函數現在返回`float8`毫秒,而不是`bigint` 微秒。現在以毫秒測量`contrib/pg_stat_statements`的`total_time`列。 ## E.8.3\. 變化 下面你將發現在PostgreSQL 9.2和先前主要版本之間變化的詳細情況。 ### E.8.3.1\. 服務器 #### E.8.3.1.1\. 性能 * 允許查詢只從索引中檢索數據,避免堆訪問(Robert Haas, Ibrar Ahmed, Heikki Linnakangas, Tom Lane) 此功能通常被稱為_只索引掃描_。 為了只包含對所有會話可見的元組堆頁可以忽略堆訪問, 正如可見視圖報道的;因此該效益主要適用于大多數靜態數據。可見視圖將損壞安全作為 執行該功能的必要組成部分。 * 增加[SP-GiST](#calibre_link-550)(空間劃分GiST)索引訪問方法(Teodor Sigaev, Oleg Bartunov, Tom Lane) SP-GiST與GIST的靈活性相比較,但支持不平衡分段搜索結構而不是平衡樹。 為了適當的問題,SP-GiST在索引編譯時間和搜索時間上比GiST更快。 * 允許組提交在重負載下有效工作(Peter Geoghegan, Simon Riggs, Heikki Linnakangas) 此前,批量提交無效作為已增加的寫入工作量,由于內部鎖爭用。 * 允許使用一個新的快速路徑鎖定機制管理未競爭鎖(Robert Haas) * 減少創建虛擬事務ID鎖的開銷(Robert Haas) * 減少串行化隔離級別鎖的開銷(Dan Ports) * 提高PowerPC和Itanium spinlock性能(Manabu Ori, Robert Haas, Tom Lane) * 減少共享的無效緩存消息開銷(Robert Haas) * 移動`PGPROC`共享內存數組頻繁訪問的成員到一個單獨數組中(Pavan Deolasee, Heikki Linnakangas, Robert Haas) * 通過成批地添加元組到堆中提高`COPY`性能(Heikki Linnakangas) * 通過產生內存分配開銷少的樹的幾何數據類型提高GiST索引性能。 * 提高GiST索引編譯時間(Alexander Korotkov, Heikki Linnakangas) * 允許提示位被迅速設置為臨時的和未標記表(Robert Haas) * 允許通過內聯進行排序,非SQL可調用比較函數(Peter Geoghegan, Robert Haas, Tom Lane) * 增大基于[`shared_buffers`](#calibre_link-1370)的CLOG緩沖區規模數量(Robert Haas, Simon Riggs, Tom Lane) * 當刪除表或者數據庫時,提高發生的緩沖池掃描性能(Jeff Janes, Simon Riggs) * 當許多表被刪除或截斷時,提高檢查點的fsync請求陣列性能(Tom Lane) * Windows上傳遞文件描述符安全碼到子進程(Heikki Linnakangas) 這允許Windows會話使用比以前更多的打開文件描述符。 #### E.8.3.1.2\. 進程管理 * 創建一個執行檢查點的專門后臺進程(Simon Riggs) 原先后端寫進程執行臟頁寫入和檢查點。分離成兩個過程允許每個目標可預見地完成。 * 通過快速喚醒walwriter提高異步提交操作(Simon Riggs) 以前,[`wal_writer_delay`](#calibre_link-1433)觸發WAL沖洗磁盤; 現在填充WAL緩沖區也觸發WAL寫入。 * 在不活躍期間讓bgwriter, walwriter,檢查點,數據采集器,日志收集器和歸檔日志后端進程更有效睡眠(Peter Geoghegan, Tom Lane) 當沒什么事可做的時候,這一系列的變化會降低進程喚醒頻率,大幅降低空閑服務器上的功耗。 #### E.8.3.1.3\. 優化器 * 允許規劃器生成特定參數的自定義規劃,即使當使用預處理語句的時候(Tom Lane) 以往,一個預備語句總是有一個單一的"通用"計劃被用于所有的參數值, 通常遠不如用于包含顯式恒定值的非預備語句規劃。現在,規劃器 試圖生成特定參數值的自定義規劃。 一個通用計劃將只能用在自定義規劃多次證明沒有任何好處的情況。 這種變化應該消除原先從預備語句使用中見到過的性能損失(包括PL/pgSQL中的非動態語句)。 * 提高規劃器使用嵌套循環內部索引掃描的能力(Tom Lane) 新的"參數化路徑"機制允許內部索引掃描使用超過掃描中一個連接水平的關系值。 這可以大大提高語義限制(如外連接)允許的連接順序的情況下的性能。 * 提高對外部數據封裝器的規劃API (Etsuro Fujita, Shigeru Hanada, Tom Lane) 封裝器現在可以為表提供多種訪問"路徑",在連接規劃中更加靈活。 * 識別非表關系的自相矛盾限制分句(Tom Lane) 當[`constraint_exclusion`](#calibre_link-1531) `打開`時,執行 這個檢查。 * 允許`indexed_col op ANY(ARRAY[...])`條件用于純索引掃描并且僅僅索引掃描(Tom Lane) 以前這樣的條件只能用于位圖索引掃描。 * 在`boolean`列上支持`MIN`/`MAX`索引優化(Marti Raudsepp) * 當估計設置行數時,解釋了在`SELECT`目標列中設置返回函數的原因(Tom Lane) * 修復規劃器更可靠的處理帶有重復列索引(Tom Lane) * 收集并且使用數組元素次數統計(Alexander Korotkov, Tom Lane) 這種變化提高了數組`&lt;@`, `&&`和 `@&gt;`操作符(數組容量和重疊部分)的選擇性估計。 * 允許收集外表的統計(Etsuro Fujita) * 提高使用部分索引的成本估計(Tom Lane) * 提高在子查詢中引用列統計的規劃器能力(Tom Lane) * 提高子查詢使用`DISTINCT`的統計估計(Tom Lane) #### E.8.3.1.4\. 認證 * 不要把角色名字和 [`pg_hba.conf`](#calibre_link-656)中 聲明的`samerole`看作自動包含超級用戶的(Andrew Dunstan) 這使得它更容易使用組角色的`reject`行。 * 調節`pg_hba.conf`過程更加一致地處理令牌解析(Brendan Jurd, álvaro Herrera) * 不允許空`pg_hba.conf`文件(Tom Lane) 這樣做是為了更快速檢測配置錯誤。 * 使用超級用戶權限意味著復制權限(Noah Misch) 這樣避免了需要明確地分配這類權限。 #### E.8.3.1.5\. 監控 * 試圖在后端崩潰期間記錄當前查詢字符串(Marti Raudsepp) * 使得自動清理I/O活動日志更加冗長(Greg Smith, Noah Misch) 這條記錄是通過[`log_autovacuum_min_duration`](#calibre_link-2304)觸發的。 * 使WAL回放盡快報告錯誤(Fujii Masao) 一旦服務器到主模式只報告錯誤的情況。 * 添加[`pg_xlog_location_diff()`](#calibre_link-1794) 以簡化WAL位置比較(Euler Taveira de Oliveira) 這對于計算復制滯后是有用的。 * 支持Windows上可配置的事件日志應用程序名稱(MauMau, Magnus Hagander) 這允許不同的情況下使用不同的標識符事件日志, 通過設置[`event_source`](#calibre_link-1397)服務器參數, 這類似于[`syslog_ident`](#calibre_link-2305)工作方式。 * 改變"意外的塊結束"消息到`DEBUG1`級別,除非有一個已打開事務(Magnus Hagander) 這種變化減少笨拙地關閉數據庫連接應用導致的日志振動。 #### E.8.3.1.6\. 統計視圖 * 跟蹤臨時文件大小和[`pg_stat_database`](#calibre_link-1453)系統視圖中的文件數(Tomas Vondra) * 添加一個死鎖計數器到`pg_stat_database`系統視圖(Magnus Hagander) * 添加服務器參數[`track_io_timing`](#calibre_link-1369)跟蹤I/O時序(Ants Aasma, Robert Haas) * 報告[`pg_stat_bgwriter`](#calibre_link-1707)中的檢查點定時信息(Greg Smith, Peter Geoghegan) #### E.8.3.1.7\. 服務器設置 * 默默忽略[`search_path`](#calibre_link-738)指定的不存在的模式(Tom Lane) 這使得更加方便使用通用路徑設置,可能包含一些不存在于數據庫中的模式。 * 允許超級用戶設置[`deadlock_timeout`](#calibre_link-1451)每個會話, 而不是每個集群(Noah Misch) 這允許為了可能涉及到死鎖的事務減少`deadlock_timeout`, 因此更快地檢查故障。另外,增加該值可以用于減少由于死鎖選擇取消會話機會。 * 添加服務器參數[`temp_file_limit`](#calibre_link-2306)限制每個會話臨時文件空間使用率(Mark Kirkwood) * 在加載相關擴展之前允許超級用戶`SET`擴展的超級用戶自定義變量(Tom Lane) 系統現在記得是否`SET`通過超級用戶被執行, 因此當加載擴展時,可以執行適當的權限檢查。 * 添加[postmaster](#calibre_link-1489) `-C`選項查詢配置參數(Bruce Momjian) 允許pg_ctl更好地處理`PGDATA`或者`-D`指向配置目錄的情況。 * 以`CREATE DATABASE`中隱含值替換空的區域名(Tom Lane) 這可以防止服務器重啟后不同地解釋`pg_database`.`datcollate`或者 `datctype`的情況。 ##### E.8.3.1.7.1\. `postgresql.conf` * 允許報告`postgresql.conf`中的多個錯誤, 而不僅僅是第一個(Alexey Klyukin, Tom Lane) * 允許通過所有會話處理`postgresql.conf`的加載,即使有一些設置對特定會話是無效的(Alexey Klyukin) 以前,這種無效會話值可能導致所有設置變化被該會話忽略。 * 為配置文件添加一個`include_if_exists`功能(Greg Smith) 這個和`include`一樣運行,除了如果忽略該文件不會拋出錯誤外。 * 在initdb期間識別服務器時區,并且相應設置`postgresql.conf`項 [`timezone`](#calibre_link-793)和 [`log_timezone`](#calibre_link-803) 這避免了服務器啟動時昂貴的時區探測。 * 修復[`pg_settings`](#calibre_link-967)以 報告Windows上`postgresql.conf`行號(Tom Lane) ### E.8.3.2\. 備份和恢復 * 允許流復制轉發數據到其他從屬([_級聯復制_](#calibre_link-1438))(Fujii Masao) 以前只有主服務器可以提供流復制日志文件到備用服務器。 * 添加新的[`synchronous_commit`](#calibre_link-1216) 模式`remote_write` (Fujii Masao, Simon Riggs) 該模式等待備用服務器寫事務數據到它自己的操作系統,但是不等待數據被刷新到備用磁盤。 * 添加[pg_receivexlog](#calibre_link-464)工具 歸檔他們寫入的WAL文件變化,而不是等待完成的WAL文件(Magnus Hagander) * 允許[pg_basebackup](#calibre_link-471)從 備用服務器上做基礎備份(Jun Ishizuka, Fujii Masao) 該功能允許基礎備份工作從主服務器上被卸載。 * 當pg_basebackup在執行備份時,允許WAL文件流(Magnus Hagander) 允許在主庫上丟棄之前傳遞WAL文件到備庫。 ### E.8.3.3\. 查詢 * 如果斷開客戶端連接,取消運行的查詢(Florian Pflug) 如果在查詢中后端監測客戶端連接損壞,那么它現在將取消查詢而不是嘗試完成它。 * 在行表達式運行時保留列名(Andrew Dunstan, Tom Lane) 當行值被轉換為`hstore`或者`json`類型時:結果值字段有期望名,那么該變化允許有更好結果。 * 改善用于子-`SELECT`結果的列標簽(Marti Raudsepp) 以前使用一般標簽`?column?`。 * 提高決定未知值類型的探索法(Tom Lane) 當考慮多態操作符的時候, 長期規則是一個未知常量可能與現在應用它的操作者一端的值有同樣類型, 而不僅僅操作符匹配。 * 關于創建映射或者來自域類型的警告(Robert Haas) 這種投射沒有影響。 * 當行不能進行`CHECK`或者`NOT NULL`約束時, 顯示行內容作為錯誤詳細信息 (Jan Kundrát) 當插入或者更新處理多行時,這將很容易識別哪行是有問題的。 ### E.8.3.4\. 對象操作 * 在并行DDL中提供更可靠操作(Robert Haas, Noah Misch) 該變化增加了鎖定,它應該刪除多種情況中"高速緩存查找失敗"錯誤。 另外,不再可能添加關系到正在刪除的模式中,先前導致不一致系統目錄內容的情況。 * 添加`CONCURRENTLY`選項到 [`DROP INDEX`](#calibre_link-602) (Simon Riggs) 允許索引刪除不鎖定其他會話。 * 允許外數據包有每一列選項(Shigeru Hanada) * 改進視圖定義的輸出(Andrew Dunstan) #### E.8.3.4.1\. 約束 * 允許[`CHECK`](#calibre_link-1538) 約束被聲明為`NOT VALID` (álvaro Herrera) 添加`NOT VALID`約束不會導致掃描的表可以驗證已存在行滿足該約束。 隨后,檢查新添加或者更新的行。當考慮`constraint_exclusion`時, 規劃器忽略這些約束。因為它不確定所有行可以滿足該約束。 新的`ALTER TABLE VALIDATE`命令允許為已存在 行檢查`NOT VALID`限制,之后被轉換成普通約束。 * 允許`CHECK`限制被聲明為 `NO INHERIT` (Nikhil Sontakke, Alex Hunsaker, álvaro Herrera) 這使得它們只在父表是可執行的,而不是子表。 * 添加該能力到[rename](#calibre_link-88)約束(Peter Eisentraut) #### E.8.3.4.2\. `ALTER` * 減少重新編譯表需要以及 索引某個 [`ALTER TABLE`](#calibre_link-88)... `ALTER COLUMN TYPE`操作(Noah Misch) 增加`varchar`或者`varbit`列長度限制,或者完全刪除限制,不再需要表重寫。 類似地,增加`numeric`列允許的精度,或者改變約束的`numeric`列到不受約束的`numeric`, 不再需要表重寫。 在涉及`interval`, `timestamp`和`timestamptz`類型的相似情況中避免表重寫。 * 避免 [`ALTER TABLE`](#calibre_link-88)在 不必要的情況下驗證外鍵約束(Noah Misch) * 增加`IF EXISTS`選項到一些`ALTER`命令中(Pavel Stehule) 比如 `ALTER FOREIGN TABLE IF EXISTS foo RENAME TO bar`。 * 添加 [`ALTER FOREIGN DATA WRAPPER`](#calibre_link-59) ... `RENAME` 和[`ALTER SERVER`](#calibre_link-66) ... `RENAME` (Peter Eisentraut) * 添加 [`ALTER DOMAIN`](#calibre_link-568) ... `RENAME` (Peter Eisentraut) 你可能已經使用 `ALTER TYPE`重命名域。 * 在不存在約束上為 `ALTER DOMAIN` ... `DROP CONSTRAINT`拋出一個錯誤(Peter Eisentraut) 一個`IF EXISTS`選項已被添加以提供先前操作。 #### E.8.3.4.3\. [`CREATE TABLE`](#calibre_link-7) * 允許`CREATE TABLE (LIKE ...)`來自外表,視圖和復合類型(Peter Eisentraut) 比如,模式匹配視圖的允許創建表。 * 當拷貝索引注釋時,修復`CREATE TABLE (LIKE ...)`以避免索引名沖突(Tom Lane) * 修復`CREATE TABLE` ... `AS EXECUTE` 以處理`WITH NO DATA`和列名稱規格(Tom Lane) #### E.8.3.4.4\. 對象權限 * 為視圖添加 [`security_barrier`](#calibre_link-473)選項(KaiGai Kohei, Robert Haas) 該選項可以防止優化可能允許視圖受保護數據暴露給用戶, 比如推動涉及不安全函數的子句到視圖的`WHERE`子句。 這種視圖預期比普通視圖執行更差。 * 添加新的 [`LEAKPROOF`](#calibre_link-4)函數屬性以標記函 數可以安全地向下推進到`security_barrier`視圖(KaiGai Kohei) * 增加數據類型權限支持(Peter Eisentraut) 在類型和域上添加SQL-一致`USAGE`權限支持。 其意圖是可以限制哪個用戶在類型上可以創建依賴,因為這種依賴 限制修改該類型的用戶能力。 * 檢查在 `SELECT INTO` / `CREATE TABLE AS`中的 `INSERT`權限(KaiGai Kohei) 因為通過`SELECT INTO` 或者`CREATE TABLE AS`創建該對象,那么創建者通常有插入權限; 但是有一種不真的困境情況, 比如當`ALTER DEFAULT PRIVILEGES`已經刪除該權限時。 ### E.8.3.5\. 實用操作 * 允許[`VACUUM`](#calibre_link-748)更容易忽略不能被鎖定的頁(Simon Riggs, Robert Haas) 這種變化會大大降低`VACUUM`獲得"stuck"等待其他會話的發生率。 * 使得[`EXPLAIN`](#calibre_link-575) `(BUFFERS)`計算臟塊和寫入的(Robert Haas) * 使得`EXPLAIN ANALYZE`報告通過過濾步驟拒絕的行數(Marko Tiikkaja) * 當時間值是不想要的,允許`EXPLAIN ANALYZE`避免時間開銷(Tomas Vondra) 通過設置新的`TIMING`選項到`FALSE`來完成。 ### E.8.3.6\. 數據類型 * 添加支持[range data types](#calibre_link-1153) (Jeff Davis, Tom Lane, Alexander Korotkov) 一系列數據類型存儲從屬于它的基本數據類型的上限和下限。 它支持類似包含,重疊和交叉的操作。 * 添加[`JSON`](#calibre_link-1753) 數據類型(Robert Haas) 這種類型存儲帶有適當驗證的JSON (JavaScript對象表示法)數據。 * 添加 [`array_to_json()`](#calibre_link-1760) 和`row_to_json()` (Andrew Dunstan) * 添加[`SMALLSERIAL`](#calibre_link-1175) 數據類型(Mike Pultz) 這就像`SERIAL`,除了它以兩個字節整數列(`int2`)存儲序列之外。 * 允許[domains](#calibre_link-567)被 聲明為`NOT VALID` (álvaro Herrera) 在域創建時間設置該選項,或者通過 `ALTER DOMAIN` ... `ADD CONSTRAINT` ... `NOT VALID`. `ALTER DOMAIN` ... `VALIDATE CONSTRAINT`充分驗證該限制。 * 為了[`money`](#calibre_link-696)數據類型支持更多的區域指定格式選項(Tom Lane) 特別的,為了該值順序,標志,以及貨幣輸出中的貨幣符號紀念POSIX選項。另外, 確保千位分隔符只被插入到小數點左邊,正如POSIX要求的。 * 為`macaddr`數據類型添加按位"and", "or"和"not"操作符(Brendan Jurd) * 當提供一個標量值時, 允許[`xpath()`](#calibre_link-1976)返回 單一元素XML數組(Florian Pflug) 先前,它返回空數組。這種變化也將導致`xpath_exists()`為這種表達式返回真,而不是假。 * 提高XML錯誤處理以變得更健壯(Florian Pflug) ### E.8.3.7\. 函數 * 允許非超級用戶在其他會話從屬于同一用戶時使用 [`pg_cancel_backend()`](#calibre_link-1566) 和[`pg_terminate_backend()`](#calibre_link-1566) (Magnus Hagander, Josh Kupershmidt, Dan Farina) 以前只有超級用戶被允許使用這些函數。 * 允許事務快照的輸入和輸出(Joachim Wieland, Tom Lane) 這允許多個事務共享數據庫狀態的同一視圖。快照是通過 [`pg_export_snapshot()`](#calibre_link-510)輸出,通過 [`SET TRANSACTION SNAPSHOT`](#calibre_link-507)輸入。只有當前正在運行的事務快照可以被輸入。 * 支持表達式上的[`COLLATION FOR`](#calibre_link-2243)(Peter Eisentraut) 返回表達式排序規則的字符串表示。 * 添加[`pg_opfamily_is_visible()`](#calibre_link-2242) (Josh Kupershmidt) * 添加`numeric` variant of [`pg_size_pretty()`](#calibre_link-1073) 適用于`pg_xlog_location_diff()` (Fujii Masao) * 添加[`pg_trigger_depth()`](#calibre_link-2241)函數(Kevin Grittner) 報告當前觸發器調用深度。 * 允許 [`string_agg()`](#calibre_link-1071) 處理`bytea`值(Pavel Stehule) * 在一個較大的量化子表達式中發生后向引用的地方修復正則表達式(Tom Lane) 比如`^(\w+)( \1)+$`。先前版本并不檢查后向引用實際匹配第一次出現。 ### E.8.3.8\. [信息模式](#calibre_link-583) * 添加信息模式視圖 `role_udt_grants`, `udt_privileges`, 和`user_defined_types` (Peter Eisentraut) * 添加復合類型屬性到信息模式`element_types`視圖(Peter Eisentraut) * 信息模式中實現`interval_type`列(Peter Eisentraut) 以前這些列讀取為空。 * 在信息模式`attributes`, `columns`, `domains`和`element_types`視圖中實現排序規則相關列(Peter Eisentraut) * 在信息模式`table_privileges`視圖中實現`with_hierarchy`列 (Peter Eisentraut) * 增加序列`USAGE`權限顯示到信息模式中(Peter Eisentraut) * 使信息模式顯示缺省權限(Peter Eisentraut) 先前,非空缺省權限沒有出現在視圖中。 ### E.8.3.9\. 服務器端語言 #### E.8.3.9.1\. [PL/pgSQL](#calibre_link-857)服務器端語言 * 允許PL/pgSQL `OPEN`游標命令提供參數名(Yeb Havinga) * 添加`GET STACKED DIAGNOSTICS` PL/pgSQL命令檢索異常信息(Pavel Stehule) * 通過緩存類型信息加快PL/pgSQL數組賦值(Pavel Stehule) * 提高性能以及為長連續`ELSIF`子句內存損耗(Tom Lane) * 在PL/pgSQL錯誤消息中輸出函數簽名,而不僅僅是名字(Pavel Stehule) #### E.8.3.9.2\. [PL/Python](#calibre_link-882)服務器端語言 * 添加PL/Python SPI游標支持 (Jan Urbanski) 這允許PL/Python讀取部分結果集。 * 添加結果元數據函數到PL/Python (Peter Eisentraut) 具體地說,這增加了結果對象函數 `.colnames`, `.coltypes`和 `.coltypmods`。 * 刪除支持Python 2.2 (Peter Eisentraut) #### E.8.3.9.3\. [SQL](#calibre_link-831)服務器端語言 * 允許SQL語言函數參照參數名(Matthew Draper) 為了使用這個,僅僅命名函數參數,并且然后參考SQL 函數體中的參數名。 ### E.8.3.10\. 客戶端應用 * 添加[initdb](#calibre_link-542) 選項`--auth-local`和`--auth-host` (Peter Eisentraut) 這允許 `local`和`host` `pg_hba.conf`認證設置的分散控制, `--auth`仍然控制著兩個。 * 添加`--replication`/`--no-replication`標記到 [createuser](#calibre_link-22)以控制備份權限(Fujii Masao) * 添加`--if-exists`選項到 [dropdb](#calibre_link-35)和 [dropuser](#calibre_link-45) (Josh Kupershmidt) * 給出命令行工具以指定要連接數據庫名字, 如果`postgres`數據庫連接失敗, 那么回退到`template1` (Robert Haas) #### E.8.3.10.1\. [psql](#calibre_link-23) * 添加基于顯示寬度的顯示模式以自動擴展輸出(Peter Eisentraut) 增加`auto`選項到`\x`命令,當正常 輸出比屏幕寬的時候,會切換到擴展模式。 * 允許腳本文件的包含是相對于它被調用的文件目錄命名的(Gurjeet Singh) 這是執行新的命令`\ir`。 * 在psql變量名中添加支持非ASCII字符(Tom Lane) * 添加支持主要版本特定`.psqlrc`文件(Bruce Momjian) psql支持次要版本特定`.psqlrc`文件。 * 提供環境變量覆蓋psql歷史并且啟動文件位置(Andrew Dunstan) 如果設置,那么`PSQL_HISTORY`和`PSQLRC`決定這些文件名。 * 添加`\setenv`命令修改傳遞給子進程的環境變量(Andrew Dunstan) * 命名`.sql`擴展的psql的臨時編輯文件(Peter Eisentraut) 這允許擴展敏感編輯者選擇正確模式。 * 允許psql使用零字節字段并且記錄分隔符(Peter Eisentraut) 使用零字節(NUL)分隔符的各種shell工具,比如find。 * 使用`\timing`選項報告查詢失敗時間(Magnus Hagander) 以前只為成功查詢報道時間。 * 統一并固定`\copy`和SQL `COPY`的psql處理(Noah Misch) 這修復錯誤操作更加可預測并且設置`\set ON_ERROR_ROLLBACK`。 #### E.8.3.10.2\. 信息命令 * 使得`\d`在序列上顯示擁有它的表/列名(Magnus Hagander) * 顯示`\d+`中列的統計目標(Magnus Hagander) * 顯示`\du`中角色密碼截止日期(Fabrízio de Royes Mello) * 顯示投射,轉換,域和語言說明(Josh Kupershmidt) 這些分別包含在`\dC+`, `\dc+`, `\dD+`和`\dL`輸出中。 * 顯示SQL/MED對象說明(Josh Kupershmidt) 這些分別包括在`\des+`, `\det+`輸出,`\dew+`外服務器,外 表,和外數據包裝器。 * 改變`\dd`僅顯示沒有自身反斜杠命令對象類型的說明(Josh Kupershmidt) #### E.8.3.10.3\. Tab實現 * 在psql tab實現中, 在大小寫情況下依照新的 [`COMP_KEYWORD_CASE`](#calibre_link-1080)設置 實現SQL關鍵字 * 添加tab實現支持 `EXECUTE` (Andreas Karlsson) * 在`GRANT`/`REVOKE`中 添加角色引用的tab實現(Peter Eisentraut) * 當必要的時候,允許文件名的tab實現可以提供引用(Noah Misch) * 改變tab實現支持`TABLE`也包含視圖(Magnus Hagander) #### E.8.3.10.4\. [pg_dump](#calibre_link-437) * 添加`--exclude-table-data`選項到 pg_dump (Andrew Dunstan) 這允許在每個表基礎上備份表的定義而不是它的數據。 * 添加`--section`選項到pg_dump 和pg_restore (Andrew Dunstan) 有效值是`pre-data`, `data`, 和`post-data`。給定的該選項不止一次的選擇兩個或更多部分。 * 使用 [pg_dumpall](#calibre_link-439)首先備份 所有角色,然后角色上的所有配置設置(Phil Sorber) 這允許角色的配置設置提及其他沒有產生錯誤的角色。 * 如果在新的集群中丟失`postgres`數據庫,那么允許 pg_dumpall避免錯誤(Robert Haas) * 按照用戶名順序備份外服務器用戶映射(Peter Eisentraut) 這有助于產生確定性備份文件。 * 以可預見性順序備份操作符(Peter Eisentraut) * 當擴展配置表通過pg_dump被備份時,收緊規則(Tom Lane) * 使得pg_dump發出更多有用的依賴信息(Tom Lane) 包含在歸檔格式轉儲中的依賴關系以前使用非常有限, 因為他們經常引用似乎 不在轉儲中的對象。 現在他們在轉儲對象之間 代表實際的依賴關系(可能是間接的)。 * 當備份多個數據庫對象時,提高pg_dump的性能(Tom Lane) ### E.8.3.11\. [libpq](#calibre_link-496) * 允許libpq連接 字符串有[URI](#calibre_link-458) 的格式(Alexander Shulgin) 該語法以`postgres://`開頭。 這可以允許應用程序為URI表示數據庫連接避免實現它們自身解析器。 * 添加[連接選項](#calibre_link-2097) 以禁用SSL壓縮 (Laurenz Albe) 這可以用于刪除快速網絡中SSL壓縮的開銷。 * 為了更好處理大的結果集添加 [單行處理模式](#calibre_link-626) 此前,libpq將 其返回給應用程序之前總是收集內存中整個查詢結果。 * 添加`const`限定符 到函數`PQconnectdbParams`, `PQconnectStartParams`, 和`PQpingParams`的聲明(Lionel Elie Mamane) * 允許`.pgpass`文件在密碼域中包含轉義字符(Robert Haas) * 當必須終止進程時,嘗試庫函數使用`abort()`代替`exit()`(Peter Eisentraut) 這個選擇并不妨礙使用正常退出代碼程序, 并產生一個可以由調用者捕捉的信號。 ### E.8.3.12\. 源碼 * 刪除封閉端口號(Peter Eisentraut) 不再支持下列平臺:dgux, nextstep, sunos4, svr4, ultrix4, univel, bsdi。 * 添加使用 [MS Visual Studio 2010](#calibre_link-1035)支持編譯(Brar Piening) * 啟動使用MinGW-w64 32-位編譯器進行編譯(Lars Kanis) * 在安裝期間安裝`plpgsql.h`到`include/server`(Heikki Linnakangas) * 提高閂鎖裝置以包含postmaster終止的檢測(Peter Geoghegan, Heikki Linnakangas, Tom Lane) 后端進程先前必須意識到調查事件,這消除了主要原因之一。 * 支持的地方使用C靈活數組元素(Peter Eisentraut) * 提高并行事務回歸測試(isolationtester) (Noah Misch) * 在當前目錄中修改thread_test創建它的測試文件,而不是`/tmp` (Bruce Momjian) * 提高flex和bison警告和錯誤報告(Tom Lane) * 添加內存屏障支持(Robert Haas) 這是目前未使用的。 * 修改pgindent使用typedef文件(Bruce Momjian) * 由于被發送到服務器添加處理消息鉤子(Martin Pihlak) * 為`DROP`命令添加對象訪問鉤(KaiGai Kohei) * 集中`DROP`處理一些對象類型(KaiGai Kohei) * 添加pg_upgrade測試套件(Peter Eisentraut) * 伴隨TCL 8.5.11 同步正則表達式代碼 并且改善內部處理(Tom Lane) * 移動CRC表到libpgport, 在一個單獨的include文件中提供它們(Daniel Farina) * 為了用于主要發布聲明 創建添加選項到git_changelog (Bruce Momjian) * 支持Linux的`/proc/self/oom_score_adj` API (Tom Lane) ### E.8.3.13\. 額外模塊 * 通過使用libpq的新單行處理模式提高[dblink](#calibre_link-63)的效率 (Kyotaro Horiguchi, Marko Kreen) 這個改進不適用于`dblink_send_query()`/`dblink_get_result()`。 * 在[file_fdw](#calibre_link-380)中支持`force_not_null`選項(Shigeru Hanada) * 為[pg_archivecleanup](#calibre_link-1096)實現 演習模式(Gabriele Bartolini) 這只輸出已刪除文件名。 * 添加新的[pgbench](#calibre_link-629)切換`--unlogged-tables`, `--tablespace`和`--index-tablespace` (Robert Haas) * 改變[pg_test_fsync](#calibre_link-1619)以測試 一定量的時間,而不是固定周期數(Bruce Momjian) 刪除`-o`/周期選項,并且添加`-s`/秒。 * 添加 [pg_test_timing](#calibre_link-1203)功能 以測量時鐘一致性和時間開銷 (Ants Aasma, Greg Smith) * 添加[tcn](#calibre_link-402)(觸發變更通知) 模塊在表變更上生成`NOTIFY`事件(Kevin Grittner) #### E.8.3.13.1\. [pg_upgrade](#calibre_link-638) * 調整pg_upgrade環境變量(Bruce Momjian) 重命名data,bin和以`PG`開頭的port環境變量, 支持`PGPORTOLD`/`PGPORTNEW`, 取代`PGPORT`。 * 檢查pg_upgrade記錄和錯誤報告(Bruce Momjian) 創建四個附加的日志文件,并且成功時刪除它們。 添加`-r`/`--retain`選項無條件的保留這些文件。同時 刪除不必要的pg_upgrade選項`-g`/`-G`/`-l`選項, 固定日志文件的權限。 * 使pg_upgrade創建一個腳本增量 生成更精確的優化統計(Bruce Momjian) 這降低了升級后產生最小的集群統計所需要的時間。 * 允許pg_upgrade更新沒有`postgres`數據庫的舊的集群(Bruce Momjian) * 允許pg_upgrade處理新的或舊的數據庫丟失情況,只要它們是空的(Bruce Momjian) * 允許pg_upgrade處理配置目錄安裝(Bruce Momjian) * 在pg_upgrade中,添加`-o`/`-O`選項傳遞參數到服務器(Bruce Momjian) 對配置目錄安裝有作用。 * 改變pg_upgrade使用缺省port 50432(Bruce Momjian) 這有助于在更新期間避免意外的客戶端連接。 * 減少pg_upgrade集群鎖定(Bruce Momjian) 具體來說,如果使用鏈接模式,那么只鎖定舊的集群。 并且在存儲模式之后執行。 #### E.8.3.13.2\. [pg_stat_statements](#calibre_link-394) * 允許pg_stat_statements通過SQL文本標準化聚集類似查詢(Peter Geoghegan, Tom Lane) 使用非參數化SQL應用程序的用戶可以沒有詳細的日志分析監控查詢性能。 * 增加臟塊和寫入塊計算以及讀/寫時間到pg_stat_statements (Robert Haas, Ants Aasma) * 避免pg_stat_statements來自 `PREPARE`和`EXECUTE`命令的重復計算(Tom Lane) #### E.8.3.13.3\. [sepgsql](#calibre_link-398) * 在全局對象上支持`SECURITY LABEL` (KaiGai Kohei, Robert Haas) 具體來說,添加數據庫安全標簽,表空間,和角色。 * 允許sepgsql接受數據庫標簽(KaiGai Kohei) * 在各種對象的創建過程中執行sepgsql權限檢查(KaiGai Kohei) * 添加`sepgsql_setcon()`和相關函數以控制sepgsql安全域(KaiGai Kohei) * 添加sepgsql用戶空間訪問緩存以提高性能(KaiGai Kohei) ### E.8.3.14\. 文檔 * 使用網站上的樣式表添加規則用以隨意編譯HTML文檔(Magnus Hagander) 使用`gmake STYLE=website draft`. * 改善`EXPLAIN`文檔(Tom Lane) * 記錄用戶/數據庫名通過命令行工具如vacuumdb 使用雙引號保存(Bruce Momjian) * 記錄通過客戶端MD5認證返回的實際字符串(Cyan Ogilvie) * 反對在`CREATE TEMP TABLE`中使用`GLOBAL`和`LOCAL` (Noah Misch) PostgreSQL早已把這些關鍵詞看作沒有操作, 并且繼續這樣做;但在未來他們可能意味著SQL標準的內容, 所以應用程序應避免使用它們。
                  <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>

                              哎呀哎呀视频在线观看