E.46. 版本 6.1

發佈日期: 1997-06-08

蛻變測試為v6.1的 PostgreSQL版本做了大量的調整和修改.

增加了三種新的PostgreSQL內部資料類型 (datetime,timespan,和 circle).固定了Points,boxes, paths, 和 polygons 的輸出格式.在 misc.out 中的 polygon (多邊形)的輸出只是相對原先的回歸測試輸出進行了錯誤檢查.

PostgreSQL v6.1 提供了一個可選的使用 基因算法的優化器. 這些算法在對包含多個侯選項或多個資料表(優化器需要對 資料表達式值進行排序選擇時)的查詢輸出進行排序時資料表現得更為隨機. 有好幾個蛻變測試項目顯式地修改了結果的 排序,這樣就對優化器選擇不敏感了. 有幾個對資料類型的蛻變測試先天的時亂序的(如點和時間間隔),與這 些類型相關的測試顯式的置於 set geqo to 'off'reset geqo 範疇內.

對數組聲明(包圍在量化值周圍的大括號)的解釋看起來在最早的蛻變測試的過程中的 某個時候被改變了. 現在的 ./expected/*.out 文件反映了這個新的解釋, 但卻有可能是錯誤的!

float8 的回歸測試至少在某些平台上會失敗. 這是因為對 pow() 和 exp() 的不同的實現方法以及用於溢出和溢入 (underflow)條件的信號機制的不同造成的.

在隨機測試中的"隨機"結果回導致"隨機"測試"失敗", 因為回歸測試是簡單的用 diff 進行比較的.不過,"隨機"測 試在我的機器上(Linux/gcc/i686)看起來好像並沒有產生隨機結果.

E.46.1. 遷移到 v6.1

對於6.0版本:需要對資料庫進行完整的6.0版本的傾倒和6.1版本的恢復.

對於早於1.*的版本:首先要升級到1.09版本, 因為在1.02版本中已經改善了 COPY 的輸出格式.

E.46.2. 修改列資料表

修補
---------
packet length checking in library routines
lock manager priority patch
check for under/over flow of float8(Bruce)
multitable join fix(Vadim)
SIGPIPE crash fix(Darren)
large object fixes(Sven)
allow btree indexes to handle NULLs(Vadim)
timezone fixes(D'Arcy)
select SUM(x) can return NULL on no rows(Thomas)
internal optimizer, executor bug fixes(Vadim)
fix problem where inner loop in < or <= has no rows(Vadim)
prevent re-commuting join index clauses(Vadim)
fix join clauses for multiple tables(Vadim)
fix hash, hashjoin for arrays(Vadim)
fix btree for abstime type(Vadim)
large object fixes(Raymond)
fix buffer leak in hash indexes (Vadim)
fix rtree for use in inner scan (Vadim)
fix gist for use in inner scan, cleanups (Vadim, Andrea)
avoid unnecessary local buffers allocation (Vadim, Massimo)
fix local buffers leak in transaction aborts (Vadim)
fix file manager memmory leaks, cleanups (Vadim, Massimo)
fix storage manager memmory leaks (Vadim)
fix btree duplicates handling (Vadim)
fix deleted tuples re-incarnation caused by vacuum (Vadim)
fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)

增強
------------
attribute optimization statistics(Bruce)
much faster new btree bulk load code(Paul)
BTREE UNIQUE added to bulk load code(Vadim) 
new lock debug code(Massimo)
massive changes to libpg++(Leo)
new GEQO optimizer speeds table multitable optimization(Martin)
new WARN message for non-unique insert into unique key(Marc)
update x=-3, no spaces, now valid(Bruce)
remove case-sensitive identifier handling(Bruce,Thomas,Dan)
debug backend now pretty-prints tree(Darren)
new Oracle character functions(Edmund)
new plaintext password functions(Dan)
no such class or insufficient privilege changed to distinct messages(Dan)
new ANSI timestamp function(Dan)
new ANSI Time and Date types (Thomas)
move large chunks of data in backend(Martin)
multicolumn btree indexes(Vadim)
new SET var TO value command(Martin)
update transaction status on reads(Dan)
new locale settings for character types(Oleg)
new SEQUENCE serial number generator(Vadim)
GROUP BY function now possible(Vadim)
re-organize regression test(Thomas,Marc)
new optimizer operation weights(Vadim)
new psql \z grant/permit option(Marc)
new MONEY data type(D'Arcy,Thomas)
tcp socket communication speed improved(Vadim)
new VACUUM option for attribute statistics, and for certain columns (Vadim)
many geometric type improvements(Thomas,Keith)
additional regression tests(Thomas)
new datestyle variable(Thomas,Vadim,Martin)
more comparison operators for sorting types(Thomas)
new conversion functions(Thomas)
new more compact btree format(Vadim)
allow pg_dumpall to preserve database ownership(Bruce)
new SET GEQO=# and R_PLANS variable(Vadim)
old (!GEQO) optimizer can use right-sided plans (Vadim)
typechecking improvement in SQL parser(Bruce)
new SET, SHOW, RESET commands(Thomas,Vadim)
new \connect database USER option
new destroydb -i option (Igor)
new \dt and \di psql commands (Darren)
SELECT "\n" now escapes newline (A. Duursma)
new geometry conversion functions from old format (Thomas)

原始碼樹修改
-------------------
new configuration script(Marc)
readline configuration option added(Marc)
OS-specific configuration options removed(Marc)
new OS-specific template files(Marc)
no more need to edit Makefile.global(Marc)
re-arrange include files(Marc)
nextstep patches (Gregor Hoffleit)
removed WIN32-specific code(Bruce)
removed postmaster -e option, now only postgres -e option (Bruce)
merge duplicate library code in front/backends(Martin)
now works with eBones, international Kerberos(Jun)
more shared library support
c++ include file cleanup(Bruce)
warn about buggy flex(Bruce)
DG/UX, Ultrix, Irix, AIX portability fixes