<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PostgreSQL 8.2 &#8211; SRA OSS Tech Blog</title>
	<atom:link href="https://www.sraoss.co.jp/tech-blog/tag/postgresql-8-2/feed/index.xml" rel="self" type="application/rss+xml" />
	<link>https://www.sraoss.co.jp/tech-blog/</link>
	<description>OSS専門の技術ブログ。PostgreSQL、Zabbixを中心に10種類以上のOSSの解説、アップデート情報、運用ヒントを提供。</description>
	<lastBuildDate>Fri, 23 Oct 2026 06:30:47 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://www.sraoss.co.jp/tech-blog/wp-content/uploads/2018/07/blog-icon-150x150.png</url>
	<title>PostgreSQL 8.2 &#8211; SRA OSS Tech Blog</title>
	<link>https://www.sraoss.co.jp/tech-blog/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>PostgreSQL 8.2.23 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-23/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Mon, 05 Dec 2011 01:00:41 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=2816</guid>

					<description><![CDATA[このリリースは 8.2.22 からの修正リリース(2011/12/05リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 また、8.2.14 より前のバージョンからアップデートを行う場合は  ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.22 からの修正リリース(2011/12/05リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、8.2.14 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-14/">8.2.14 に関する技術情報</a>を参照してください。</p>
<p><span id="more-2816"></span></p>
<h3 class="background">PostgreSQL 8.2.22 から 8.2.23 への変更点</h3>
<p>9.1.2、9.0.6、8.4.10、8.3.17、8.2.23 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol class="technology">
<li>
information_schema.referential_constraints ビューの障害が修正されました。(Tom Lane) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>この情報スキーマのビューは各テーブルに定義された外部キーの一覧を返すもので、誤った結果を返す場合がありました。<br />既存のデータベースクラスタに修正を適用するには、各データベースに対して情報スキーマを作り直さないといけません。<br />インストール先の share 以下に情報スキーマ定義の SQLファイルがあります。</p>
<p>以下にコマンド例を示します。</p>
<pre>
  $ pg_config --sharedir
  /usr/local/pgsql/share

  $ psql -U postgres db
  db=# DROP SCHEMA information_schema CASCADE;
  db=# i /usr/local/pgsql/share/information_schema.sql
</pre>
</li>
<li>
contrib/citext のアップグレードスクリプトが修正されました。(Tom Lane) (9.1)</p>
<p>citext モジュールは大文字小文字を区別しない文字列型を提供するものです。<br />pg_upgrade で 9.1 以前のデータベースクラスタからアップグレードするときに、存在する citext 型のカラムとインデックスが正しくマークされませんでした。<br />この結果、文字列比較で以下のようなエラーが生じました。</p>
<pre>
ERROR:  could not determine which collation to use for string comparison
HINT:  Use the COLLATE clause to set the collation explicitly.
</pre>
<p>本修正は「CREATE EXTENSION citext FROM unpackaged」コマンドで、モジュールをアップグレードする場合にも対応します。</p>
<p>既にアップグレードをしていて問題が生じている場合には、管理者権限ユーザで、以下アップグレードスクリプトの末尾に記述されている UPDATE コマンドを手動実行してください。<br />share ディレクトリは「pg_config --sharedir」で確認できます。</p>
<pre>
PGSQL_INSTALL_DIR/share/extension/citext--unpackaged--1.0.sql
</pre>
</li>
<li>
スカラ値を返す関数と結合する UPDATE または DELETE でクラッシュする可能性が修正されました。(Tom Lane) (9.1)(9.0)</p>
<p>ここでスカラ値とは複数行でなく一行分の値という意味です。クラッシュは対象行が同時更新されている場合のみ発生するため、発生したりしなかったりします。</p>
</li>
<li>
GIN インデックス更新の WALレコードのリプレイの誤りが修正されました。(Tom Lane) (9.1)(9.0)(8.4)</p>
<p>WAL レコードのリプレイは、クラッシュリカバリ、PITR バックアップからのリストア、レプリケーションで実行される動作です。</p>
<p>この誤りにより、クラッシュ後やホットスタンバイサーバで一時的にインデックス要素の検索に失敗します。ただし、当該インデックスに対する次の VACUUM で修復されます。</p>
</li>
<li>
「CREATE TABLE dest AS SELECT * FROM src」または「INSERT INTO dest SELECT * FROM src」という問い合わせで TOAST 関連のデータ破損が起きる問題が修正されました。(Tom Lane) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>「ALTER TABLE ADD COLUMN」でテーブル変更されていると、そのテーブル内容を他のテーブルに転写するとき、データ破損が生じることが稀にありました。</p>
<p>この問題が明白に現れるのは 8.4 以降バージョンです。しかし、別の実行パターンで同様の誤りを引き起こす可能性があるため、それ以前のバージョンにも修正を適用しています。</p>
</li>
<li>
ホットスタンバイの起動に失敗する可能性があり、修正されました。(Simon Riggs) (9.1)(9.0)</li>
<li>
初期スナップショットが不正である場合のホットスタンバイの起動を高速にしました。(Simon Riggs) (9.1)(9.0)</li>
<li>
古い syscache 項目からの TOAST テーブルへのアクセスでの競合状態が修正されました。(Tom Lane) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>syscache とはシステムカタログ内容のキャッシュです。</p>
<p>典型的な症状としては、一時的に「missing chunk number 0 for toast value NNNNN in pg_toast_2619」のようなエラーが発生します。メッセージで示される TOAST テーブルは常にシステムカタログに属するものとなります。</p>
</li>
<li>
依存関係を確認するときに、パラメータのデフォルト式で依存している関数を追跡するようになりました。(Tom Lane) (9.1)(9.0)(8.4)</p>
<p>これまでは、参照されているものでも削除できてしまいました。そのため、以下のようなエラーが発生しました。</p>
<pre>
=# CREATE FUNCTION f2(x int DEFAULT f1(1)::int) RETURNS int
   LANGUAGE sql AS $$ SELECT 1; $$;
CREATE FUNCTION
=# DROP FUNCTION f1(int);
DROP FUNCTION
=# SELECT f2();
ERROR:  cache lookup failed for function 25244
</pre>
<p>この更新を適用しても、依存先オブジェクトが失われている状態は回復しません。デフォルト値にビルトインオブジェクト以外を使用している各関数について CREATE OR REPLACE FUNCTION を実行しなおして確認することが推奨されます。</p>
</li>
<li>
ネストループ結合でプレースホルダ変数の扱いが不適切で、修正されました。(Tom Lane) (9.1)</p>
<p>本障害では以下のエラーが生じます。「ERROR: variable not found in subplan target lists」また、外部結合を伴うとき誤った問い合わせ結果が返る可能性がありました。</p>
</li>
<li>
集約を伴う式でソートする Window 関数が修正されました。(Tom Lane) (9.1)</p>
<p>これまで「ERROR: could not find pathkey item to sort」というプランナのエラーが出ていました。</p>
</li>
<li>
「ERROR: MergeAppend child's targetlist doesn't match MergeAppend」というプランナエラーがでる問題が修正されました。(Tom Lane) (9.1)</li>
<li>
collation 適用可能な入力と collation 適用不能な入力との演算子比較におけるインデックス適用の問題が修正されました。(Tom Lane) (9.1)</p>
<p>ここでの collation とはロケールに従った文字照合のことを指します。<br />「・・・ WHERE hstore_col ? 'text'」など、collation 適用不能な型と可能な型とで比較する場合に、インデックスが想定通り使われないことがありました。</p>
</li>
<li>
複数行を返す OUT パラメータを複数持つ SQL関数がインライン展開できるようになりました。(Tom Lane) (9.1)(9.0)(8.4)</li>
<li>
JOIN REMOVAL 処理において、遅延評価のユニークインデックスを信用しないようになりました。(Tom Lane and Marti Raudsepp) (9.1)(9.0)</p>
<p>JOIN REMOVAL とは不要な結合を除去するオプティマイザの働きです。遅延評価のユニーク制約はトランザクション内では値を拘束しないことから、誤った結果を返すことがありえました。</p>
</li>
<li>
DatumGetInetP() が 1 バイトのヘッダをもつ inet 型データを展開するようになりました。また、そうでない新たなマクロ DatumGetInetPP() が追加されました。(Heikki Linnakangas) (9.1)(9.0)(8.4)(8.3)</p>
<p>これは PostgreSQL サーバのコアコードには影響ありませんが、アドオンコードが、DatumGetInetP() が一般的な習慣に従ってデータ展開するものと期待していた場合に、クラッシュするのを防ぎます。</p>
<p>C言語関数や独自インデックスの記述に影響があります。</p>
</li>
<li>
money型の入出力においてロケールサポートが改善されました。(Tom Lane) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>全ての標準 lc_monetary フォーマットオプションをサポートするわけではないとしても、入出力関数は一貫性を欠いていました。ダンプしたものが再読み込みできないロケールがありました。</p>
</li>
<li>
設定 transform_null_equals が「CASE foo WHEN NULL ...」構文に影響を与えないようになりました。(Heikki Linnakangas) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>transform_null_equals は CASE 構文から内部的に生成されたイコールチェックは対象外で、「foo = NULL」式が直接記述された場合だけ効果があるべきです。</p>
</li>
<li>
外部キートリガの生成順序が自己参照外部キーによりよく対応するように変更されました。(Tom Lane) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>そのテーブル自身を参照しているカスケード外部キーについて、一行の更新に対して ON UPDATE トリガーと CHECK トリガーが一つのイベントとして発火するようになりました。</p>
<p>ON UPDATE トリガーを先に実行しなければいけないところ、CHECK を最終的な状態になっていない行に実行し、不適切なエラーが出ることがありました。</p>
<p>これは 9.2 バージョンで導入された変更の一部を後方適用したものです。本変更を適用するにはトリガーが正しい順序になるように外部キー制約を削除し、再作成する必要があります。
</p>
</li>
<li>
IF EXISTS 節が DROP OPERATOR コマンドに対して正しく働くように修正されました。(Robert Haas) (9.1)</li>
<li>
拡張モジュール自身のスクリプトから拡張モジュールの削除を許さないようになりました。(Tom Lane) (9.1)</p>
<p>不正な拡張モジュール依存関係管理で、奇妙な振る舞いが生じるのを防ぎます。</p>
</li>
<li>
自動的に生成された型を拡張モジュールの要素であると区分しないようになりました。(Robert Haas) (9.1)</p>
<p>テーブルの行型(rowtype)や自動生成された配列型は、pg_depend において拡張モジュールの一員であるとする必要がありません。これらがあることで拡張モジュールのアップグレードが複雑になっていました。</p>
</li>
<li>
CREATE EXISTS コマンドにおいて、先在する無効な search_path 設定に対処できるようになりました。(Tom Lane) (9.1)</li>
<li>
バッファ割り当て率の計算で浮動小数点のアンダーフローを回避するようになりました。(Greg Matthews) (9.1)(9.0)(8.4)(8.3)</p>
<p>これ自体では害はありませんが、ある種のプラットフォームで不快なカーネルログメッセージが生じていました。</p>
</li>
<li>
自動バキュームのトランザクションが SERIALIZABLE モードで動作するのを防止するようになりました。(Tom Lane) (9.1)</p>
<p>自動バキュームはこれまではクラスタ全体のデフォルトトランザクション隔離レベルで動作していました。しかし、READ COMMITTED よりも高レベルで動作する必要はなく、SERIALIZABLE での動作は他のプロセスに不要な遅延をもたらしていました。</p>
</li>
<li>
walsender プロセスが確実に SIGTERM シグナルに即応するようになりました。(Magnus Hagander) (9.1)</li>
<li>
postmaster.opts ファイルがベースバックアップから除外されるようになりました。(Magnus Hagander) (9.1)</li>
<li>
Windows において設定ファイル名と行番号が保持されるようになりました。(Tom Lane) (9.1)(9.0)(8.4)</p>
<p>これまでは、これらは pg_settings ビューで正しく表示されませんでした。</p>
</li>
<li>
ecpg の SQLDA での誤ったフィールドアライメントが修正されました。(Zoltan Boszormenyi) (9.1)(9.0)</li>
<li>
psql のコマンドヒストリで空白行が維持されるようになりました。(Robert Haas) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>これまでは空白行は除外されていました。これは空白行を含む文字列リテラルを表現するときなどに問題を引き起こしていました。</p>
</li>
<li>
プラットフォーム固有の pg_dump における無限ループが回避されました。 (Steve Singer) (9.1)</p>
<p>C言語ライブラリ関数 malloc(0) が NULL を返す場合に該当します。</p>
</li>
<li>
pg_dump におけるテキスト形式出力フォーマットの圧縮が修正されました。 (Adrian Klaver and Tom Lane) (9.1)</p>
<p>pg_dump は歴史的には -F 指定を伴わない -Z オプションを受け付けました。これは gzip 圧縮されたテキスト形式の出力をします。この振る舞いが復活しました。</p>
</li>
<li>
pg_dump が自動生成された型（テーブル行型など）に対するユーザ定義キャストをダンプするように修正されました。(Tom Lane) (9.1)(9.0)(8.4)(8.3)</li>
<li>
pg_dump における外部サーバ名のクオート付けの誤りが修正されました。(Tom Lane) (9.1)</li>
<li>
pg_upgrade の各種の修正が適用されました。(Bruce Momjian) (9.1)(9.0)</p>
<p>排他制約が正しく扱えるようになりました。Windows における失敗を回避します。8.4 データベースの TOASTテーブル名の不一致についてエラー等が出なくなります。</p>
</li>
<li>
PL/pgSQL にて外部テーブルを行型の定義に使えるようになりました。(Alexander Soudakov) (9.1)</li>
<li>
PL/Perl 関数の結果の変換について修正されました。(Alex Hunsaker and Tom Lane) (9.1)</p>
<p>9.1 より前のバージョンの、 void 型を返す PL/Perl 関数は返し値となる最後の Perl 文を無視するという振る舞いに戻されました。9.1.0 では、最後の分がリファレンスを返すと、エラーを投げていました。</p>
<p>また、文字列が型の入力フォーマットに合っていれば、必ず複合型むけの文字列値を返すようにします。</p>
<p>加えて、関数が関数が配列や複合型を返すように定義されていないとき、Perl の配列やハッシュを返そうとした場合、それぞれエラーを投げるようになりました。<br />以前は 'ARRAY(0x221a9a0)' や 'HASH(0x221aa90)' といった文字列が返されていました。</p>
</li>
<li>
PL/Perl の文字列が必ず正しい UTF8 エンコーディングとなるようになりました。 (Amit Khandekar and Alex Hunsaker) (9.1)</li>
<li>
PL/Perl のビルドに 好ましいバージョンの xsubpp が選択されて使われます。 (David Wheeler and Alex Hunsaker) (9.1)(9.0)(8.4)(8.3)(8.2)</li>
<li>
PL/Python 例外で SQLSTATE が正しく伝わるようになりました。(Mika Eloranta and Jan Urbanski) (9.1)</li>
<li>
現在の Python メジャーバージョン以外の PL/Python 拡張ファイルをインストールしなくなりました。 (Peter Eisentraut) (9.1)</li>
<li>
contrib 追加モジュールスクリプトの全てが、psql に与えたとき、有用なエラーメッセージを報告するように変更されました。(Andrew Dunstan and Tom Lane) (9.1)</p>
<p>CREATE EXTENSION でモジュールをロードするときに助けとなります。</p>
</li>
<li>
contrib/dict_int と contrib/dict_xsyn の誤ったコードを修正しました。 (Tom Lane) (9.1)(9.0)(8.4)(8.3)</p>
<p>一部の関数で palloc() の結果がゼロ埋めされていると想定していました。</p>
</li>
<li>
追加モジュール contrib/sepgsql が標準の再帰テストから取り除かれました。 (Tom Lane) (9.1)</p>
<p>これらのテストには root権限が必要で、自動実行させるのには実際的ではありませんでした。代わりに手動で行うものとして、テストスクリプトは提供されます。</p>
</li>
<li>
追加モジュール contrib/unaccent の設定読み込みにおける各種誤りが修正されました。(Tom Lane) (9.1)(9.0)</li>
<li>
pgstatindex() でクエリキャンセル割り込みへの対応を尊重するようになりました。(Robert Haas) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>pgstattuple() にも同様の問題があり、これは過去に修正されています。</p>
</li>
<li>
Mac OS X むけの起動スクリプトでログファイル名の誤ったクオートが修正されました。 (Sidar Lopez) (9.1)(9.0)</li>
<li>
意図しない WAL_DEBUG の有効化がもとに戻されました。 (Robert Haas) (9.1)</p>
<p>ソースコード中の設定項目 WAL_DEBUG が 9.1.0 でデフォルトで有効となっていました。これは軽微な負荷ですがデフォルトとすることは意図したものではないので元に戻されました。</p>
<p>src/include/pg_config_manual.h に設定箇所があります。</p>
</li>
<li>
VPATHビルドで適切に全サーバヘッダファイルがインストールされるようになりました。(Peter Eisentraut) (9.1)(9.0)(8.4)(8.3)(8.2)</li>
<li>
VPATH ビルドした時の verbose モードのエラーメッセージでのファイル名表示が短くなりました。(Peter Eisentraut) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>以下のような長い表示が出ていました。</p>
<pre>
ERROR:  42703: column "foo" does not exist
LINE 1: select foo;
               ^
LOCATION:  transformColumnRef, /build/buildd-postgresql-9.1_9.1.1-3-i386-AP0ovQ/postgresql-9.1-9.1.1/build/../src/backend/parser/parse_expr.c:766
</pre>
<p>ソースを展開したディレクトリ上でビルドする場合には問題となりません。</p>
</li>
<li>
アメリカ中部標準時 の Windows タイムゾーン名の割り当てが修正されました。(Tom Lane) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>中部標準時を CST6CDT でなく CST6 に割り当てます。一般にDST (夏時間) はアメリカ中部で常に使われるわけではないからです。</p>
</li>
<li>
タイムゾーンデータファイルが tzdata release 2011n に更新されました。 (Tom Lane) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>ブラジル、キューバ、フィジー、パレスチナ、ロシア、サモアにおける夏時間法の変更が反映されます。また、アラスカと英領東アフリカの歴史的な修正が含まれます。</p>
</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL 8.2.22 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-22/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Mon, 26 Sep 2011 01:00:02 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=2834</guid>

					<description><![CDATA[このリリースは 8.2.21 からの修正リリース(2011/09/26リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 また、8.2.14 より前のバージョンからアップデートを行う場合は  ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.21 からの修正リリース(2011/09/26リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、8.2.14 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-14/">8.2.14 に関する技術情報</a>を参照してください。</p>
<p><span id="more-2834"></span></p>
<h3 class="background">PostgreSQL 8.2.21 から 8.2.22 への変更点</h3>
<p>9.1.1、9.0.5、8.4.9、8.3.16、8.2.22 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol class="technology">
<li>
テーブル格納パラメータを取得する pg_options_to_table関数で、値のないオプションに対して NULL を返すようになりました。(Tom Lane) (9.1)(9.0)(8.4)</p>
<p>これまでは クラッシュを引き起こしていました。</p>
</li>
<li>
GiSTインデックススキャンの最後でのメモリリークが修正されました。(Tom Lane) (9.1)(9.0)(8.4)(8.3)(8.2)</p>
<p>多数の行を持つテーブルに対するGiSTベースの排他制約の検証など、分散した GiSTインデックススキャンを多数行うコマンドで、本メモリリークにより、一時的に大量のメモリを必要とすることがありました。</p>
</li>
<li>
CREATE TEMPORARY TABLE で pg_tempスキーマの明示参照を制限する動作が修正されました。(Robert Haas) (9.1)</p>
<p>これまで可能であったものが、9.1.0 で以下のようにエラーになることがありました。</p>
<pre>
=# CREATE TEMP TABLE pg_temp_2.page (id int, v text);
ERROR:  temporary tables cannot specify a schema name
</pre>
</p>
</li>
<li>
システムカタログの VACUUM FULL あるいは CLUSTER の後にカタログキャッシュが無効になるように修正されました。(Tom Lane) (9.0)</p>
<p>システムカタログの行の再配置が、同時実行中のプロセスに認識されず、その行を更新しようとするときにカタログが壊れるケースがありました。<br />最悪の場合、テーブルが完全に失われます。</p>
</li>
<li>
共有データ無効化の間の誤った処理順序が修正され、TOAST OID がシステムカタログに確実に保持されるようになりました。(Tom Lane) (9.0)</p>
<p>この誤りはシステムカタログに対する VACUUM FULL または CLUSTER の後に一時的に障害を引き起こします。</p>
</li>
<li>
疑わしいHOT更新タプルのインデックス作成の障害が修正されました。(Tom Lane) (9.0)(8.4)(8.3)</p>
<p>このバグにより、システムカタログの REINDEX の後、インデックス破損が生じる可能性がありました。ユーザインデックスに影響は無いものと考えられます。</p>
</li>
<li>
GiSTインデックスのページ分割処理におけるいくつかの障害が修正されました。(Heikki Linnakangas) (9.0)(8.4)(8.3)(8.2)</p>
<p>おそらく発生する可能性は低いですが、インデックス破損を招きます。</p>
</li>
<li>
tsvector_concat関数でバッファオーバランの可能性があり、修正されました。(Tom Lane) (9.0)(8.4)(8.3)</p>
<p>必要メモリ量を過小評価したために問題が生じており、サーバプロセスのクラッシュを招きます。</p>
</li>
<li>
XMLデータ型の処理関数 xml_recv が standaloneパラメータを処理するときにクラッシュする障害が修正されました。(Tom Lane) (9.0)(8.4)(8.3)</li>
<li>
ANALYZE と SJIS-2004 エンコーディング変換でバッファオーバランの可能性があり、修正されました。(Noah Misch) (9.0)(8.4)(8.3)</p>
<p>可能性は極めて低いですが、サーバプロセスがクラッシュするおそれがありました。</p>
</li>
<li>
pg_stat_reset_shared関数の引数が NULL のとき、クラッシュしないように修正されました。(Magnus Hagander) (9.0)</li>
<li>
リカバリがサブトランザクションのデッドロック検出と衝突した場合に、失敗する可能性があり、修正されました。(Tom Lane) (9.0)</li>
<li>
ホットスタンバイ中の Btreeインデックスページの再利用における実体のない衝突を避けるようになりました。 (Noah Misch, Simon Riggs) (9.0)</li>
<li>
リカバリの末尾で動作を続けているWALレシーバプロセスを落とすようになりました。(Heikki Linnakangas) (9.0)</p>
<p>これまで postmaster は、そのような状況でパニックになっていましたが、実際には正常な状態でした。</p>
</li>
<li>
定義情報キャッシュ(relcache) の最初のファイル無効化処理で、競合状態が修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>新しいバックエンドプロセスが無効化メッセージを見逃し、最新でないファイルを読む可能性がありました。<br />結果、システムカタログへのアクセスで奇妙な失敗が生じます。典型的には「could not read block 0 in file ...」というエラーが、起動後に生じます。</p>
</li>
<li>
LISTEN が有効で、コマンド文字列で文字エンコーディング変換が行われる場合のメモリリークが修正されました。(Tom Lane) (9.0)</li>
<li>
HOLDカーソルと、PL/pgSQL の RETURN NEXT コマンドにおける、メモリ膨張（メモリリーク）を招く可能性のある誤ったメモリ計算が修正されました。(Tom Lane) (9.0)(8.4)</li>
<li>
トリガーに BEFORE と AFTER の両方が存在する場合の WHEN 条件について修正されました。(Tom Lane) (9.0)</p>
<p>同じ更新で、BEFORE ROWトリガーが在って動作している場合に、AFTER ROW UPDATEトリガーのWHEN条件の評価でクラッシュする可能性がありました。</p>
</li>
<li>
巨大で lossy なビットマップインデックスを構築するときの性能上の問題が修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>
ユニークカラムにおける JOIN 選択率の見積りが修正されました。(Tom Lane) (9.0)(8.4)</p>
<p>これはJOIN結果の劣悪な見積りを招く誤ったプランナヒューリスティックを修正します。</p>
</li>
<li>
副問い合わせのターゲットリストにだけあらわれる入れ子のプレースホルダ式について修正されました。(Tom Lane) (9.0)(8.4)</p>
<p>外部結合の結果に NULL が不適切に出現する可能性がありました。<br />以下は発現例。sub1 または sub2 だけ出力する SELECT文に分けて実行するとNULL は出現しないが、それらを外部結合すると NULL が現れてしまいます。</p>
<pre>
=# SELECT * FROM (select 1 as key1) sub1
   LEFT JOIN
    (SELECT sub3.key3, sub4.value2 FROM (SELECT 1 as key3) sub3
     LEFT JOIN (SELECT sub5.key5, COALESCE(sub6.value1, 1) as value2
     FROM (SELECT 1 as key5) sub5 LEFT JOIN (SELECT 1 as key6, value1
     FROM (SELECT NULL::integer as value1) sub7 WHERE false) sub6
     ON false) sub4 ON sub4.key5 = sub3.key3) sub2
   ON sub1.key1 = sub2.key3;

 key1 | key3 | value2
------+------+--------
    1 |    1 |
(1 row)
</pre>
</p>
</li>
<li>
プランナが空の親テーブルを本当に空であると仮定できるようになりました。(Tom Lane) (9.0)</p>
<p>通常はプランニング上の理由により、空テーブルは最小だがある程度のサイズを持つものと仮定します。このヒューリスティックは、テーブル継承における親テーブル（たいていは空テーブル）に対しては弊害が大きいと考えられます。</p>
</li>
<li>
入れ子の EXISTS 問い合わせを適切に最適化できるようになりました。 (Tom Lane) (9.0)(8.4)</li>
<li>
配列処理の array_...関数と幾何データ処理の path_... 関数で、処理内部のパディングバイトが確実にゼロの並びになるように修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>プランナが本来等価なデータを等しくないと判断する状況が生じ、最適化が劣悪なものになる可能性がありました。</p>
</li>
<li>
EXPLAIN が、inner indexscan 副プランの中の Result ノードとの値の引き渡しを正しく行うように修正されました。(Tom Lane) (9.0)(8.4)</p>
<p>本問題で「ERROR: bogus varno: 65001」のようなエラーが発生します。</p>
</li>
<li>
Btreeインデックスの IS NULL 状態の事前処理について修正されました。(Dean Rasheed) (9.0)</p>
<p>同じカラムで別タイプのインデックス可能な条件が組み合わされている場合に問題があります。<br />該当するケースでは、問い合わせで結果が 0行であるべきところで出力が生じる現象を引き起こします。<br />以下は再現例です。</p>
<pre>
=# CREATE TABLE foo (a int);
=# CREATE INDEX foo_a_idx ON foo (a);
=# INSERT INTO foo VALUES (10), (NULL);
=# SELECT 1 FROM foo WHERE a IS NULL AND a > 10000;
 ?column?
----------
        1
(1 row)
</pre>
</p>
</li>
<li>
gcc 4.6.0 の障害でリカバリ（WAL replay）に失敗するのを回避するように修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>クラッシュリカバリでコミット済みトランザクションが失われる可能性がありました。</p>
</li>
<li>
ビューにおける VALUES を正しくダンプできない問題が修正されました (Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>「CREATE VIEW test_view AS VALUES (1), (2), (3) ORDER BY 1」というビューをダンプすると、以下のようになってしまいます。</p>
<pre>
CREATE VIEW test_view AS
    VALUES (1), (2), (3) ORDER BY "*VALUES*".column1;
</pre>
</p>
</li>
<li>
シーケンスに対して SELECT FOR UPDATE/SHARE が禁止されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>この操作はもともと機能しないと考えられ、問題を引き起こします。</p>
</li>
<li>
pg_class.reltuples/relpages を常に更新するように VACUUM が修正されました。(Tom Lane) (9.0)(8.4)</p>
<p>これまでビジビリティマップにより処理を省略している場合、reltuples、relpages は更新されませんでした。結果として、自動VACUUM による、テーブル毎のVACUUM実施判断が劣悪になることがありました。</p>
</li>
<li>
ハッシュテーブルのサイズを計算する際に整数オーバーフローを防ぐようになりました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>
CLUSTERコマンドが削除済みTOASTデータにアクセスを試みていたものが修正されました。(Tom Lane) (9.0)(8.4)(8.3)</li>
<li>
初期認証処理の早すぎるタイムアウトが修正されました。 (Tom Lane) (9.0)</li>
<li>
ピア認証むけ証明書管理メッセージの移植性に関する障害が修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>
複数往復のやり取りが必要な場合について SSPI認証処理が修正されました。(Ahmed Shinwari, Magnus Hagander) (9.0)(8.4)(8.3)</p>
<p>典型的な症状としては "The function requested is not supported" というエラーが出ます。</p>
</li>
<li>
カスタム変数クラスを postgresql.conf に追加する際の障害が修正されました。(Tom Lane) (9.0)</p>
<p>「SELECT pg_reload_conf();」でサーバプロセスがクラッシュするケースが報告されています。</p>
</li>
<li>
pg_hba.conf に hostssl が含まれているけれど SSL が無効であるときエラーになる振る舞いが修正されました。(Tom Lane) (9.0)(8.4)</p>
<p>従来の hostssl の行は無視されるという振る舞いの方がよりユーザフレンドリであるという結論になりました。</p>
</li>
<li>
DROP OWNED BY でシーケンスのデフォルト権限を除くときの障害が修正されました。(Shigeru Hanada) (9.0)</li>
<li>
移植用の内部関数srand48 でシード初期化の誤りが修正されました。(Andres Freund) (9.0)(8.4)(8.3)(8.2)</p>
<p>これは与えられたシードを正しく適用できませんでした。ランダム性が推測に対して弱くなるため、潜在的なセキュリティ問題をはらんでいます。OS が同名関数を提供するため PostgreSQL の srand48 関数は多くのプラットフォームでは使用されません。</p>
</li>
<li>
LIMIT と OFFSET の合計値が 2 の 63乗を超えているとき 整数オーバーフローを回避するようになりました。(Heikki Linnakangas) (9.0)(8.4)(8.3)(8.2)</li>
<li>
int4 型版と int8 型版の generate_series関数でオーバーフロー検査が追加されました。(Robert Haas) (9.0)(8.4)(8.3)(8.2)</li>
<li>
to_char関数で後続のゼロを除く振る舞いが修正されました。(Marti Raudsepp) (9.0)(8.4)(8.3)(8.2)</p>
<p>'FM' (fill mode 充填モード) と小数点の後の数字位置指定なしの整形で、小数点の左側のゼロが誤って除去されていました。<br />以下は再現例です。本来は「10」が出力されなければいけません。</p>
<pre>
=# SELECT to_char(10, 'FM99.');
 to_char
---------
 1
</pre>
</p>
</li>
<li>
pg_size_pretty関数が 2 の 63乗に近い値で入力のオーバーフローを起こすのを回避するように修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>
PL/pgSQL のレコード値における型修飾子一致の検査をより緩やかにしました。(Tom Lane) (9.0)(8.4)</p>
<p>過剰なチェックは保持すべき長さ修飾の破棄を引き起こしていました。</p>
</li>
<li>
initdb でロケール名に含まれるクオートを正しく扱えるようになりました。(Heikki Linnakangas) (9.0)(8.4)</p>
<p>Windows ロケールの一部（People's Republic of China など）で問題が起きていました。</p>
</li>
<li>
contrib/pg_upgrade で孤児になった（＝自動削除されずに残った）一時テーブルのダンプを避けるように修正されました。(Bruce Momjian) (9.0)</p>
<p>システム用に予約された接頭辞 'pg_' で始まるスキーマは対象から外すようになりました。 テーブル OID が移行後に不一致となることを防ぎます。</p>
</li>
<li>
contrib/pg_upgrade が 8.3 からのアップグレードで、TOASTテーブルの relfrozenxids を保つように修正されました。(Bruce Momjian) (9.0)(8.4)</p>
<p>アップグレード後に pg_clog/ 下のファイルの早すぎる削除を引き起こす可能性がありました。</p>
</li>
<li>
contrib/pg_upgrade で、-l (ログ) オプションが Windows でも動作するように修正されました。(Bruce Momjian) (9.0)</li>
<li>
pg_ctl で Windows のサービス登録する場合にも silent mode (-s) に対応するようになりました。(MauMau) (9.0)(8.4)(8.3)</li>
<li>
psql で別ファイルから COPY を行うときにもスクリプトファイルの行番号をカウントしてしまうものが修正されました。 (Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>
データベース名を指定するモードでの standard_conforming_string について pg_restore が修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>standard_conforming_string = on で作られたアーカイブファイルを直接データベースにリストアするとき、pg_restore は不正なコマンドを発行する可能性がありました。</p>
</li>
<li>
pg_restore でパラレルリストアがサポートされないケースについて、より親切になりました。(Tom Lane) (9.0)(8.4)</p>
<p>サポートされないケースかをリストア動作を行う前に確認して報告するようになります。</p>
</li>
<li>
libpq の LDAPサービスを検索するコードで、メモリリークとバッファオーバーランが修正されました。(Albe Laurenz) (9.0)(8.4)(8.3)(8.2)</li>
<li>
libpq でノンブロッキング I/O と SSL接続を使っているときのエラーを回避するようになりました。(Martin Pihlak, Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>
libpq の接続開始時のエラー取扱いが改善されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>特に SSL接続開始時に fork に失敗したときのエラー報告が、適切ではありませんでした。</p>
</li>
<li>
SSL接続の失敗に対する libpq のエラー出力が改善されました。(Tom Lane) (9.0)(8.4)(8.3)</li>
<li>
クライアント C ライブラリ libpq の PQsetvalue関数が、新たな行を、サーバ問い合わせで取得した PGresult に加えるとき、クラッシュするのが修正されました。(Andrew Chernow) (9.0)(8.4)</li>
<li>
ecpglib は 15桁精度の double 値を書くようになりました。(Akira Kurosawa) (9.0)(8.4)(8.3)(8.2)</li>
<li>
ecpglib で、LC_NUMERIC がエラー後に確実にもとに戻るようになりました。(Michael Meskes) (9.0)(8.4)(8.3)</li>
<li>
contrib/pgcrypto で blowfish の 8ビット文字処理の障害(CVE-2011-2483)に修正が適用されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>char が符号付きであるプラットフォームで不適切なコードでした。これにより暗号化されたパスワードが本来よりも脆弱になります。</p>
</li>
<li>
contrib/seg でメモリリークが修正されました。(Heikki Linnakangas) (9.0)(8.4)(8.3)(8.2)</li>
<li>
pgstatindex関数が空のインデックスに対して一貫した結果を返すように修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>
PL/Perl が perl 5.14 でビルドできるようになりました。(Alex Hunsaker) (9.0)(8.4)(8.3)(8.2)</li>
<li>
空白文字を含むファイルパスへのビルド、インストールの種々の問題が修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>タイムゾーンデータファイルが tzdata リリース 2011i に更新されました。 (9.0)(8.4)(8.3)(8.2)
<p>カナダ、エジプト、ロシア、サモア、南スーダンの夏時間法の変更が適用されています。</p>
</li>
<li>
スタートアッププロセスが bgwriterプロセスとの相互作用で断続的なハングアップを起こすのを防ぐようになりました。(Simon Riggs) (8.4)</p>
<p>ホットスタンバイでないリカバリの場合に稀に発生していました。</p>
</li>
<li>
configureスクリプトのシステム機能調査の方式が新しくなりました。(Tom Lane) (8.4)(8.3)(8.2)</p>
<p>8.3 と 8.2 で使用している autoconfバージョン はコンパイラのリンク時の最適化にだまされることがありました。</p>
</li>
<li>
ANALYZE でバッファオーバーランが防止されました。 (Noah Misch) (8.2)</p>
<p>サーバプロセスがクラッシュする僅かな可能性がありました。</p>
</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL 8.2.21 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-21/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Mon, 18 Apr 2011 01:01:20 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=2890</guid>

					<description><![CDATA[このリリースは 8.2.20 からの修正リリース(2011/04/18リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 また、8.2.14 より前のバージョンからアップデートを行う場合は  ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.20 からの修正リリース(2011/04/18リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、8.2.14 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-14/">8.2.14 に関する技術情報</a>を参照してください。</p>
<p><span id="more-2890"></span></p>
<h3 class="background">PostgreSQL 8.2.20 から 8.2.21 への変更点</h3>
<p>9.0.4、8.4.8、8.3.15、8.2.21 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol>
<li>
contrib/pg_upgrade の TOASTテーブルの処理が修正されました。(Bruce Momjian) (9.0)(8.4)</p>
<p>contrib/pg_upgrade はデータベースクラスタのディレクトリを直接読み取り変換することで、データのダンプ、リストアをすることなく、バージョンアップするツールです。また、TOASTテーブルとは、比較的大きいカラムのデータをテーブル本体とは別に格納するものです。pg_upgrade は、TOASTテーブルむけの pg_class.relfrozenxid 値を新バージョンに正しくコピーしていませんでした。<br />これは後に、TOAST テーブルの行検証にまだ必要な pg_clog ファイルを削除してしまう現象を引き起こし、 "could not access status of transaction xxxx" というエラーが生じます。</p>
</li>
<li>
"PD_ALL_VISIBLE flag was incorrectly set in relation xxxx" というWARNING が不適切に出るのが抑制されるようになりました。VACUUM 処理で時々、実際には問題ない場合にも本警告が発生していました。(Heikki Linnakangas) (9.0)(8.4)</li>
<li>
ホットスタンバイで衝突が発生したケースにて、より適切な SQLSTATEエラーコードを使うようになりました。 (Tatsuo Ishii and Simon Riggs) (9.0)</p>
<p>すべての再試行可能な衝突エラーは、エラーコード中に再試行可能と示すようになりました。また、データベースが落ちたために接続クローズとなったときに、ERRCODE_ADMIN_SHUTDOWN ではなく、ERRCODE_DATABASE_DROPPED と報告されるようになりました。これによりコネクションプーラーは状況に正しく対応できます。</p>
</li>
<li>
スタートアッププロセスとbgwriterプロセスとの相互作用において、断続的なハングアップが起きるのを防ぐようになりました。これは、ホットスタンバイでない通常のリカバリに影響がありました。(Simon Riggs) (9.0)</li>
<li>
複合型の中に自身を含めること（再帰的定義）が禁止されました。これによりサーバが複合型の処理を再帰的に無限に行うことを防ぎます。一方でこのような構造に用途がある可能性はありますが、それが問題なく常に働くことを確認するために要する作業を正当化するものではないと判断されました。(Tom Lane) (9.0)(8.4)(8.3)</li>
<li>
カタログキャッシュ（システムテーブルのキャッシュの一部）の初期化でデッドロックする可能性があり、これを防ぐようになりました。(Nikhil Sontakke) (9.0)(8.4)(8.3)(8.2)</p>
<p>キャッシュに読み込むコードがそのインデックスのカタログにロックを取る前にシステムインデックスに共有ロックを取る場合があり、これはデッドロックを引き起こします。</p>
</li>
<li>
行の同時UPDATE に伴う BEFORE ROW UPDATE トリガー処理で生じるポインタ障害が修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>本障害により UPDATE分で "RETURNING ctid" を行うときに以下のエラーメッセージが断続的に発生します。<br />　　　"ERROR:  cannot extract system attribute from virtual tuple"</p>
<p>また、ごく稀に、誤ったインデックスエントリーを生成してしまうようなより深刻なエラーが起きると考えられます。</p>
</li>
<li>
テーブルに対する DEFERRED トリガーが保留されている状態での DROP TABLE が禁止されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</p>
<p>これまでは DROP できてしまいました。これにより、トリガーが最終的に実行されたときに<br />"could not open relation with OID xxxx" というエラーが生じていました。</p>
</li>
<li>
"replication" を pg_hba.conf におけるユーザ名(ロール名)としては、特別なキーワードではなくしました。通常のユーザ名として "replication" を使うことができます。(Andrew Dunstan) (9.0)</p>
<p>なお、引き続き、データベース名としては "replication" は、ストリーミングレプリケーションの接続を表すキーワードとなります。</p>
</li>
<li>
GEQO による最適化が使われている際に、WHERE句に 必ず false となる条件を指定しているときクラッシュを引き起こす問題が、修正されました。(Tom Lane) (9.0)(8.4)</p>
<p>以下の再現例が報告されています。</p>
<pre>create table tenk1 (u1 int, u2 int , t int);
create or replace view vv as
 select a.u1, b.u2, c.t, 'label'::text as lab from tenk1 a
 left join tenk1 b on a.u1 = b.u2
 left join tenk1 c on a.u1 = c.t;

=# explain select * from vv where lab = 'fool';
(正常に表示)

=# set geqo_threshold = 2;
=# explain select * from vv where lab = 'fool';
(ここで当該バックエンドプロセスがクラッシュすることがあります)</pre>
</p>
</li>
<li>
semi-join、anti-join の場合のプランナ処理が改善されました。(Tom Lane) (9.0)(8.4)</p>
<p>semi-join は「... WHERE id IN (SELECT id FROM ...)」といった形、<br />anti-join は「... WHERE id NOT IN (SELECT id FROM ...)」といった形のときの実行プランです。</p>
</li>
<li>
副問い合わせにおける SELECT FOR UPDATE の扱いが修正されました。(Tom Lane) (9.0)</p>
<p>本障害は典型的には以下のエラーを引き起こします。<br />"ERROR: cannot extract system attribute from virtual tuple"</p>
</li>
<li>
テキスト検索における選択行数の見積もりにおいてNULL数の統計情報が反映されていない問題が修正されました。(Jesper Krogh) (9.0)(8.4)</li>
<li>
インデックスアドバイザープラグインによって付加される仮定のインデックスをサポートするように get_actual_variable_range() 関数(本体コード中の内部関数)が修正されました。(Gurjeet Singh) (9.0)</li>
<li>
PL/Python の配列スライスに伴うメモリリークが修正されました。(Daniel Popowich) (9.0)(8.4)(8.3)(8.2)</li>
<li>
libpq でユーザホームディレクトリが使用できなくても SSL初期化ができるようになりました。(Tom Lane) (9.0)</p>
<p>SSLモードがルート証明書を必要としないモードであるなら、ホームディレクトリへのアクセスができなかったとしても、これを失敗とする必要はありませんでした。この変更は、9.0 以前の振る舞いに戻すものです。</p>
</li>
<li>
libpq が接続文字列の構文解析にあたり、有用なエラーメッセージを返すように修正されました。(Joseph Adams) (9.0)</p>
<p>接続文字列の間違いに対して NULL を返すのではなく、アプリケーションむけにPGConn 構造体に エラーメッセージを含めるようになりました。</p>
</li>
<li>
ecpgプリプロセッサのfloat型定数の扱いが修正されました。(Heikki Linnakangas) (9.0)</li>
<li>
pg_restore が、並列リストアを行うとき、後回しにした要素のコメントを正しく扱えるように、修正されました。(Arnd Hannemann) (9.0)</li>
<li>
pg_restore が、目次ファイル(TOC) の長い行 (1KB 以上) を処理できるように修正されました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>
コンパイラによる非常に強力な最適化に対応して、ゼロ除算によるクラッシュに対する保護機構が強化されました。(Aurelien Jarno) (9.0)(8.4)(8.3)(8.2)</li>
<li>
dlopen() の利用が MIPS 上の FreeBSD、OpenBSD サポートされるようになりました。MIPS 上のこれらシステムでは利用できないものと固定的に推測されていましたが、新しいバージョンでは利用可能なので、コンパイル時テストで判断するようにしました。(Tom Lane) (9.0)(8.4)(8.3)(8.2)</li>
<li>
HP-UX におけるコンパイル失敗が修正されました。(Heikki Linnakangas) (9.0)(8.4)(8.3)(8.2)</li>
<li>
プロセス開始してすぐに Windows コンソールに書き込みをするとクラッシュする問題を回避するように修正されました。標準エラーにメッセージが出力される状態で起動すると、クラッシュするケースがありました。 (Rushabh Lathia) (9.0)</li>
<li>
Windows むけに MinGW 64 bit コンパイラによるビルドがサポートされました。(Andrew Dunstan) (9.0)</li>
<li>
Windows における libintl ライブラリのバージョン非互換問題が修正されました。新しいバージョン(おそらく 0.18 以上) の libintl で問題が起きていました。(Hiroshi Inoue) (9.0)(8.4)(8.3)</li>
<li>
Windows むけビルドスクリプトで xcopy の使い方が修正され、Windows 7 でも正しく動作するようになりました。(Andrew Dunstan) (9.0)(8.4)(8.3)</li>
<li>
Cygwin 上の pg_regress のパスセパレータついて修正されました。Cygwin 環境では「;」でなく「:」を使う必要がありました。(Andrew Dunstan) (9.0)(8.4)(8.3)(8.2)</li>
<li>
タイムゾーンデータファイルが tzdata release 2011f に更新されました。チリ、キューバ、フォークランド、モロッコ、サモア、トルコの夏時間法が更新され、また、南オーストラリア、アラスカ、ハワイの歴史的修正が行われています。(9.0)(8.4)(8.3)(8.2)</li>
<li>
削除された列を持つ行型を扱うPL/pgSQLの機能が改良されました。(Pavel Stehule)(8.4)</p>
<p>これは 9.0 で導入された修正のバックポートです。</p>
</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL 8.2.20 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-20/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Mon, 31 Jan 2011 01:01:44 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=2906</guid>

					<description><![CDATA[このリリースは 8.2.19 からの修正リリース(2011/01/31リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 また、8.2.14 より前のバージョンからアップデートを行う場合は  ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.19 からの修正リリース(2011/01/31リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、8.2.14 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-14/">8.2.14 に関する技術情報</a>を参照してください。</p>
<p><span id="more-2906"></span></p>
<h3 class="background">PostgreSQL 8.2.19 から 8.2.20 への変更点</h3>
<p>9.0.3、8.4.7、8.3.14、8.2.20 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol>
<li>
pg_restore のラージオブジェクトに関するテキスト出力が、元データベースで standard_conforming_strings = on であった場合について修正されました。(Tom Lane) (8.2、8.3、8.4)</p>
<p>$ pg_restore -O backup.dat | psql<br />のような pg_restore からパイプ出力をする使い方で、文字列エスケープが不適切になります。<br />データベースに直接リストアするケースでは正しく動作します。</p>
</li>
<li>
walreceiver が終了する前に受け取った WALを確実にディスクに fsyncで書き込むようになりました。(Heikki Linnakangas) (9.0)</p>
<p>本修正なしでは、システムクラッシュのタイミングによっては、スタンバイサーバが同期が行われていない WAL を再生して、データ破損を招くことが考えられます。</p>
</li>
<li>
walreceiver が fsync を過剰に発行していたものが修正されました。(Heikki Linnakangas) (9.0)</li>
<li>
ALTER TABLE によってテーブル定義を変更した場合に、制約を再確認するようになりました。(Noah Misch) (9.0)</p>
<p>以下のようなケースで制約違反が見逃されていました。</p>
<pre>   =# INSERT INTO t (1.1),(1.2);
   =# ALTER TABLE t ALTER c TYPE INT;
   =# SELECT * FROM t;
    c
   ---
    1     ユニーク制約違反
    1 </pre>
</li>
<li>
継承ツリーのテーブルがすべて同一でない場合の、継承ツリーの UPDATE に対する EvalPlanQual が修正されました。(Tom Lane)(9.0)</p>
<p>テーブル行型の（一部の子テーブルにのみ削除された列が存在するなど）何らかの変化は EvalPlanQual コードを混乱させ、誤動作、最悪はクラッシュを導きました。EvalPlanQual は同一行に対する同時更新のときだけ実行されますので、この問題は散発的にしか発生しませんでした。</p>
</li>
<li>
EXPLAINがCASE式の簡易構文の表示に失敗するのを防止するようになりました。(Tom Lane)(9.0)(8.4)(8.3)(8.2)</p>
<p>CASE のテスト式が定数の場合、プランナは CASE を式表示用コードを混乱させる形式に単純化してしまいました。その結果 EXPLAIN で以下のようなエラーが生じていました。</p>
<pre>ERROR:  unexpected CASE WHEN clause: 314</pre>
</li>
<li>
部分代入済みの配列に対する部分代入が修正されました。(Tom Lane)(9.0)(8.4)(8.3)(8.2)</p>
<p>新しく追加される添字と過去に存在した添字の先頭との間に隙間があった場合、コードは古い配列のヌルビットマップからコピーしなければならない項目数を誤計算してしまい、データ破損またはクラッシュを導く可能性がありました。以下のような初期化で不正なデータが混入するケースが報告されていました。</p>
<pre>CREATE TABLE test_array (my_array BIGINT[]);
INSERT INTO test_array (my_array) VALUES ('[40:41]={40,41}');
UPDATE test_array SET my_array[1:2]='{1,2}';
SELECT * FROM test_array;</pre>
</li>
<li>
プランナにおける、非常に時間が離れた日付値に対する想定外の変換オーバーフローが修正されました。(Tom Lane)(9.0)(8.4)(8.3)(8.2)</p>
<p>date 型は timestamp 型で表現可能な範囲よりもより広い日付範囲をサポートします。<br />しかしプランナは常に問題なく date から timestamp への変換が可能であることを仮定していました。</p>
</li>
<li>
配列に NULL 項目が含まれる場合の PL/Python のクラッシュが修正されました。(Alex Hunsaker) (9.0)</li>
<li>
ecpg で、配列次元を定義する定数の固定長の制限が取り除かれました。(Michael Meskes) (9.0)</li>
<li>
... & !(subexpression) | ... を含む tsquery 値の間違った解析が修正されました。(Tom Lane)(9.0)(8.4)(8.3)(8.2)</p>
<p>こうした演算子の組み合わせを含む問い合わせは正しく実行されませんでした。同じエラーが contrib/intarray の query_int 型と contrib/ltree の ltxtquery 型に存在しました。 </p>
</li>
<li>
query_int 型に対する contrib/intarray 入力関数におけるバッファオーバーランが修正されました。(Apple)(9.0)(8.4)(8.3)(8.2)</p>
<p>この関数の返すアドレスが上書きされる可能性があるという点で、この不具合はセキュリティ問題です。<br />Apple, Inc. のセキュリティチームにより報告され、修正版が提供されました。(CVE-2010-4015) </p>
</li>
<li>
contrib/seg の GiST picksplit アルゴリズムにおける不具合が修正されました。(Alexander Korotkov)(9.0)(8.4)(8.3)(8.2)</p>
<p>この不具合により、seg 列上の GiST インデックスにおいて実際に不正な結果になることはありませんが、非常に非効率的な結果になることがあり得ました。こうしたインデックスがある場合、この更新版をインストールした後に REINDEX 処理を行うことを検討してください。</p>
</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL 8.2.19 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-19/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Thu, 16 Dec 2010 01:01:26 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=3069</guid>

					<description><![CDATA[このリリースは 8.2.18 からの修正リリース(2010/12/16リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 また、8.2.14 より前のバージョンからアップデートを行う場合は  ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.18 からの修正リリース(2010/12/16リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、8.2.14 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-14/">8.2.14 に関する技術情報</a>を参照してください。</p>
<p><span id="more-3069"></span></p>
<h3 class="background">PostgreSQL 8.2.18 から 8.2.19 への変更点</h3>
<p>9.0.2、8.4.6、8.3.13、8.2.19、8.1.23 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol>
<li>
Linux において wal_sync_method のデフォルトを fdatasync にするようになりました (Tom Lane, Marti Radsepp)(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>Linux では長年にわたり事実上 fdatasync がデフォルトでしたが、最近のカーネル変更により、open_datasync も選択肢となりました。その open_datasync は、パフォーマンス改善につながらず、ある種のファイルシステムでは明確に>落ち込みます。特に ext4 で data=journal マウントオプションを指定した場合に顕著です。</p>
</li>
<li>
ホットスタンバイでエラー「too many KnownAssignedXids」が出る問題が修正されました (Heikki Linnakangas)(9.0)</li>
<li>
ホットスタンバイにおけるロック取得の競合状態が修正されました(Simon Riggs)(9.0)</li>
<li>
ホットスタンバイで不要な競合を避けるように修正されました (Simon Riggs)(9.0)</p>
<p>スタンバイ側のリプレイとクエリが競合するとみなす一部ケースは、実際には競合していませんでした。これにより、不要な遅延やクエリのキャンセルが発生していました。</p>
</li>
<li>
GINインデックスのWALリプレイ関連の障害が修正されました (Tom Lane)(9.0)(8.4)(8.3)(8.2)</li>
<p>この障害で、レプリケーションにおいて誤ったバッファー id:0 で失敗するか、インデックス内容が不正なものになります。</p>
<p><li>
ベースバックアップからのリカバリで、開始チェックポイントのWALレコードが同じWALセグメントに無い場合の問題が修正されました (Jeff Davis)(9.0)(8.4)(8.3)(8.2)(8.1)</li>
<li>
複数ワーカプロセスが長時間活動中であるときの自動VACUUMによる低速化が修正されました (Tom Lane)(9.0)(8.4)(8.3)</p>
<p>たくさんのテーブルを処理するとき、自動VACUUMワーカプロセスに対する実際のvacuum_cost_limit がほぼゼロに落ち込むことがありました。これが動作が極端に遅くなる原因となります。</p>
</li>
<li>
IA64 の レジスタスタックオーバーラン検出がサポートされました (TomLane)(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>IA64アーキテクチャは二つのハードウェアスタックを持ちます。スタックオーバーランを完全に防ぐには両方をチェックする必要がありました。</p>
</li>
<li>
ソースコード内関数 copyObject() にスタックオーバーフローのチェックが加えられました。 (Tom Lane)(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>非常に複雑な SQL によるある種のコードパスではスタックオーバーフローによりクラッシュする可能性がありました。</p>
</li>
<li>
一時 GiSTインデックスでページ分割の検知が修正されました。(Heikki Linnakangas)(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>例えば挿入されるときにオープンカーソルによるスキャンを行うことで、一時インデックスで同時にページ分割が起きる可能性がありました。GiST はこのケースで検知に失敗していて、カーソルが継続しているとき誤った結果を返す可能性がありました。</p>
</li>
<li>
初期接続処理中のエラーチェックが修正されました (Tom Lane)(9.0)(8.4)</p>
<p>too many child processes のチェックが一部のケースで飛ばされていて、新たな子プロセスを加えることで postmaster のクラッシュにつながる可能性がありました。</p>
</li>
<li>
ウィンドウ関数の効率が改善されました (Tom Lane)(9.0)(8.4)</p>
<p>多数の行を先行読みを要するが work_mem が大きくそれらを全て保持できるというとき、予想外に遅いケースがありました。 percent_rank()、cume_dist()、ntile() で特にこの問題がありました。</p>
</li>
<li>
複合インデックスを ANALYZE するとき、メモリリークを回避するようになりました (Tom Lane)(9.0)(8.4)(8.3)(8.2)(8.1)</li>
<li>
行全体の値を使うインデックスがそのテーブルに依存していることを確実にするようになりました (Tom Lane)(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>CREATE INDEX i ON t (foo(t.*)) のように宣言されたインデックスは自動的にテーブルが削除されたときに自動的に削除されませんでした。</p>
</li>
<li>
SQL 関数が複数の OUT パラメータを持つとき、インライン化しないようになりました (Tom Lane)(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>予想される返し行型の情報が失われてクラッシュする可能性を回避します。</p>
</li>
<li>
INSERT ... VALUES の VALUES 部分に ORDER BY、LIMIT、FOR UPDATE、WITHが使われるときの振る舞いが適切なものとなりました (Tom Lane)(9.0)(8.4)(8.3)(8.2)</li>
<li>
COALESCE 式の定数畳み込みが修正されました (Tom Lane)(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>プランナが実際にはたどり着かない副式の評価を試みて、想定外のエラーが出る可能性がありました。</p>
</li>
<li>
GSSAPIサポートを有効にコンパイルされていたとき、accept() またはその後すぐのシステムコールの一つなどの接続を受け付ける部分で失敗したときに起きる postmaster クラッシュが修正されました (Alexander Chernikov)(9.0)(8.4)(8.3)</li>
<li>
log_temp_files 設定が有効になっているときの一時ファイルの削除漏れが修正されました (Tom Lane)(9.0)(8.4)(8.3)</p>
<p>ログメッセージを吐くときにエラーが起きると、unlink (ファイル削除) が実行されませんでした。結果として一時ファイルが溜まってしまいました。</p>
</li>
<li>
テーブル継承される要素に対する出力機能を追加しました。(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>debug_print_parse が有効なときある種の問い合わせで失敗するのを回避します。</p>
</li>
<li>
点と線分との距離を求める計算の誤りが修正されました。(Tom Lane)(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>この障害は幾何データで距離を求めるそのほかいくつかの演算子に影響を及ぼしていました。</p>
</li>
<li>
ecpg のトランザクション状態の算出の誤りが修正されました (Itagaki Takahiro)(9.0)(8.4)</li>
<li>
PL/pgSQL における再帰やエラーを拾うケースで単純な式の扱いに失敗する問題が修正されました。(Tom Lane)(9.0)(8.4)(8.3)(8.2)(8.1)</li>
<li>
PL/Python で複数行を返す関数の扱いが修正されました (Jan Urbanski)(9.0)(8.4)(8.3)(8.2)</p>
<p>イテレータでSPI関数を呼び出そうとするとき複数行結果の生成に失敗していました。</p>
</li>
<li>
contrib/cube の GiST インデックス定義の picksplit 関数のアルゴリズムの障害が修正されました (Alexander Korotkov)(9.0)(8.4)(8.3)(8.2)(8.1)</p>
<p>cubeカラム上の GiSTインデックスは、誤った答えを返すことはありませんが、かなりの非効率を引き起こします。既に該当のインデックスがある場合には、アップデート後に REINDEX が必要です。</p>
</li>
<li>
contrib/dblink で、新たな接続を作ったとき以外には、"identifier will be truncated" という通知を出力しないように修正されました (Itagaki Takahiro)(9.0)(8.4)(8.3)(8.2)(8.1)</li>
<li>
contrib/pgcrypto で公開鍵が無いときにクラッシュ(coredump)する可能性があり、修正されました (Marti Raudsepp)(9.0)(8.4)(8.3)(8.2)(8.1)</li>
<li>
contrib/xml2 の XPath クエリ関数のメモリリークが修正されました (Tom Lane)(9.0)(8.4)(8.3)(8.2)(8.1)</li>
<li>
タイムゾーンデータが tzdata リリース 2010o に更新されました。フィジー、サモアの夏時間法の変更、香港の歴史的修正に対応しています。(9.0)(8.4)(8.3)(8.2)(8.1)</li>
<li>
psql の Unicodeエスケープ対応の誤りが修正されました (Tom Lane)(9.0)</li>
<li>
ラージオブジェクトを多数含んでいるときの パラレル pg_restore の性能向上が行われました (Tom Lane)(9.0)</li>
<li>
PL/pgSQL で "no-such-column" というエラーが出るケースについて修正されました (Tom Lane)(9.0)</p>
<p>9.0 にて、カラムが無いときに "missing FROM-clause entry" というエラーが出ていました。</p>
</li>
<li>
PL/Python で行のフィールドを割り当てるときに typmod (長さや精度規定) を尊重するように修正されました。これは 8.4 から退行した障害でした。(9.0)</li>
<li>
contrib/pg_upgrade でバッファオーバーランが修正されました(Hernan Gonzalez)(9.0)</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL 8.2.18 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-18/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Mon, 04 Oct 2010 01:03:10 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=3089</guid>

					<description><![CDATA[このリリースは 8.2.17 からの修正リリース(2010/10/04リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 また、8.2.14 より前のバージョンからアップデートを行う場合は  ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.17 からの修正リリース(2010/10/04リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、8.2.14 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-14/">8.2.14 に関する技術情報</a>を参照してください。</p>
<p><span id="more-3089"></span></p>
<h3 class="background">PostgreSQL 8.2.17 から 8.2.18 への変更点</h3>
<p>9.0.1、8.4.5、8.3.12、8.2.18、8.1.22、8.0.26、7.4.30 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol>
<li>
PL/Perl と PL/Tcl で SQLユーザID ごとに別のインタプリタを使用するようになりました。(Tom Lane, Tim Bunce)  (9.0)(8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>この変更により、Perl または Tcl の同一セッションで別の SQLユーザID で（例えば SECURITY DEFINER 関数で）実行される破壊的コードによるセキュリティ問題を防ぎます。</p>
<p>この変更がないと、Perl、Tcl言語の利用権限をもつ SQLユーザは、関数所有者の権限で何でも実行することができてしまいます。</p>
<p>この変更の代価は関数間の意図的なコミュニケーションが難しくなることです。PL/PerlU と PL/TclU においては引き続き一つのセッションは単一のインタプリタで処理されます。既にデータベーススーパーユーザでの信頼レベルで実行されるのでこれらはセキュリティ問題を考慮しません。</p>
<p>信頼された実行を提供するサードパーティーの手続き言語に類似したセキュリティ問題があると予想されます。セキュリティが重要な用途にそれらの手続き言語を使っている場合、手続き言語作成者に連絡をとることが推奨されます。(CVE-2010-3433)</p>
</li>
<li>
pg_get_expr() 関数で起こりうるクラッシュを防ぐ修正されました。使われるつもりであったシステムカタログのカラムの一つではない引数で呼び出すことを禁止します。(Heikki Linnakangas, Tom Lane)  (9.0)(8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
Windows の終了コード 128 (ERROR_WAIT_NO_CHILDREN) を致命的ではないものとして扱うようになりました。(Magnus Hagander) (8.4)(8.3)(8.2)</p>
<p>高負荷のとき Windows のプロセスは、時々このエラーコードで起動時に失敗します。これまでは postmaster はこれをパニック状態とみなしてデータベース全体を再起動していました。これは過剰反応と考えられます。</p>
</li>
<li>
プレースホルダ評価の誤った配置が修正されました。この障害で、NULL であるべきところが NULL でないクエリ結果になる可能性があります。OUTER JOIN の内側が 出力リストに STRICT でない式を伴うサブクエリであった場合に発生します。(Tom Lane)  (9.0)(8.4)</li>
<li>
UNION ALL 下のテーブルに対する二重スキャンが修正されました。 (Tom Lane)  (9.0)(8.4)(8.3)(8.2)</li>
<li>
計画されていないサブクエリを扱えない誤りが修正されました。サブクエリが、別のサブクエリを含む式に展開される JOIN の別名参照を含んでいるとき発生します。(Tom Lane) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
ビューまたはサブクエリを参照して、入れ子にされたサブクエリの中で現れる、行全体変数の取り扱いの誤りが修正されました。(Tom Lane) (8.4)</li>
<li>
型の異なる IN 比較の処理での誤りが修正されました。プランナが IN 結合を sort →  unique → plain join  というプランで実現しようとした場合に、失敗に終わることがありえました。(Tom Lane) (8.4)</li>
<li>
tsvectorカラムに対する ALANYZE 統計情報の計算が修正されました。元のコーディングでは、誤った統計情報が生成されることがあり、その後に劣ったプランが選択されてしまいます。(Jan Urbanski) (8.4)</li>
<li>
array_agg()、string_agg() および同様の集約関数について、プランナのメモリ使用量の見積りが改善されました。これまで大きい過小評価が行われ、hash-aggregation プランが不適切に選択され、out-of-memory エラーにつながっていました。(Hitoshi Harada) (8.4)</li>
<li>
一時的なキャッシュされたプランのマーク付けの障害が修正されました。参照されているテーブルに対して CREATE INDEX CONCURRENTLY が実行中の間に準備されたあるプランは、インデックスの使用が使用可能になるともう一度プラン作成されます。これまでは確実に行われていませんでした。(Tom Lane) (8.4)(8.3)</li>
<li>
ときどき報告されていた btree の障害ケースが PANIC から ERROR に格下げされました。また、さらなる詳細がエラーメッセージに表示されるようになります。この変更は壊れたインデックスがあるときのシステムの頑健さを改善します。(Tom Lane) (8.4)(8.3)(8.2)</li>
<li>
GINインデックスにおける部分一致検索のロジックの誤りが修正されました。いくつかの GIN インデックス を AND / OR で組み合わせた条件を伴う場合、正しい答えを返さなかったり、ときどき処理が遅かったりします。(Tom Lane) (8.4)</li>
<li>
show_session_authorization() 関数が自動VACUUMプロセスの中でクラッシュするのが修正されました。(Tom Lane)  (9.0)(8.4)(8.3)(8.2)(8.1)</li>
<li>
関数が実際には型の一致しない複数行レコードを返すのを防ぐようになりました。(Tom Lane) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
サブトランザクションがロールバックする間、保留されているトリガーイベントが壊れる問題が修正されました。クラッシュや不正なトリガー起動を引き起こす可能性がありました。(Tom Lane) (8.4)</li>
<li>
リファレンス渡し関数の結果をハッシュ格納する場合に失敗する可能性があり、修正されました。処理に未だ必要なデータについて先にメモリ解放されてしまう可能性がありました。(Tao Ma, Tom Lane) (8.4)(8.3)(8.2)(8.1)</li>
<li>
LISTEN/NOTIFY処理における無限ループを防止するようになりました。(Jeff Davis) (9.0)</li>
<li>
マージJOIN の結合カラムにおける NULL の扱いが改善されました。マージJOIN は、そのようなソート順序であるとき、最初の NULL に辿り着いたとき処理停止できるようになります。これまでは、無駄な処理を行っていて性能上の不利益が生じていました。(Tom Lane) (9.0)(8.4)(8.3)</li>
<li>
ロックファイル(postmaster.pid と ソケットロックファイル) の内容を書き込むとき fsync するようになりました。(Tom Lane) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>postmaster が開始してすぐにマシンクラッシュする場合、ロックファイルの内容が壊れることがありました。そうすると、ロックファイルを手動で除かない限り、次の postmaster 起動成功が妨げられます。</p>
</li>
<li>
深くネストしたサブトランザクションに XID を割り当てるとき、再帰処理を避けるようになりました。元のコーディングではスタック空間限界により、クラッシュすることがありえました。(Andres Freund, Robert Haas) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
WALライタープロセスにおいて、古いWALセグメントを開いたまま保持するのを避けるようになりました。これまでコーディングでは、不要なセグメントを除くのを妨げていました。(Magnus Hagander, Heikki Linnakangas) (8.4)(8.3)</li>
<li>
log_line_prefix 設定の %i エスケープ(コマンドタグ) が修正されました。これまでバックエンド起動直後にゴミを出力する可能性がありました。(Tom Lane) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
TOASTテーブルのために部分的に指定されたテーブルオプションの誤解を防ぐようになりました。特に、他のオプションがテーブルに設定されたならば、fillfactor はゼロと解釈されてしまい、深刻なテーブル膨張に至ります。(Itagaki Takahiro) (8.4)</li>
<li>
ALTER TABLE .. ADD CONSTRAINT での継承数の追跡が修正されました。本修正がない場合、自身が多重継承の親テーブルを持っているテーブルの子テーブルに継承される制約は、間違った pg_class.coninhcount 値で処理をやめてしまうことがあります。(Robert Haas) (8.4)</li>
<li>
アーカイビングが有効なとき、ALTER TABLE ... SET TABLESPACE でデータ破壊が起きる可能性があり、 修正されました。(Jeff Davis) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
CREATE DATABASE、ALTER DATABASE ... SET TABLESPACE にてクエリキャンセルができるようになりました。(Guillaume Lelarge) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
CREATE INDEX における指定された式が IMMUTABLE かどうかのチェックが改善されました。(Tom Lane) (8.4)</li>
<li>
REASSIGN OWNED がオペレータクラス、オペレータファミリーを扱うように修正されました。(Asko Tiidumaa) (8.4)(8.3)</li>
<li>
空の tsquery 値を比較するときコアダンプが出てしまう可能性があり、修正されました。(Tom Lane) (8.4)(8.3)</li>
<li>
LIKE における _ に % が続くパターンの扱いが修正されました。以下が false になってしまっていました。(Tom Lane) (8.4)(8.3)</p>
<pre>select 'ba' ilike '%__%';</pre>
</li>
<li>
0001-01-01 AD 以前のジュリアン日付を再び許容するようになりました。'J100000'::date のような入力は 8.4 以前では使用できましたが、エラーチェックを加えることにより意図せず壊れていました。(Tom Lane) (9.0)(8.4)</li>
<li>
PL/pgSQL で FOR ループの中で、そのループのイテレータであるカーソルがクローズされた場合に、クラッシュするのでなくエラーを出すように、修正されました。(Heikki Linnakangas) (8.4)</li>
<li>
PL/Python にて、PyCObject_AsVoidPtr と PyCObject_FromVoidPtr から NULLポインタが返るのに対して防御するようになりました。(Peter Eisentraut) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
libpq にて、host と hostaddr の両方が指定された場合の完全な SSL証明書の認証が修正されました。(Tom Lane) (8.4)</li>
<li>
psql が autocommit-off モードにて、DISCARD ALL をトランザクションブロックに入れてはいけないコマンドであると認識するように修正されました。(Itagaki Takahiro) (9.0)(8.4)(8.3)</li>
<li>
pg_dump が SQL/MED オブジェクトを扱う際の問題が修正されました。特に pg_dump がデータベーススーパーユーザ以外で実行される場合、常に失敗していました。これは意図した動作ではありません。(Tom Lane) (8.4)</li>
<li>
pg_dump と pg_restore においてシーク不能なバックアップファイルの扱いが改善されました。 (Tom Lane, Robert Haas) (8.4)</p>
<p>この修正はパラレルリストアにおいて重要な役割を果たします。</p>
</li>
<li>
並列 pg_restore が、-L オプションによる対象テーブルテーブルを指定したリストアと協働できるようになりました。元のコードでは「-L ファイル」の指定でデフォルト以外のリストア順序を要求すると、失敗しがちでした。(Tom Lane) (8.4)</li>
<li>
RETURNING 節からのデータを正しく処理できるように ecpg が修正されました。(Michael Meskes) (8.4)(8.3)</li>
<li>
ecpg におけるいくつかのメモリリークが修正されました。<br />
      Fix some memory leaks in ecpg.<br />
(Zoltan Boszormenyi) (8.4)</li>
<li>
contrib/dblink で、削除されたカラムを含んでいるテーブルの扱いが改善されました。(Tom Lane) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
contrib/dblink で接続名重複エラーの後に起きる接続リークが修正されました。(Itagaki Takahiro) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
contrib/dblink が 62バイトより長い接続名を扱えるように修正されました。(Itagaki Takahiro) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
contrib/hstore に hstore(text, text) 関数が追加されました。この関数は、現在使用が推奨されていない「=>」演算子の代替として、推奨されます。コードは旧バージョンでも適用できたためバックパッチが提供されます。この変更は contrib/hstore をインストール、あるいは再インストールした特定のデータベースにのみ効果があります。代替に CREATE FUNCTION コマンドを手動で実行するのが好まれるかもしれません。(Robert Haas) (8.4)(8.3)(8.2)</li>
<li>
ソースコードリポジトリが CVS から Git に移行したことが、ビルド環境とドキュメントに反映されました。(Magnus Hagander and others) (9.0)(8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
タイムゾーンデータファイルが tzdata リリース 2010l に更新されました。エジプト、パレスチナの夏時間法の変更、フィンランドの歴史的な変更に対応しています。本変更は２つのミクロネシアのタイムゾーン名を加えます。現在では Pacific/Truk に代えて Pacific/Chuuk がより望ましいです。(省略形であれば TRUT でなく CHUT になります)。また、Pacific/Ponape に<br />
代えて、Pacific/Pohnpei が望ましいものとなります。(8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
Windows の 北中央アジア標準時を Asia/Almaty に代えて Asia/Novosibirsk に割り当てるように変更されました。マイクロソフトはこのゾーンの夏時間の振る舞いを変更しました(KB976098)。Asia?Novosibirsk は新たな振る舞いにより適合するものです。(Magnus Hagander) (8.4)(8.3)(8.2)</li>
<li>
Windows の共有メモリ割り当てコードが修正されました。(Tsutomu Yamada, Magnus Hagander)  (8.2)</p>
<p>この障害はしばしば報告される「could not reattach to shared memory」というエラーメッセージを引き起こしていました。これは、8.3.8 で修正されている内容のバックパッチとなります。</p>
</li>
<li>
Append インデックススキャンで、厳格ではない OR 結合節の誤った使われ方が修正されました。(Tom Lane) (8.3)</p>
<p>このバックパッチは 8.4 での修正が 8.3.x に適用されていなかったものです。この障害は 8.3.8 で導入されてしまったもので、内側が継承親テーブルかUNION ALL サブクエリであるときに外部結合で誤った結果を引き起こします。</p>
</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL 8.2.17 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-17/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Mon, 17 May 2010 01:03:04 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=3612</guid>

					<description><![CDATA[このリリースは 8.2.16 からの修正リリース(2010/05/17リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 また、8.2.14 より前のバージョンからアップデートを行う場合は  ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.16 からの修正リリース(2010/05/17リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、8.2.14 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-14/">8.2.14 に関する技術情報</a>を参照してください。</p>
<p><span id="more-3612"></span></p>
<h3 class="background">PostgreSQL 8.2.16 から 8.2.17 への変更点</h3>
<p>8.4.4、8.3.11、8.2.17、8.1.21、8.0.25、7.4.29 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<p>※ 各項目のカッコ内は担当した開発者名と該当するメジャーバージョン系列です。</p>
<hr />
<ol>
<li>
Safe.pm を使う代わりにインタプリタ全体に opmask を適用することで、手続き言語 PL/Perl の制限が強化されました。(Tim Bunce, Andrew Dunstan) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>近年の情勢から PL/Perl の信頼性を実現するのに Safe.pm に依存するのは安全ではないと判断されました。この変更により、常に適用される opecode マスクでインタプリタを分離するため、Safe.pm 利用は全体的に除かれます。これにより Perl の strict プラグマを自然な方法で plperl の中で使えます。また、Perl の変数はソートルーチンで期待通りに動作し、その関数コンパイルはかなり高速になります。(CVE-2010-1169)</p>
</li>
<li>
手続き言語 PL/Tcl のモジュール（pgtcl_modules）で信頼できないコードを実行することが禁止されました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>データベーステーブルから Tcl コードを自動ローディングする PL/Tcl の仕様は、そのテーブルに対するデータ投入に対して何ら制限がかかっていないため、トロイ木馬攻撃で乗っ取りが可能でした。本変更は pltcl_modules がスーパーユーザの所有でないかぎり、テーブルからの自動コードローディングを禁止します。</p>
<p>（しかし、テーブル上の権限はチェックされないので、本当により安全でないモジュールテーブルを必要とするインストレーションは信用された非スーパーユーザに適当な特権を与えることができます。）</p>
<p>また、信頼されていない通常の Tclインタプリタ（PL/TclU）についても、関数を実際に実行するまでは、コードローディングを行なわせません。(CVE-2010-1170)</p>
</li>
<li>
<code>ALTER ... SET TABLESPACE</code> の WAL を適用する際にデータが壊れる問題が修正されました。(Tom) (8.4)</p>
<p>archive_mode = on のとき、<code>ALTER ... SET TABLESPACE</code> 命令は、誤った再実行ロジックのWALレコードを生成していました。これにより誤った場所にデータを書き込んでしまい、リカバリ不能のデータ破損を引き起こしていました。</p>
<p>これは（ウォームスタンバイ構成の）スレーブサーバや、<code>ALTER</code> を実行して次のチェックポイントの手前のタイミングでのクラッシュリカバリにて発生します。</p>
</li>
<li>
relcache の登録内容を再構築している間に、これをリセットさせるメッセージを受けたときにクラッシュする可能性があったものが修正されました。relcache とは、システムテーブルのテーブル定義情報をメモリ上にキャッシュしたものです。(Heikki) (8.4)</p>
<p>この障害は 8.4.3 の修正で導入されてしまったものです。</p>
</li>
<li>
関数ごとの GUC 設定を、関数定義内容の検証をしているときにも適用するようになりました。(Itagaki Takahiro) (8.4)(8.3)</p>
<p>これにより関数のコードが GUC 設定無しには不正な内容である場合、例えば search_path の設定を必要とするとき、エラーになることを防ぎます。</p>
</li>
<li>
設定が constraint_exclusion = partition であるとき、継承テーブルに対する <code>UPDATE</code>、<code>DELETE</code> がテーブル制約を使用した動作をするようになりました。(Tom) (8.4)</p>
<p>仕様としては本来このようになるはずであったものが、不注意のため、この設定が <code>SELECT</code> コマンドにしか効いていませんでした。</p>
</li>
<li>
権限のないユーザがスーパーユーザ限定の設定をリセットするのを許可しないようになりました。(Alvaro) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p><code>ALTER</code> コマンドで、ユーザ（ロール）ごと、データベースごとに、GUC 設定を付加することができます。この機能に関する修正（仕様変更）です。</p>
<p>これまでは、権限の無いユーザが <code>ALTER USER ... RESET ALL</code> を自身に対して実行したり、<code>ALTER DATABASE ... RESET ALL</code> を自身が所有者であるデータベースに対して実行したりした場合、その設定項目がスーパーユーザ限定の設定項目であってもユーザ・データベースから設定を取り除くことができていました。本修正にて、ユーザが変更可能な項目のみ <code>ALTER</code> で設定を外すことができるようになります。</p>
</li>
<li>
ログ項目に「CONTEXT: &#x301C;」を追加しているときシャットダウンがおきると、バックエンドプロセスのシャットダウンでクラッシュする可能性があったものを回避するようになりました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>ログメッセージを出力するときに実行中トランザクションが既にロールバック状態であることから、コンテキスト出力が失敗することが考えられます。</p>
<p>「CONTEXT:」で始まるメッセージは PL/pgSQL のエラーなどで生成されます。</p>
</li>
<li>
recovery.conf の設定項目 recovery_end_command にて、%r が正しく処理されていなかったものが修正されました。(Heikki) (8.4)</p>
<p>この値には常にゼロ（000000000000000000000000）が入っていました。本来は %r にはリストアを再開させることができるようにするため保存されなくてはならない一番古い WAL ファイル名が入ります。</p>
</li>
<li>
アーカイバプロセス（archiver process）が、設定 archive_command の変更に対して、可能な限り素早く反応することが保証されるようになりました。(Tom) (8.4)(8.3)</li>
<li>
PL/pgSQL の <code>CASE</code> 文が、クエリーを式として与えられていて結果がゼロ行を返したときに、失敗しないように修正されました。(Tom) (8.4)</li>
<li>
新しい Perl バージョンに合わせて PL/Perl の ppport.h が更新されました。(Andrew) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
PL/Python の様々なメモリリークが修正されました。(Andreas Freund, Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
ecpg で接続パラメータとして空文字列を正しく扱えるようになりました。(Michael) (8.4)</li>
<li>
psql で自己参照をしている変数を展開するときに、無限再帰処理が発生するのを防ぐようになりました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)</p>
<p>障害は以下の手順で発生します。</p>
<pre> =# set n 1
 =# set n (:n + 1)
 =# SELECT :n ;</pre>
</li>
<p>
psql の <code>copy</code> コマンド が、<code>copy ( select文 ) </code> という構文のときに「.」や「,」の周囲に空白文字を追加しないように修正されました。(Tom) (8.4)(8.3)(8.2)</p>
<p>以下のような例が報告されています。</p>
<pre>=&gt; copy (select 1.0) to test.tst
ERROR:  syntax error at or near "."
LINE 1: COPY ( select 1 . 0 ) TO STDOUT</pre>
</li>
<li>
psql が、設定 client_encoding とロケールが適合していないときに、フォーマットに失敗するのが回避されるようになりました。(Tom) (8.4)</li>
<li>
contrib/intarray の演算子を使ったとき、不適切なクエリに対して、"GIN indexes do not support whole-index scans" という不要なエラーがでるのが修正されました。(Tom) (8.4)(8.3)</li>
<li>
contrib/pgstattuple の関数がプロンプトからのキャンセル割り込みに確実に応するようになりました。(Tatsuhito Kasahara) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
shmget() が存在する共有メモリセグメントに対して EINVAL を返したときにも、サーバ起動プロセスが適切に動作するようになりました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>Mac OS X を含む BSD 系のカーネルで問題がおきていて、共有メモリ要求サイズが大きすぎるという誤った起動失敗のメッセージを引き起こしていました。shmget() は PostgreSQL内部で使われている OS の SysV 共有メモリを操作するシステムコールの一つです。</p>
</li>
<li>
Windows 上の syslogger プロセスがクラッシュする可能性を避けるようになりました。(Heikki) (8.4)(8.3)(8.2)</li>
<li>
Windowsレジストリにおける不完全なタイムゾーン情報に対して、より頑健に処理するようになりました。(Magnus) (8.4)(8.3)(8.2)</li>
<li>
既知の Windows タイムゾーン名がいくつか更新されました。(Magnus) (8.4)(8.3)(8.2)</li>
<li>
タイムゾーンデータが tzdata リリース 2010j に更新されました。(8.4)(8.3)(8.2)</p>
<p>アルゼンチン、オーストラリア（南極地域）、バングラディシュ、メキシコ、モロッコ、パキスタン、パレスチナ、ロシア、シリア、チュジジアの夏時間の変更に対応しています。台湾の歴史的な修正も行われています。</p>
<p>また、PKST（パキスタンの夏時間）がデフォルトのタイムゾーン略記法に加わっています。</p>
</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL 8.2.16 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-16/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Mon, 15 Mar 2010 01:03:38 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=3649</guid>

					<description><![CDATA[このリリースは 8.2.15 からの修正リリース(2010/03/15リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 また、8.2.14 より前のバージョンからアップデートを行う場合は  ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.15 からの修正リリース(2010/03/15リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、8.2.14 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-14/">8.2.14 に関する技術情報</a>を参照してください。</p>
<p><span id="more-3649"></span></p>
<h3 class="background">PostgreSQL 8.2.15 から 8.2.16 への変更点</h3>
<p>8.4.3、8.3.10、8.2.16、8.1.20、8.0.24、7.4.28 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<p>※ 各項目のカッコ内は担当した開発者名と該当するメジャーバージョン系列です。</p>
<hr />
<ol>
<li>
設定パラメータ ssl_renegotiation_limit が追加されました。セッションキーをどれくらいの頻度で再調整するかを指定します。(Magnus) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>0 に設定すると再調整は行われません。これは壊れたsslライブラリを使っているときに必要となります。特に一部のベンダーは、セキュリティ脆弱性 CVE-2009-3555 むけの当座のパッチをリリースしており、<br />
これが再調整の失敗を引き起こします。</p>
</li>
<li>
バックエンドプロセスの起動中にデッドロックする可能性があり、修正されました。(Tom) (8.4)(8.3)(8.2)</li>
<li>
システムテーブルのキャッシュ (relcache) を再ロードする間、エラーを取り扱わないために、クラッシュする可能性があり、修正されました。(Tom) (8.4)(8.3)(8.2)</li>
<li>
実行計画キャッシュのダングリングポインタを参照してバックエンドがクラッシュする可能性があり、修正されました。(Tatsuo) (8.4)(8.3)</p>
<p>pgpool-II でアクセスする際に特定ケースで PostgreSQLバックエンドがクラッシュする問題が発生していました。</p>
</li>
<li>
ROLLBACK 時に実行計画キャッシュの無効化をやりすぎてクラッシュする問題が修正されました。(Tom) (8.4)</li>
<li>
サブトランザクション開始に失敗してリカバーしようとするときに、クラッシュする可能性があり、修正されました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
SAVEPOINT を使用し、クライアントエンコーディングがサーバエンコーディングと異なる場合の、メモリリークが修正されました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
リカバリの最後の GiST インデックスのページ分割の整理で、不正な WAL データが発行される問題が修正されます。(Yoichi Hirai) (8.4)(8.3)(8.2)</p>
<p>これにより、不完全な GIST 挿入後のリカバリで、インデックスが壊れる、もしくは、WAL 読み込みでエラーとなることがありました。</p>
</li>
<li>
GIN インデックスに対する WAL 適用（リカバリ）の処理で障害が修正されました。(Heikki) (8.4)</li>
<li>
GIN インデックス検索での不正な検索キー比較が修正されました。(Teodor) (8.4)</li>
<li>
bit 文字列むけの substring() 関数が、負の長さ指定を「全ての残余ビット列」という意味で扱えるようになりました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>ビット文字列とは bit型 と bit varying型です。以前は -1 だけが上記の意味で処理されていました。その他の負数を指定すると不正な結果を返し、クラッシュにつながるおそれがありました。CVE-2010-0442 としてこの問題が登録されています。</li>
<li>
整数から bit 文字列への変換において、bit 文字列のビット幅が 8 の倍数でない場合に誤動作することがあり、修正されました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)</p>
<pre>=&gt; select ((11::int4 &gt;&gt; 23) | 11::int4)::bit(32); -- 正常動作
00000101100000000000000000001011

=&gt; select ((11::int4 &gt;&gt; 23) | 11::int4)::bit(33); -- 誤動作
000001011100000000000000000001011</pre>
</li>
<li>
正規表現の照合が異常に遅い場合があり、修正されました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
複合型を複数行返す SQL 関数でエラーが出る障害があり、修正されました。SQL 関数を内部でインライン処理できるようにしたことにより導入された障害です。(Tom) (8.4)</li>
<li>
複合型配列のカラムの 1 要素を UPDATE するときの障害が修正されました。(Tom) (8.4)(8.3)</li>
<li>
EXPLAIN でフィールド格納または配列参照での値を割り当てる式を出力するときに失敗するのが回避されました。(Tom) (8.4)</p>
<p>これらのケースは EXPLAIN VERBOSE でプランノードのターゲットリストを表示しようとしたときに起きます。</p>
</li>
<li>
UNION、INTERSECT、EXCEPT の副問い合わせで、リテラル文字列が現れたとき不必要なエラーの強制を避けるようになりました。(Tom) (8.4)</li>
<li>
行型の値が欠落したカラムを含む場合において、行型の互換性チェックの不適切な失敗が回避されました。(Tom) (8.4)</li>
<li>
バックアップヒストリファイルにおける項目「STOP WAL LOCATION」が、終了位置がセグメント境界であった場合、次の WALセグメント名を報告するように修正されました。(Itagaki Takahiro) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
CREATE FOREIGN DATA WRAPPER 文で指定されるオプション検証関数にカタログ ID を常に渡すようになりました。(Martin Pihlak) (8.4)</li>
<li>
いくつかの場合における一時ファイルのリーク（削除漏れ）が修正されました。(Heikki) (8.4)(8.3)(8.2)(8.1)</p>
<p>以前のマイナーリリースで導入されてしまった問題を修正するものです。ケースの一つとしては、複数行を返す plpgsql 関数が、他の関数の例外ハンドラから呼ばれたとき、というのがあります。</p>
</li>
<li>
FULL JOIN ON FALSE がサポートされました。(Tom) (8.4)</p>
<p>単純化できる一部のクエリで定数 FALSE の結合条件について、8.4 以前から退行してしまうのを防ぎます。8.3.x では問題なく使えていましたが、&#x301C; 8.4.2 では「ERROR:FULL JOIN is only supported with merge-joinable join condition」が出ました。</p>
</li>
<li>
boolean 型の値について制約排除（constraint exclusion）の処理が改善されました。特に bool_col = false という制約でパーティションを行うとき効果があります。(Tom) (8.4)(8.3)(8.2)</li>
<li>
INOUT キャストを、表現のバイナリ互換性のように処理するのを防ぐようになりました。(Heikki) (8.4)</li>
<li>
カラムに対しての GRANT, REVOKE ができないときの警告メッセージに、そのカラムの名前を含めるようになりました。(Stephen Frost) (8.4)</p>
<p>REVOKE して複数のメッセージが出力されたときに、同じ文を表示しているようでまぎらわしかったのが、この変更によって改善されます。</p>
</li>
<li>
pg_hba.conf および関連ファイルを読み込む際に「@」がクオート（"）の内側にある場合には、ファイル読み込みの記号と見なさないようになります。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>これはロールやデータベース名が「@」で始まる場合に誤った振る舞いをするのを防ぎます。スペースを含むファイル名を指定するときに「"@/path to/file"」とは書けなくなるため、「@"/path to/file"」のように記述してください。</p>
</li>
<li>
一部のプラットフォームで無限ループが発生するのを防ぐように修正されました。pg_hba.conf などのファイルで、ファイル読み込みの対象にディレクトリが指定された場合に発生します。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
SSL 処理で失敗した際に無限ループに陥るケースが修正されました。これは Windows 版 openssl の一部バージョンで報告されました。(Tom) (8.4)(8.3)(8.2)</li>
<li>
正しく機能してホスト名を要求するなら、ローカル接続での GSSAPI 認証を許可しないようになりました。GSSAPI ライブラリが壊れていなければ、ホスト名指定が必須となります。(Magnus) (8.4)(8.3)</li>
<li>
アプリケーションが文字列のメモリ解放を行ったときに ecpg で問題がおきないようになりました。(Michael) (8.4)</li>
<li>
NLS を有効にしているときの psql の &yen;d で出力される内容の翻訳が修正されました。(Heikki) (8.4)</li>
<li>
psql の数値ロケールのオプション（numericlocale）を修正し、latex または troff 出力形式のときには、ロケールに基づく整形をしないようになりました。(Heikki) (8.4)(8.3)(8.2)(8.1)</li>
<li>
psql のクエリ単位の小さなメモリリークが修正されました。(Tom) (8.4)</li>
<li>
psql が、N_ERROR_STOP 変数が設定されていて、かつ、--single-transaction が指定されているとき COMMIT でエラーが起きた場合、正しい終了コード（3）を返すようになりました。(Bruce) (8.4)(8.3)(8.2)</li>
<li>
pg_dump の外部サーバに対するパーミッションの出力が修正されました。(Heikki) (8.4)</li>
<li>
並列の pg_restore で、範囲外 dump ID への依存性により（pg_restore が）クラッシュする可能性があり、修正されました。(Tom) (8.4)</p>
<p>8.0 以前の古いバージョンのダンプファイルを並列リストアするケースで、クラッシュが報告されています。</p>
</li>
<li>
plpgsql で複合カラムに NULL を設定するときの障害が修正されました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
PL/Perl の関数を PL/PerlU から呼び出したとき（あるいはその逆）の障害が修正されました。(Tim Bunce) (8.4)(8.3)(8.2)</li>
<li>
PL/Python でコンパイラ固有の誤動作の可能性を避けるように修正されました。（ソースコードで変数に volatile 指定を加えた）(Zdenek Kotala) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
PL/Tcl が確実に Tclインタプリタを完全に初期化するようになりました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>修正前の症状としては Tcl 8.5 以降で、clock コマンドが誤動作することが知られています。</p>
</li>
<li>
ExecutorEnd 関数が、失敗したトランザクションまたはサブトランザクションで生成されたポータルから実行されるのを、防ぐようになりました。(Tom) (8.4)</li>
<li>
contrib/dblink で大量のキーカラムが dblink_build_sql_* 関数に指定されたときクラッシュするのを防ぐようになりました。(Rushabh Lathia, Joe Conway) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
contrib/ltree の操作においてゼロ次元配列を認めるようになりました。(Tom) (8.4)(8.3)</p>
<p>これまではエラーとなりましたが、要素が空の配列と同様に便利です。特に ARRAY(SELECT ...) の結果に ltree 操作を行う場合で、サブクエリから 0 行が返るとき、不要なエラーを回避できます。</p>
</li>
<li>
contrib/xml2 のメモリ管理の不備による種種のクラッシュが修正されました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
Windows における contrib/xml のビルドがより頑強になりました。(Andrew) (8.4)(8.3)(8.2)</li>
<li>
Windows のシグナル処理における競合状態が修正されました。(Radu Ilie) (8.4)(8.3)(8.2)</p>
<p>pg_listener の行が負荷が重いときに落ちてしまうという症状が知られています。</p>
</li>
<li>
configure スクリプトが、C コンパイラが 64bit 整数データ型をサポートしていないことを報告するようになりました。(Tom) (8.4)</li>
<li>
タイムゾーンデータが tzdata release 2010e に更新されました。バングラディシュ、チリ、フィジー、メキシコ、パラグアイ、サモアの夏時間が変更されています。(8.4)(8.3)(8.2)(8.1)(8.0)</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL 8.2.15 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-15/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Mon, 14 Dec 2009 01:03:10 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=3671</guid>

					<description><![CDATA[このリリースは 8.2.14 からの修正リリース(2009/12/14リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 また、8.2.14 より前のバージョンからアップデートを行う場合は  ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.14 からの修正リリース(2009/12/14リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、8.2.14 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-14/">8.2.14 に関する技術情報</a>を参照してください。</p>
<p><span id="more-3671"></span></p>
<h3 class="background">PostgreSQL 8.2.14 から 8.2.15 への変更点</h3>
<p>8.4.2、8.3.9、8.2.15、8.1.19、8.0.23、7.4.27 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<p>※ 各項目のカッコ内は担当した開発者名と該当するメジャーバージョン系列です。</p>
<hr />
<ol>
<li>
インデックス関数がセッションローカル状態を変更することによる、間接的なセキュリティ脅威から保護されるようになりました。(Gurjeet Singh, Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>この修正により、不変とされているインデックス関数によって、スーパーユーザのセッションが奪われる可能性がなくなります。</p>
</li>
<li>
null バイトが埋め込まれたコモンネーム (CN) フィールドを含む SSL 証明書を、拒否するようになりました。(Magnus) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>この変更により、SSL 検証において、意図しないサーバ名、またはクライアント名の証明書との照合を防ぎます。(CVE-2009-4034)</p>
</li>
<li>
ハッシュインデックスの破損を修正しました。(Tom) (8.4)</p>
<p>ハッシュインデックスは、各エントリをハッシュ値でソートして保持します。8.4 での変更で、バケット分割と圧縮ルーチンで順番を保つ処理に、間違いがありました。そのため、これらの操作が適用されると、インデックスの恒久的な破損につながり、存在するはずのエントリが検索しても見つからないことになります。</p>
<p>これに対処するため、<b>本アップデートのインストール後、すべてのハッシュインデックスに対して REINDEX の実行が推奨されます。</b></p>
</li>
<li>
バックエンド起動時のキャッシュ初期化で、クラッシュする可能性が修正されました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
空のシソーラス辞書によってクラッシュするのを避けるようになりました。(Tom) (8.4)(8.3)</li>
<li>
危険なタイミングで <code>VACUUM</code> が中断されないように、シグナルを防ぐようになりました。(Alvaro) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>この修正により、タプルの移動が完了した後に <code>VACUUM FULL</code> がキャンセルされた場合に発生する PANIC や、テーブルが切り詰められた（truncate）後に通常の <code>VACUUM</code> がキャンセルされた時のエラーを防ぎます。</p>
<p><code>VACUUM FULL</code> の場合に以下のような PANIC が発生する可能性があります。</p>
<pre>PANIC: cannot abort transaction NNNN, it was already committed</pre>
</p>
<p>また、通常 <code>VACUUM</code> の場合に競合した <code>INSERT</code> や <code>UPDATE</code> に対して以下のような ERROR が発生する可能性があります。</p>
<pre>ERROR: could not read block XX of relation 1663/NNN/MMMM: read only 0 of 8192 bytes</pre>
</p>
</li>
<li>
ハッシュテーブルサイズの計算で、整数オーバーフローによるクラッシュの可能性が修正されました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>プランナが予測したハッシュジョインの結果サイズがとても大きな場合に、この問題が発生する可能性がありました。</p>
</li>
<li>
内部的に依存したオブジェクトに対して <code>DROP</code> を試みるとクラッシュするのが修正されました。(Tom) (8.4)</li>
<li>
まれに inet/cidr の比較でクラッシュするのが修正されました。(Chris Mikkelson) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
プリペアードトランザクション（<code>PREPARE TRANSACTION</code>）が行なう、タプルレベル共有ロックが無視されないようになりました。(Heikki) (8.4)(8.3)(8.2)(8.1)</li>
<li>
サブトランザクション内のカーソルが使用している一時ファイルが、早まって削除されないようになりました。(Heikki) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
syslogger プロセスが新しい CSV ログファイルにローテートする時のメモリリークが修正されました。(Tom) (8.4)(8.3)</li>
<li>
postmaster が pg_hba.conf を再解析するときのメモリーリークが修正されました。(Tom) (8.4)</li>
<li>
Windows の権限降格ロジックが修正されました。(Jesse Morris) (8.4)(8.3)</p>
<p>これは、Windows でデータベースが「<code>could not locate matching postgres executable</code>」 という誤解を招くエラーメッセージを伴って起動に失敗するケースを修正するものです。</p>
</li>
<li>
主問い合わせの FOR UPDATE/SHARE が、副問い合わせに伝搬しないようになりました。(Tom) (8.4)</p>
<p>たとえば以下の場合、</p>
<pre>WITH w AS (SELECT * FROM foo) SELECT * FROM w, bar ... FOR UPDATE</pre>
<p>FOR UPDATE は "bar" には影響しますが、"foo" には影響を与えません。これまでの 8.4 では、<code>FOR UPDATE</code> を <code>WITH</code> 句に伝搬しようとしていましたが、実装上の制約により常に失敗していました。</p>
<p>この修正は、以前の振るまいよりも有用で一貫性があります。また <code>WITH</code> 句は、主問い合わせとは独立して実行されるデザインルールにもあいます。</p>
</li>
<li>
<code>WITH RECURSIVE</code> のついた問い合わせが、別の <code>WITH RECURSIVE</code> の中にある場合のバグが、修正されました。(Tom) (8.4)</li>
<li>
ハッシュインデックスの並列処理バグが修正されました。(Tom) (8.4)</p>
<p>同時に挿入が行なわれると、インデックススキャンで一時的に間違った値を報告することがありました。</p>
</li>
<li>
GiST インデックスページを分割するロジックで、分割がインデックスの最初ではないカラムに依存する時の間違いが、修正されました。(Paul Ramsey) (8.4)(8.3)(8.2)</li>
<li>
fastupdate が有効になったマルチカラム GIN インデックスで、間違った検索結果になるのが修正されました。(Teodor) (8.4)</li>
<li>
GIN インデックス用の WAL エントリ作成でのバグが修正されました。(Tom) (8.4)</p>
<p>このバグは full_page_writes が on の時は隠れています。しかし off の場合、次の checkpoint 前にクラッシュが発生すると、WAL の再実行が失敗する形になって現れます。</p>
</li>
<li>
チェックポイント処理の最後で、古い WAL セグメントの再利用または削除に失敗しても、エラー出力を行なわなくなりました。(Heikki) (8.4)(8.3)(8.2)</p>
<p>この問題は非致命的な扱いにして、チェックポイントを完了させた方が良いと考えられます。以降のチェックポイント処理で、削除を再実行します。</p>
<p>なお、この問題は、通常の操作では発生することはないはずです。しかし、一部の Windows アンチウィルスソフトやバックアップソフトウエアによって発生することが知られています。</p>
</li>
<li>
Windows で WAL ファイルが繰返しアーカイブされないようになりました。(Heikki) (8.4)(8.3)(8.2)</p>
<p>不要ファイルの削除が、他のプロセスによって妨害されることで発生します。これは、上記のものとは別の症状です。</p>
</li>
<li>
PAM パスワードの処理がより堅牢になりました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>以前のコードは、Linux の pam_krb5 PAMモジュールに Microsoft Active Directory をドメインコントローラとして組み合わせた場合に、失敗することが知られていました。</p>
<p>PAM スタックがどんな引数を渡すかについて不当な仮定をしていたので、他にも問題があった可能性があります。</p>
</li>
<li>
GSSAPI と SSPI 認証方式において、認証トークン（Kerberos ticket）サイズの最大値が増えました。(Ian Turner) (8.4)(8.3)</p>
<p>以前の 2000バイト制限は Unix Kerberos 実装では十分でしたが、Windows ドメインコントローラが発行するチケットは、より大きくなります。</p>
</li>
<li>
ARRAY[...]::domain など、配列型に適用する場合に、ドメイン制約が確実に働くように修正されました。(Heikki) (8.4)</p>
<p>これは、8.3 までは適切に動作していました。</p>
</li>
<li>
複合型カラムを外部キーに含むケースのため、外部キーのロジックが修正されました。(Tom) (8.4)</li>
<li>
カーソルのスナップショットが作成された後、そのカーソルが生きている間変更されないようになりました。(Alvaro) (8.4)</p>
<p>同じトランザクション内の後の操作により、カーソルが返すと想定されていたデータが変更された場合に、間違った結果を返していました。</p>
</li>
<li>
「<code>CREATE TABLE</code>」で別々の親テーブルから継承したカラムのデフォルト式について、適切にマージするように修正されました。(Tom) (8.4)</p>
<p>これまでは動作していましたが、8.4 で壊れていました。</p>
</li>
<li>
シーケンスのアクセス統計の収集を再び有効にしました。(Akira Kurosawa) (8.4)(8.3)</p>
<p>これまでは動作していましたが、8.3 で壊れていました。</p>
</li>
<li>
ロールとの依存関係を保持するシステムカタログ pg_shdepend に、誤った内容を記録する可能性がありました。</li>
<li>
「<code>WHERE x=x</code>」条件の不正な処理が修正されました。(Tom) (8.4)(8.3)</p>
<p>一部の場合に、冗長な記述として無視されていました。本来は「<code>x IS NOT NULL</code>」と同じ意味の条件となります。</p>
</li>
<li>
不安定な式に対する<code> DISTINCT</code> をハッシュ集約で実現する場合の、不正なプラン構築が修正されました。(Tom) (8.4)</p>
<p>「<code>SELECT DISTINCT random(),random() FROM generate_series(1, 10);</code>」などでハッシュ集約によるプランで、二つの <code>random()</code> が必ず同じ値になってしまっていました。</p>
</li>
<li>
<code>SELECT DISTINCT ON</code> でアサートフェイルが出る問題が修正されました。(Tom) (8.4)</p>
<p>該当する場合</p>
<pre>TRAP: FailedAssertion("!(pathkeys_contained_in(root-&gt;distinct_pathkeys,
current_pathkeys))", File: "planner.c", Line: 1527)</pre>
<p>というメッセージが出力されて、バックエンドプロセスがクラッシュします。</p>
</li>
<li>
テキスト検索の関数 ts_start() が tsvector が空値でも失敗にならないように修正されました。(Tom) (8.4)</li>
<li>
テキストサーチのパーサは、アンダースコアが含まれる XML 属性を受け付けるようになりました。(Peter) (8.4)(8.3)</li>
<li>
XML バイナリ入力で、エンコーディングの扱いを修正しました。(Heikki) (8.4)(8.3)</p>
<p>XML ヘッダでエンコーディングが指定されていない場合、デフォルトで UTF-8 と見なすようになります。以前の扱いでは不定でした。</p>
</li>
<li>
plperl と plperlu 間の相互の呼び出しでのバグを修正しました。(Tom) (8.4)(8.3)(8.2)</p>
<p>内側の関数がエラー終了した時に、外側の関数のための正しい perl インタープリタを再選択することに失敗し、クラッシュしていました。</p>
</li>
<li>
PL/perl 関数が再定義された時の、セッション期間内のメモリリークが修正されました。(Tom) (8.4)(8.3)(8.2)</li>
<li>
PL/Python の例外処理で、まれにクラッシュすることがある問題が修正されました。(Peter) (8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
ecpg でコメント付きの <code>DECLARE CURSOR</code> 文での問題を修正しました。(Michael) (8.4)</li>
<li>
ecpg が最近追加されたキーワードを予約語として扱わないように修正されました。(Tom) (8.4)</p>
<p>以下のキーワードに影響します。</p>
<table class="bordered">
<tr>
<td>CALLED</td>
<td>CATALOG</td>
<td></td>
</tr>
<tr>
<td>DEFINER</td>
<td>ENUM</td>
<td>FOLLOWING</td>
</tr>
<tr>
<td>INVOKER</td>
<td>OPTIONS</td>
<td>PARTITION</td>
</tr>
<tr>
<td>PRECEDING</td>
<td>RANGE</td>
<td>SECURITY</td>
</tr>
<tr>
<td>SERVER</td>
<td>UNBOUNDED</td>
<td>WRAPPER</td>
</tr>
</table>
</li>
<li>
psql の <code>&yen;df</code> 関数名パラメータで正規表現の特殊文字を許可するようになりました。(Tom) (8.4)</p>
<p><code>&yen;df</code> コマンドで「<code>&yen;df (public|my_schema).*</code>」などのパターンマッチが動作しませんでした。</p>
</li>
<li>
contrib/pg_standby で、Windows において、シグナルによるフェイルオーバーを無効にしました。(Fujii Masao) (8.4)(8.3)</p>
<p>Windows では UNIX 形式のシグナル処理を行なわないため、シグナルによるフェイルオーバー機能はもともと有用ではありませんでした。これは pg_standby がクラッシュする原因となっていました。</p>
</li>
<li>
contrib/vacuumdb が、<code>VACUUM</code> コマンドに <code>FREEZE</code> と <code>VERBOSE</code> オプションを正しい順序で与えるように修正されました。(Heikki) (8.4)</li>
<li>
contrib/dblink でエラーが発生した時に、コネクションリークの可能性があったものが修正されました。(Tatsuhito Kasahara) (8.4)</li>
<li>
psql の flex モジュールが正しいシステムヘッダ定義でコンパイルされるようになりました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)</p>
<p>一部のプラットフォームでビルドに失敗していたものが修正されます。この問題は AIX5.3(64bit) で発見されました。</p>
</li>
<li>
将来の libpq バージョンとの互換性向上のため、postmaster はコネクションリクエストパケットの application_name パラメータを無視するようになりました。(Tom) (8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
タイムゾーンの省略名が、現在の状況に一致するように更新されました。IDT (Israel Daylight Time) が、デフォルトの省略名セットに加えられました。(Joachim Wieland) (8.4)(8.3)(8.2)</li>
<li>
tzdata の 2009 年リリースに合わせてタイムゾーンデータファイルが更新されました。南極、アルゼンチン、バングラデシュ、フィジー、ノヴォクズネツク、パキスタン、パレスチナ、サモア、シリアの夏時間法の変更、香港の訂正、に対応しています。(8.4)(8.3)(8.2)(8.1)(8.0)</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PostgreSQL 8.2.14 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/8-2-14/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Wed, 09 Sep 2009 01:03:54 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 8.2]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=3695</guid>

					<description><![CDATA[このリリースは 8.2.13 からの修正リリース(2009/09/09リリース)です。 8.2.x からのアップデートではダンプ、リストアは不要です。 ただし、interval 型カラムにハッシュインデックスを設定してい ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 8.2.13 からの修正リリース(2009/09/09リリース)です。<br />
8.2.x からのアップデートではダンプ、リストアは不要です。<br />
<span style="color: red;">ただし、interval 型カラムにハッシュインデックスを設定している場合には、マイナーバージョンアップを行なった後に REINDEX を実行する必要があります。</span></p>
<p>また、8.2.11 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/8-2-11/">8.2.11 に関する技術情報</a>を参照してください。</p>
<p><span id="more-3695"></span></p>
<h3 class="background">PostgreSQL 8.2.13 から 8.2.14 への変更点</h3>
<p>8.4.1、8.3.8、8.2.14、8.1.18、8.0.22、7.4.26 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<p>※ 各項目のカッコ内は担当した開発者名と該当するメジャーバージョン系列です。</p>
<hr />
<ol>
<li>
アーカイブリカバリの最後での WAL ページヘッダの初期化が修正されました。(Heikki)(8.4)</p>
<p>この問題のため、後続のアーカイブリカバリで WAL を処理するのに失敗していました。</p>
</li>
<li>
"cannot make new WAL entries during recovery" (「リカバリ中に新たなWAL エントリを作成できない」)というエラーが出る問題が修正されました。(Tom)(8.4)</li>
<li>
消えたはずの行が、サーバのクラッシュ後、見えるようになってしまうという問題が修正されました。(Tom)(8.4)</li>
<li>
pg_start_backup() の間に WAL セグメントを強制的に切り替えるようなりました。(Heikki)(8.3)(8.2)</p>
<p>これにより、ベースバックアップが使えなくなる場合を避けることができます。</p>
</li>
<li>
SECURITY DEFINER 関数の内側で、RESET ROLE コマンド、RESET SESSION AUTHORIZATION コマンドが使用できなくなりました。(Tom, Heikki)(8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>これは、SECURITY DEFINER 関数の内側で SET ROLE コマンドと SET SESSION AUTHORIZATION コマンドを使用できなくした以前のパッチで洩れていた場合をカバーするものです (CVE-2007-6600 参照)</p>
</li>
<li>
既にロードされているロード可能モジュールの LOAD がノップ(無操作)になりました。(Tom)(8.4)(8.3)(8.2)</p>
<p>以前は、LOAD は、モジュールをアンロードしてから再ロードしようとしていましたが、これは危険であり、さらには役にたっていませんでした。</p>
</li>
<li>
LDAP 認証の際、空のパスワードを許さないようになりました。(Magnus)(8.3)(8.2)</li>
<li>
outer-level の集約関数の引数に副 SELECT が現われた時の扱いが修正されました。(Tom)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
Sort あるいは Materialize プランノードの出力から全行の値を取り出す際のバグが修正されました。(Tom)(8.3)(8.2)</li>
<li>
syncrhonize_seqscans が、スクロール可能なカーソルと WITH HOLD カーソルの結果を変えることがなくなりました。(Tom)(8.3)</li>
<li>
AND や OR のリストに 100 を超える句があった場合、部分インデックス最適化と制約排除最適化を無効にしたプランナーの変更が復活しました。(Tom)(8.3)(8.2)</li>
<li>
データ型 interval に対するハッシュの計算が修正されました。(Tom)(8.3)(8.2)(8.1)(8.0)(7.4)</p>
<p>これは、interval 型の値についてのハッシュ結合の間違った結果が修正されます。また、interval 型カラムのハッシュインデックスの内容も変更されます。</p>
<p style="color: red;">このようなインデックスを使っている場合は、アップグレードの後で REINDEX を実行しなければなりません。</p>
</li>
<li>
ウィンドウ関数の PARTITION BY 句と ORDER BY 句の項目が常に単純な式として解釈されるようになりました。(Tom)(8.4)</p>
<p>8.4.0 では、これらのリストはトップレベルの GROUP BY リストと ORDER BY リストで使われる規則に従って解釈されました。しかし、これは SQL 標準に照らし合わせて正しくなく、また、循環的に参照してしまう可能性がありました。</p>
</li>
<li>
semijoin の計画作成でのいろいろな問題が修正されました。(Tom)(8.4)</p>
<p>これらの問題により、IN または EXISTS が何か他の結合と共に使われた時に、問い合わせの結果が間違っていることがありました。</p>
</li>
<li>
外部結合内にある副問い合わせに対する全行参照の扱いが修正されました。(Tom)(8.4)</p>
<pre>SELECT COUNT(ss.*) FROM ... LEFT JOIN (SELECT ...) ss ON ...</pre>
<p>という例で、"ss.*" はヌル拡張結合行に対して ROW(NULL,NULL,...) として扱われており、これは単なる NULL と同じではありませんでした。これを単なる NULL として扱うようになりました。</p>
</li>
<li>
Windows での共有メモリ獲得コードが修正されました(Tsutomu Yamada, Magnus)(8.4)(8.3)</p>
<p>このバグのため、しばしば報告されていた、"could not reattach to shared memory" というエラーメッセージが出ていました。</p>
</li>
<li>
plperl でのロケールの扱いが修正されました。(Heikki)(8.4)</p>
<p>このバグは plperl 関数が呼ばれた時にサーバのロケール設定の変更を引き起こし、データ破壊につながることがありました。</p>
</li>
<li>
reloptions の扱いを、一個のオプションを設定したときに、他のオプションの値をデフォルト値にしてしまうことがないように修正されました。(Itagaki Takahiro)(8.4)</li>
<li>
smart shutdown による停止処理が既に始まっている場合でも、fast shutdown を要求すると、開かれているセッションを強制的に終了させるようになりました。(Fujii Masao)(8.4)(8.3)</li>
<li>
GROUP BY を使った問い合わせでの array_agg() 関数のメモリリークを回避するように修正されました。(Tom)(8.4)</li>
<li>
to_char(...,'TH') を HH, HH12と組み合わせて使った場合、大文字の序数接尾辞として扱うように修正されました。(Heikki)(8.4)(8.3)(8.2)(8.1)(8.0)</p>
<p>以前は、'th' (小文字) として扱われていました。つまり、</p>
<pre>postgres=# select to_char(current_timestamp, 'HHTH');
to_char
---------
03rd
(1 row)</pre>
<p>と出力されていたのが、</p>
<pre>postgres=# select to_char(current_timestamp, 'HHTH');
to_char
---------
03RD
(1 row)</pre>
<p>のように意図通りに出力されるようになりました。</p>
</li>
<li>
TIME型と TIME WITH TIME ZONE 型の入力に対し、EXTRACT(second) と EXTRACT(milliseconds) の結果に小数部を含めるようになりました。(Tom)(8.4)</p>
<p>これは、浮動小数点の DATETIME 構成に対してはこれまで常に動作していましたが、整数の DATETIME コードで問題がありました。</p>
</li>
<li>
x が 20億より大きく、整数型の datetime が使われている場合、INTERVAL 'x ms' がオーバフローするのが修正されました。(Alex Hunsaker)(8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
点と線分の間の距離の計算が修正されました。(Tom)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
日本のように、通貨金額に小数部分がないロケールで money 型が動作するよう修正されました。(Itagaki Takahiro)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
%_ を含むパターンに対する LIKE が修正されました。(Tom)(8.3)</li>
<li>
「00:12:57.9999999999999999999999999999」のような datetime の入力を適切に丸めるようになりました。(Tom)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
XML 演算でのメモリリークが修正されました。(Tom)(8.3)</li>
<li>
GiST の R-tree 演算子クラスでページ分割点の選択がよくなかったのが修正されました。(Teodor)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
入力値が(ほぼ)ソート済みの順番に並んでいる時の、GIN インデックスへの大量インサートの性能劣化を回避するように修正されました。(Tom)(8.3)(8.2)</li>
<li>
PL/pgSQL のいくつかの文脈で、NOT NULL ドメイン制約を正しく強制するようになりました。(Tom)(8.3)(8.2)</li>
<li>
plperl の初期化の際の移植性の問題が修正されました。(Andrew Dunstan)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
インデックススキャンで TOAST 値の処理性能が改善されました。(Tom)(8.4)</p>
<p>これは、とりわけ、<a href="http://postgis.refractions.net/" target="_blank" rel="noopener noreferrer">PostGIS</a> に有効です。</p>
</li>
<li>
commit_delay を無効化していたタイポが修正されました。(Jeff Janes)(8.4)</li>
<li>
サーバがサイレントモードで起動している場合、初期起動時のメッセージを postmaster.log に出力するようになりました。(Tom)(8.4)</p>
<p>これまで、このようなエラーメッセージは捨てられており、デバッグを難しくしていました。</p>
</li>
<li>
FAQ 集の翻訳版が削除されました。(Peter)(8.4)</p>
<p>翻訳版の FAQ 集は今後 <a href="http://wiki.postgresql.org/wiki/FAQ" target="_blank" rel="noopener noreferrer">wiki</a> に置かれます。英語版のFAQ 集は既にしばらく前に上記 wiki に移動されました。</p>
</li>
<li>
pg_ctl が、postgresql.conf が空の場合でも無限ループに陥らないようになりました。(Jeff Davis)(8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
pg_dump の --binary-upgrade モードのエラーがいくつか修正されました(Bruce, Tom)(8.4)</p>
<p>pg_dump --binary-upgrade は pg_migrator で使われています。</p>
</li>
<li>
ラージオブジェクトが多数ある時の pg_dump の効率が改善されました。(Tamas Vincze)(8.3)</li>
<li>
pg_standby に対するフェールオーバシグナルとして、SIGQUIT ではなく、SIGUSR1 を使うようになりました。(Heikki)(8.3)</li>
<li>
pg_standby の maxretries オプションをドキュメントに記述されているとおりに動作するようになりました。(Fujii Masao)(8.3)</li>
<li>
contrib/hstore を、キーやバリューがそのデータ構造に納めるには大きすぎるときに、黙って切り詰めるのではなく、エラーを投げるようになりました。(Andrew Gierth)(8.3)(8.2)</li>
<li>
/contrib/xml2 の xslt_process() 関数が、パラメータの数が、最大値である 20 こであった場合に正しく扱うよう修正されました。(Tom)(8.4)(8.3)(8.2)(8.1)(8.0)</li>
<li>
COPY FROM STDIN の実行中にエラーが起きた場合、リカバーを行なう libpq のコードの堅牢性が改善されました。(Tom)(8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
readline と editline の両方のライブラリがインストールされたとき、矛盾するヘッダファイルのインクルードを回避するように修正されました。(Zdenek Kotala)(8.4)(8.3)(8.2)(8.1)(8.0)(7.4)</li>
<li>
プラットフォームにより、ゼロ除算の代わりに浮動小数点例外を引き起こす、 GCC のバグを回避するように修正されました。(Tom)(8.4)</li>
<li>
バングラデシュ、エジプト、モーリシャスでの夏時間に関する法律の変更に対応して、tzdata のリリース 2009l に対するタイムゾーンデータファイルの更新が行われました。(8.4)</li>
<li>
バングラデシュ、エジプト、ヨルダン、パキスタン、アルゼンチンのサン・ルイス、キューバ、ヨルダン（履歴訂正のみ）、モーリシャス、モロッコ、パレスチナ、シリア、チュニジアでの夏時間に関する法律の変更に対応して、tzdata のリリース 2009l に対するタイムゾーンデータファイルの更新が行われました(8.3)(8.2)(8.1)(8.0)</li>
</ol>

<div>
<a href="https://www.sraoss.co.jp/prod_serv/support/pgsql-mainte/?utm_source=sraoss-techblog&utm_medium=referral&utm_campaign=under-article-pgsql" rel="noopener" style="color:initial;" target="_blank" class="no-ext"></p>
<div style="background-color:#DAEFF6; padding:20px; border-radius:8px; text-align:center;">
SRA OSSでは、PostgreSQL/Pgpool-II のサポートを提供しております。<br />
詳しくは<strong style="color:#2581c4;">弊社ホームページ</strong>をご覧ください。
</div>
<p></a>
</div>

]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
