付録 E. リリースノート

目次
E.1. リリース7.4.2
E.2. リリース7.4.1
E.3. リリース 7.4
E.4. リリース7.3.6
E.5. リリース 7.3.5
E.6. リリース 7.3.4
E.7. リリース 7.3.3
E.8. リリース 7.3.2
E.9. リリース 7.3.1
E.10. リリース 7.3
E.11. リリース7.2.4
E.12. リリース 7.2.3
E.13. リリース 7.2.2
E.14. リリース 7.2.1
E.15. リリース 7.2
E.16. リリース 7.1.3
E.17. リリース 7.1.2
E.18. リリース 7.1.2
E.19. リリース 7.1
E.20. リリース 7.0.3
E.21. リリース 7.0.2
E.22. リリース 7.0.1
E.23. リリース 7.0
E.24. リリース 6.5.3
E.25. リリース 6.5.2
E.26. リリース 6.5.1
E.27. リリース 6.5
E.28. リリース 6.4.2
E.29. リリース 6.4.1
E.30. リリース 6.4
E.31. リリース 6.3.2
E.32. リリース 6.3.1
E.33. リリース 6.3
E.34. リリース 6.2.1
E.35. リリース 6.2
E.36. リリース 6.1.1
E.37. リリース 6.1
E.38. リリース 6.0
E.39. リリース 1.09
E.40. リリース 1.02
E.41. リリース 1.01
E.42. リリース 1.0
E.43. Postgres95 リリース 0.03
E.44. Postgres95 リリース 0.02
E.45. Postgres95 リリース 0.01

E.1. リリース7.4.2

リリース日: 2004-03-08

このリリースは7.4.1の様々な不具合を修正したものです。

E.1.1. 7.4.2バージョンへの移行

7.4.Xからの移行の場合は ダンプ/リストアは必要ありません。 しかし、これは初期の7.4.Xシステムカタログの内容に存在した2つのエラーの修正を組み込む最も簡単な方法としてお勧めできます。 7.4.2のinitdbを使用したダンプ、initdb、再ロードという流れにより、自動的にこの問題が修正されます。

この2つのエラーのより深刻な点は、anyarrayデータ型が間違った整列ラベルを持っていたことです。 pg_statisticシステムカタログがanyarray型の列を使用しているため、これは問題です。 この間違ったラベル付けにより、doubleで整列された列(float8timestampなど)をWHERE句に含む問い合わせの計画を作成中、プランナは間違った推定を行ない、最悪はクラッシュしてしまいます。 initabや後述の手作業による修復手順に従って、すべてのインストレーションでこのエラーを修復することを強く推奨します。

あまり深刻ではないエラーは、SETの代わりにUPDATE pg_settingsを使用できるようにpg_settingsシステムビューの出力がpublicに対して更新アクセス可能すべきでした。 これは、initdbや手作業で修正することができますが、UPDATE pg_settingsを使用したいのでない限り修正する必要はありません。

initdbを実行したくなければ、以下の手順でpg_statisticを修正することができます。 データベーススーパーユーザで実行してください。

-- clear out old data in pg_statistic:
DELETE FROM pg_statistic;
VACUUM pg_statistic;
-- this should update 1 row:
UPDATE pg_type SET typalign = 'd' WHERE oid = 2277;
-- this should update 6 rows:
UPDATE pg_attribute SET attalign = 'd' WHERE atttypid = 2277;
--     
-- At this point you MUST start a fresh backend to avoid a crash!
--
-- repopulate pg_statistic:
ANALYZE;

これは稼働中のデータベースに対して行なうことができますが、変更したデータベースで実行中のすべてのバックエンドは、pg_statisticを安全に更新させるために、再起動されなければなりません。

pg_settingsエラーを修復するには単に以下を実行してください。

GRANT SELECT, UPDATE ON pg_settings TO PUBLIC;

上述の手順は、template1を含むインストレーションのすべてのデータベースに対して行なわなければなりません。理想をいえばtemplate0にも行なってください。 テンプレートデータベースに対して修復を行なわないと、将来作成されるデータベースに同じエラーが含まれることになります。 template1は他のデータベースと同様の方法で修正できますが、template0の修正には更に手順が必要です。 まず、任意のデータベースから以下を発行してください。

UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';

次にtemplate0に接続し、上の手順を実行してください。 最後に以下を実行してください。

-- re-freeze template0:
VACUUM FREEZE;
-- and protect it against future alterations:
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';

E.1.2. 変更点

リリース7.4.2には、リリース7.3.6で行なわれた修正に加え、以下の修正が組み込まれています。

  • Fix pg_statistics alignment bug that could crash optimizer

    See above for details about this problem.

  • Allow non-super users to update pg_settings

  • Fix several optimizer bugs, most of which led to "variable not found in subplan target lists" errors

  • Avoid out-of-memory failure during startup of large multiple index scan

  • Fix multibyte problem that could lead to "out of memory" error during COPY IN

  • Fix problems with SELECT INTO / CREATE TABLE AS from tables without OIDs

  • Fix problems with alter_table regression test during parallel testing

  • Fix problems with hitting open file limit, especially on OS X (Tom)

  • Partial fix for Turkish-locale issues

    initdb will succeed now in Turkish locale, but there are still some inconveniences associated with the i/I problem.

  • Make pg_dump set client encoding on restore

  • Other minor pg_dump fixes

  • Allow ecpg to again use C keywords as column names (Michael)

  • Added ecpg WHENEVER NOT_FOUND to SELECT/INSERT/UPDATE/DELETE (Michael)

  • Fix ecpg crash for queries calling set-returning functions (Michael)

  • Various other ecpg fixes (Michael)

  • Fixes for Borland compiler

  • Thread build improvements (Bruce)

  • Various other build fixes

  • Various JDBC fixes