リリース 6.1

Postgres のバージョン 6.1 リリース用にレ グレッションテストが適合され、広範な変更がなされました。

3 つの新しいデータ型(datetime、timespan、circle)が Postgres の固有型セットに追加されました。 Points、boxes、paths、polygons は全てのデータ型と矛盾しない、独自の出 力書式を持つようになりました。 misc.out における polygon 出力の判定は元とするレグレッションテストの出 力に相対的に位置を点検するだけになりました。

Postgres バージョン 6.1 では、 遺伝的 アルゴリズムを使用する代替的なオプティ マイザが新しく導入されました。 このアルゴリズムは、その問い合わせに複数の条件もしくは複数のテーブル が含まれている時に、問い合わせ結果の順序付けにランダムな振舞いを導入 します。(オプティマイザに評価の順序付けについての選択力を付与します。) 複数のレグレッションテストが、結果の順序付けを明確にするために変更さ れました。また、このためオプティマイザの選択力が鈍くなりました。 いくつかのレグレッションテストは本来順序付けされないデータ型用ですの で、これらの型のテストには set geqo to 'off'reset geqo を明示的に付与することが必要になりました。

配列の指定(数値の周りの{})の解釈は、元のレグレッションテストが作成さ れた後で変更されたように見えます。 現在の ./expected/*.out ファイルはこの新しい解釈を 反映しました。正しくないかも知れません!

float8 のレグレッションテストは少なくともいくつかのプラットホームで失 敗します。これは pow()、exp()、及び、オーバフローとアンダーフロー状態 の際に使われる割り込み機構の解釈の違いのためです。

ランダムテストの "random" の結果は、"random" テストは "failed" したとい う結果にならなければなりません。レグレッションテストは単純に diff を使 って評価をしているからです。 しかし、私の試験マシン (Linux/gcc/i686) では、"random" はランダムな結果 を生成しないようです。

バージョン 6.1 への移行

この移行には、6.0 データベースの完全なダンプと 6.1 へのレストアが 必要です。

リリース 1.* 以前からの移行の場合は、COPY の出力書式が リリース 1.02 にて改良されましたので、まず 1.09 にアップグレードしなければなりませ ん。

詳細な変更点一覧

Bug Fixes
---------
packet length checking in library routines
lock manager priority patch
check for under/over flow of float8(Bruce)
multi-table 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 indices (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)

Enhancements
------------
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 multi-table 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)
multi-column 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)

Source tree changes
-------------------
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