<?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 9.6.9 &#8211; SRA OSS Tech Blog</title>
	<atom:link href="https://www.sraoss.co.jp/tech-blog/tag/postgresql-9-6-9/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, 30 Oct 2026 08:06:02 +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 9.6.9 &#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 9.6.10 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/9-6-10/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Thu, 23 Aug 2018 00:59:43 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 9.6]]></category>
		<category><![CDATA[PostgreSQL 9.6.10]]></category>
		<category><![CDATA[PostgreSQL 9.6.9]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=436</guid>

					<description><![CDATA[このリリースは 9.6.9 からの修正リリース（2018年8月9日リリース）です。 9.6.x からのアップデートではダンプ、リストアは不要です。 また、9.6.9 より前のバージョンからアップデートを行う場合は 9.6 ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 9.6.9 からの修正リリース（2018年8月9日リリース）です。<br />
9.6.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、9.6.9 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/9-6-9/">9.6.9 に関する技術情報</a>を参照してください。</p>
<p><span id="more-436"></span></p>
<h3>PostgreSQL 9.6.9 から 9.6.10 への変更点</h3>
<p>10.5、9.6.10、9.5.14、9.4.19、9.3.24 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol>
<li>libpq にて接続を試行するごとに状態を完全にはリセットできておらず、修正されました。  (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
ある種の攻撃方法で dblink や postgres_fdw の権限の無いユーザが、サーバを実行する OSユーザが所有する ~/.pgpass などのサーバ側の認証情報ファイルの使用を防止する検査を迂回できました。ローカル接続に peer認証を許可しているサーバは特に影響を受けます。postgres_fdw セッションへの SQLインジェクションなどの他の攻撃も可能です。
</p>
<p>
この方法で postgres_fdw を攻撃するには指定の接続パラメータで外部サーバオブジェクトが作成できる必要があります。一方、dblink に対しては、dblink にアクセスできる任意のユーザで攻撃可能です。一般に libpq を使ったアプリケーションに対して接続パラメータを選べると攻撃可能になると考えられます。(CVE-2018-10915)
</p>
<li>単純な「SELECT * FROM ...」ではないビューを通した「INSERT ... ON CONFLICT UPDATE」が修正されました。  (Dean Rasheed, Amit Langote) (10)(9.6)(9.5)</li>
<p>
ビューの SELECTリストが元のテーブルの列と1対1で対応していない場合に、更新可能ビューの誤った展開がクラッシュや「ERROR:  attribute ... has the wrong type」エラーをもたらす可能性がありました。
</p>
<p>
さらにセキュリティ上の問題もありました。攻撃者が同テーブルの他の列にINSERTとUPDATE権限を持っている場合に、この障害を利用してUPDATE権限の無い列を更新できました。また、あらゆるユーザがこの障害を使ってサーバメモリの読み取りが可能でした。(CVE-2018-10925)
</p>
<pre>
障害動作例:
（以下のようなテーブル、ビューで）
db1=# CREATE TABLE t2 (id int primary key, c1 int, c2 int);
db1=# CREATE VIEW v2 AS SELECT id, c2 FROM t2;
db1=# GRANT UPDATE (id, c2) ON t2 TO foo;
db1=# GRANT INSERT (id, c2) ON t2 TO foo;
db1=# GRANT ALL ON v2 TO foo;
db1=# INSERT INTO t2 VALUES (1,1,1), (2,2,2);

（一般ユーザ foo で INSERT ... ON CONFLICT ... を実行）
db1=&gt; INSERT INTO v2 (id, c2) VALUES (1,100)
        ON CONFLICT (id) DO UPDATE SET c2 = EXCLUDED.c2;
INSERT 0 1

（奇妙な結果: c2 が更新されず、権限が無い c1 が NULL に更新）
db1=# SELECT * FROM t2;
 id | c1 | c2
----+----+----
  2 |  2 |  2
  1 |    |  1
(3 rows)
</pre>
<li>固定されたシステムカタログに対する relfrozenxid値と relminxid値の更新が、遅れることなく処理されるようになりました。  (Andres Freund) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
過剰に楽観的なキャッシュ処理方式は、これらの更新が他のセッションから見えなくなるおそれがあり、偽性エラー、あるいは/および、データ破損をもたらす可能性がありました。古いキャッシュデータが既存セッションのみならず新たなセッションにまで残り続ける可能性があるため、この問題は pg_authid などの共有カタログにおいて特に悪質です。
</p>
<p>
以下のエラーが報告されて問題が発見されました。</p>
<pre>
ERROR:  found xmin 2906288382 from before relfrozenxid 740087784
</pre>
<p>これは、テーブルに凍結したXID値（relfrozenxid）よりも手前のxmin値を持つレコードが見つかったという意味です。キャッシュ処理の誤りで実際の relfrozenxid値よりもずっと古い値が参照されていました。<br />
同様に「ERROR: found multixact ... from before relminmxid ...」も起こる可能性があります。
</p>
<li>昇格したばかりのスタンバイが昇格後の最初のチェックポイント処理を終える前にクラッシュした場合について、修正されました。  (Michael Paquier, Kyotaro Horiguchi, Pavan Deolasee, &Aacute;lvaro Herrera) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
本障害により、そのクラッシュ後のリカバリ起動でWALを適用する際に一貫性をもったデータベース状態に到達していないと判断され、起動に失敗しました。
</p>
<p>
クラッシュ後の起動失敗のときに「PANIC:  WAL contains references to invalid pages」が出る動作が報告されています。
</p>
<li>内容が全てゼロのBtreeインデックスのページを再利用する際に不適切なWALレコードを出力しないように修正されました。  (Amit Kapila) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
この誤りはアサート失敗として現れます。また、潜在的にホットスタンバイサーバで不必要な問い合わせキャンセルを起こすおそれがありました。
</p>
<li>WALリプレイにて、1GBを超える破損したレコード長から保護されるようになりました。  (Michael Paquier) (10)(9.6)(9.5)</li>
<p>
このような場合には破損したデータとして扱えるようになりました。これまでは、WALレコード内に書かれたレコード長の通りに大きいメモリ領域を確保しようと試みていました。その結果、以下のような強いエラーが生じてリカバリ不能になっていました。
</p>
<pre>
FATAL:  invalid memory alloc request size ...
</pre>
<p>
本修正でWALの再読み込みを促す弱いエラーを出すように変更されました。
</p>
<li>リカバリの終わりに、タイムラインヒストリファイルへの書き込みをできるだけ遅らせるようになりました。  (Heikki Linnakangas) (10)(9.6)(9.5)</li>
<p>
これにより、リカバリクリーンアップ中のエラー（二相コミットの状態ファイルの問題など）でディスク上に一貫性の無いタイムライン状態が生じるのを回避します。
</p>
<p>
以下のようにリカバリ完了時にrecovery.confが無いというエラーが出て、失敗する動作が報告されていました。
</p>
<pre>
LOG: selected new timeline ID: 2
FATAL: could not open file "recovery.conf": No such file or directory
LOG: startup process (PID 23456) exited with exit code 1
</pre>
<li>多数のリレーションを削除するトランザクションに対して、WALリプレイの性能が改善されました。  (Fujii Masao) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
この変更はファイル削除を一括して行うことで、共有バッファがスキャンされる回数を減らして、特に shared_buffers 設定が大きい場合に処理を効率化します。
</p>
<li>スタンバイサーバのWALリプレイにてロック解放の性能が改善されました。  (Thomas Munro) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>wal sender がロジカルデータのストリーミング状態を正しく報告するようになりました。  (Simon Riggs, Sawada Masahiko) (10)(9.6)(9.5)(9.4)</li>
<p>
これまでは上流サーバに追いついているかどうかを誤判定していました。上流側（sender側）の起動時に、既に追いついているのに "streaming" でなく"catchup" 状態と報告することがありました。
</p>
<li>ロジカルレプリケーションのサブスクライバにおいて、データ型の入力関数を実行するときにスナップショットが確実に提供されるようになりました。  (Minh-Quan Tran, &Aacute;lvaro Herrera) (10)</li>
<p>
この遺漏により、SQL言語の関数を使った制約を持つドメイン型などの一部の場合でクラッシュを起こしていました。
</p>
<li>ロジカルデコーディングのときのスナップショット処理について誤りが修正されました。  (Arseny Sher, &Aacute;lvaro Herrera) (10)(9.6)(9.5)(9.4)</li>
<p>
稀な場合において誤ったデコーディング結果を許容していました。ロジカルレプリケーション対象テーブルへのDDL操作や、サブトランザクション(SAVEPOINT)操作があるときに誤動作を起こすおそれがありました。
</p>
<li>ロジカルレプリケーションのテーブル同期ワーカにサブトランザクションを考慮した処理が加わりました。  (Amit Khandekar, Robert Haas) (10)</li>
<p>
これまで、いくつかのサブトランザクションが同期テーブルを更新した後に中止(ABORT)された場合に、テーブル同期が誤った振る舞いをする可能性がありました。
</p>
<li>インデックス作成が途中で失敗した後、テーブルのキャッシュされたインデックスリストが正しく再構築されるように修正されました。  (Peter Geoghegan) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これまでは、作成に失敗したインデックスの OID がリストに残り、同セッション内でその後に問題をひき起こしました。
</p>
<p>
インデックス作成失敗後に当該テーブルに対するSQL実行で「ERROR: could not open relation with OID 16567」エラーが出るケースが報告されました。
</p>
<li>GINインデックスの圧縮されていない空のポスティングリストページの誤った処理が修正されました。  (Sivasubramanian Ramasubramanian, Alexander Korotkov) (10)(9.6)(9.5)(9.4)</li>
<p>
これは 9.4 より前の GINインデックスを pg_upgrade した後にアサート失敗をもたらします。9.4 以降のバージョンで GINインデックスを作った場合には問題ありません。
</p>
<li>キャッシュライン共用を減らすために、無名POSIXセマフォの配列を埋めこむようになりました。  (Thomas Munro) (10)</li>
<p>
これは多CPUシステムでの競合を減らし、Linux と FreeBSD での旧リリースと比較しての性能退行を修正します。
</p>
<li>パラレルインデックススキャンをしているプロセスが確実にシグナルに応対するようになりました。  (Amit Kapila) (10)</li>
<p>
これまで、パラレルワーカはインデックスページのロックを待機して止まったままとなる可能性がありました。
</p>
<li>VACUUM が Btreeインデックスのページ削除のループ内にあるとき、確実にシグナルに応対するように修正されました。  (Andres Freund) (10)(9.6)(9.5)(9.4)</li>
<p>
破損したBtreeインデックスがここでの無限ループをもたらす可能性があり、その場合、これまでは強制クラッシュさせる以外には割り込み不能となっていました。
</p>
<li>inner_unique最適化を加えた際に入り込んだ、ハッシュ結合のコスト計算の誤りが修正されました。  (David Rowley) (10)</li>
<p>
本障害により、この最適化が適用できる場合に悪いプランが選択される可能性がありました。
</p>
<p>
inner_unique最適化とは、PostgreSQL 10 で導入されたユニーク保証を使った最適化の一つで、内部結合に適用されます。
</p>
<li>複合型の列に関する同値クラスの誤った最適化が修正されました。  (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
本障害のために、複合列のインデックスがマージ結合に対してそれら列のソート順序を提供するかもしれないことが、見落とされていました。
</p>
<p>
以下のように複合列のインデックスが使われない動作が報告されました。
</p>
<pre>
（このようなテーブルに対して）
db1=# CREATE TYPE typ20c AS (c1 int, c2 int);
db1=# CREATE TABLE tbl20a (c3 typ20c PRIMARY KEY);
db1=# CREATE TABLE tbl20b (c3 typ20c PRIMARY KEY);
db1=# INSERT INTO tbl20a SELECT ROW(g, g)::typ20c
        FROM generate_series(1, 100000) as g;
db1=# INSERT INTO tbl20b SELECT ROW(g, g)::typ20c
        FROM generate_series(1, 100000) as g;
db1=# ANALYZE;

（以下の問い合わせで Merge Join の場合にインデックスが使われない）
db1=# explain SELECT * FROM tbl20a a, tbl20b b WHERE a.c3 = b.c3;
</pre>
<li>複数行を返す関数を使った一部のクエリでの「ERROR:  ORDER/GROUP BY expression not found in targetlist」エラーを回避するようにプランナが修正されました。  (Tom Lane) (10)(9.6)</li>
<li>キーのデータ型が配列型のような多態のBtree演算子クラスを使っているものである場合の、パーティションキーの処理が修正されました。  (Amit Langote, &Aacute;lvaro Herrera) (10)</li>
<p>
配列型のパーティションキーを使った場合に、検索におけるパーティション除外（pruning）が働かない動作が報告されていました。
</p>
<li>SQL標準の FETCH FIRST 構文が標準で期待される通り、パラメータを受け付けるように修正されました。  (Andrew Gierth) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これまではプリペアドステートメントでパラメータとすることができませんでした。
</p>
<pre>
（修正前の動作例、LIMIT/OFFSETでは可能だが FETCH FIRSTはエラーになる）
db1=# PREPARE p1 (int, int) AS
        SELECT * FROM t23 LIMIT $2 OFFSET $1;
PREPARE
db1=# PREPARE p2 (int, int) AS
        SELECT * FROM t23 OFFSET $1 ROWS FETCH FIRST $2 ROWS ONLY;
ERROR:  syntax error at or near "$2"
</pre>
<li>パーティションキー列の重複に対するドキュメント化されていない制限が除去されました。  (Yugo Nagata) (10)</li>
<p>
これまで「PARTITION BY RANGE (x, x)」のように同じ列を複数指定すると「ERROR:  column "x" appears more than once in partition key」エラーが生じていました。
</p>
<li>一時テーブルを非一時テーブルのパーティションにすることが禁止されました。  (Amit Langote, Michael Paquier) (10)</li>
<p>
これまでは許されていましたが、そのような場合は信頼できる動作をしません。
</p>
<li>特にバッファアクセスについて、パラレルワーカーにおける EXPLAIN のリソース使用集計が修正されました。  (Amit Kapila, Robert Haas) (10)(9.6)</li>
<p>
クエリがパラレル動作をするときに EXPLAIN (ANALYZE,BUFFERS) で出力される「Buffers: ...」値が不正確になる動作が報告されました。
</p>
<li>SHOW ALL が pg_read_all_settings のメンバーであるロールに対して全ての設定を出力するように修正されました。また、そのようなロールは設定ファイル名と行番号を pg_settings ビューで参照できるようになりました。  (Laurenz Albe, &Aacute;lvaro Herrera) (10)</li>
<li>内部実装関数 getObjectDescription の出力で、一部オブジェクト名のスキーマ修飾に失敗していたものが修正されました。  (Kyotaro Horiguchi, Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
照合順序、符号化方式変換、テキスト検索のオブジェクト名が、スキーマ修飾されるべきケースで修飾されませんでした。
</p>
<p>
PostgreSQL 10.x 系列においては、パブリケーション、拡張統計のオブジェクトも該当します。また、内部実装関数 getObjectIdentity も修正されています。
</p>
<li>並列化支援関数として VARIADIC を使った集約を与えることができるようにCREATE AGGREGATE の型チェックが修正されました。  (Alexey Bashtanov) (10)(9.6)</li>
<li>COPY FROM の現在行番号カウンタを 32bit から 64bitに拡張しました。  (David Rowley) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これにより、COPYの入力が4G（約42.9億、2の32乗）行を超える場合の二つの問題を回避します。一つは COPY FROM WITH HEADER で先頭行のみならず4G行毎に行が捨てられてしまうことで、一つはエラー報告が誤った行番号を報告する可能性があることです。
</p>
<li>シングルユーザモードでレプリケーションスロットを削除できるようになりました。  (&Aacute;lvaro Herrera) (10)</li>
<p>
シングルユーザモードで「SELECT pg_drop_replication_slot('p');」を実行したときに「ERROR:  epoll_ctl() failed: Bad file descriptor」となる動作が報告されました。10.0 で埋め込まれてしまった障害です。
</p>
<li>パラレル集約が動作するときの variance(int4)関数および関連する集約関数からの誤った結果が修正されました。  (David Rowley) (10)</li>
<p>
varianceは入力値に対する標本分散を返す集約関数です。
</p>
<li>xmltable()の列式でTEXTノード、CDATAノードを適切に処理するようになりました。  (Markus Winand) (10)</li>
<li>起こりうる OpenSSL の RAND_bytes()関数の失敗を適切に処理するようになりました。  (Dean Rasheed, Michael Paquier) (10)</li>
<p>
稀な状況で本障害により「LOG:  could not generate random cancel key」が繰り返し発生して、新たな接続が受け付けられない状態になり、PostgreSQLをサービス再起動する以外では解消できませんでした。
</p>
<li>hostaddr が指定されたときの一部の場合について libpq が修正されました。  (Hari Babu, Tom Lane, Robert Haas) (10)</li>
<p>
PQhost() が一部の場合に誤解を招く結果または誤った結果を返していました。これからは一定の様式で応答します。ホスト名が指定されていたならホスト名を、ホストアドレスだけ指定されていた場合に限ってホストアドレスを、いずれも指定されていない場合にはデフォルトホスト名（典型的には /tmp かlocalhost）を返すようになりました。
</p>
<p>
また、SSL証明書を検証するときに誤った値が証明書のサーバ名と比較されるかもしれませんでした。同様に、誤った値が ~/.pgpass のホスト名欄と比較されるかもしれませんでした。これからは、ホスト名が指定されていたならホスト名、ホストアドレスだけ指定されていたならホストアドレス、いずれも指定されていないなら「localhost」が比較対象の値となります。
</p>
<p>
また、hostaddr値がパース不能であるとき以下のような不適切な（"(null)"部分）エラーメッセージが報告されていたものが修正されました。
</p>
<pre>
$ psql "hostaddr=999.999.999.999"
psql: could not parse network address "(null)": Name or service not known
</pre>
<p>
また、host、hostaddr、portパラメータにカンマ区切りのリストが含まれる場合、libpq はデフォルト動作指定を意味するリスト内の空要素を注意深く扱うようになりました。
</p>
<li>ecpg の pgtypesライブラリに文字列解放関数が追加されました。これによりWindowsでのモジュールをまたがるメモリ管理問題を回避できます。  (Takayuki Tsunakawa) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
Windows で同じ DLLにて malloc して確保したのではないメモリを free すると、クラッシュが発生することがあります。pgtypesライブラリはときどき呼び出し側が解放する想定の文字列を返しますが、そのように使用することは不可能となっていました。PGTYPESchar_free() 関数が追加され、アプリケーションによる呼び出し側でのメモリ解放が可能となりました。
</p>
<li>Windows での ecpg の long long 変数サポートが修正されました。必要な strtoll/strtoull ライブラリ関数を非標準的に宣言していたり、全く宣言していない他のプラットフォームも同様に修正されました。  (Dang Minh Huong, Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
Windows上の ecpg を使用した DBクライアント実行でクライアント側エラー「unsupported type "long long" on line ...」が出るケースが報告されました。
</p>
<li>RULE変更を行った場合の PL/pgSQL でSQLステートメントタイプの誤識別が修正されました。  (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
この障害はアサート失敗をひき起こします。また、稀な場合に INTO STRICTオプションが期待通りに動作しなくなります。
</p>
<li>Windows で標準入力がターミナルでないとき、エコー出力が適切に無効化されるようにクライアントプログラムのパスワードプロンプトが修正されました。  (Matthew Stickney) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>ダンプ出力でリスト値になっているGUI変数値のクォーティングがさらに修正されました。  (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
以前の pg_dump出力での search_path や他のリスト値変数のクォーティングに対する修正は、空文字列リスト要素に対して誤動作をしていて、長いファイルパスが切り捨てられる危険性がありました。
</p>
<li>pg_dump で制約インデックスに対する REPLICA IDENTITY 属性のダンプに失敗していたものが修正されました。  (Tom Lane) (10)(9.6)(9.5)(9.4)</li>
<p>
手動で作成したユニークインデックスは適切に属性が付与されますが、UNIQUE や PRIMARY KEY 制約を宣言して作られる場合にはそうなりませんでした。
</p>
<li>pg_upgrade で古いサーバが正常にシャットダウンしたか検査するようになりました。  (Bruce Momjian) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これまでは immediateモードのシャットダウンを誤って正常シャットダウンと判断していました。
</p>
<li>contrib/hstore_plperl が Perlスカラ参照を調べて、あるはずのハッシュ参照が見つからないときにクラッシュしないように修正されました。  (Tom Lane) (10)(9.6)(9.5)</li>
<p>
以下のように hstore型にならない値を渡すときにクラッシュしていました。
</p>
<pre>
db1=# CREATE EXTENSION hstore;
db1=# CREATE EXTENSION plperl;
db1=# CREATE EXTENSION hstore_plperl;
db1=# CREATE FUNCTION test43() RETURNS hstore LANGUAGE plperl
        TRANSFORM FOR TYPE hstore AS $$ return 43; $$;
db1=# SELECT test43();
server closed the connection unexpectedly
</pre>
<li>contrib/ltree の lca() 関数で入力配列が空であるときのクラッシュが修正されました。  (Pierre Ducroquet) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>誤ったエラーコードが報告されるかもしれない、様々なエラー処理のコードパスが修正されました。  (Michael Paquier, Tom Lane, Magnus Hagander) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
ライブラリ関数で使われる errno変数の退避やリセットが不十分な箇所が修正されました。ユーザに対しては、エラーメッセージ中のエラー理由を示す部分に誤ったメッセージが出力されるという形で問題があらわれます。
</p>
<li>プログラムが既存のシステムライブラリディレクトリにあるものではなく、ビルドされたばかりのライブラリ（libpq.so など）に確実にリンクするように、Makefile が整理されました。  (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これにより、古いPostgreSQLライブラリのあるプラットフォームでビルドするときの問題を回避します。
</p>
<li>タイムゾーンデータファイルが tzdata release 2018e に更新されました。北朝鮮の夏時間法の変更とチェコスロバキアの歴史的修正が含まれます。   (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
この更新には、過去のナミビアとチェコスロバキアと同様の、アイルランド夏時間の再定義が含まれます。これらの管区では、法律上標準時間が夏で、冬に変更された時間帯が適用されるため、それにあわせた変更が適用されました。実際のUTCオフセットや使われているタイムゾーン略記法に変更はありませんが、pg_timezone_namesビューのis_dst列の値が変わり、冬にtrue、夏にfalseとなります。
</p>
</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 9.6.9 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/9-6-9/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Tue, 15 May 2018 01:00:44 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 9.6]]></category>
		<category><![CDATA[PostgreSQL 9.6.8]]></category>
		<category><![CDATA[PostgreSQL 9.6.9]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=468</guid>

					<description><![CDATA[このリリースは 9.6.8 からの修正リリース(2018/5/10リリース)です。 9.6.x からのアップデートではダンプ、リストアは不要です。 ただし、adminpack拡張を使用している場合は拡張の更新が必要です。 ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 9.6.8 からの修正リリース(2018/5/10リリース)です。<br />
9.6.x からのアップデートではダンプ、リストアは不要です。<br />
ただし、adminpack拡張を使用している場合は拡張の更新が必要です。</p>
<p>また、9.6.8 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/9-6-8/">9.6.8 に関する技術情報</a>を参照してください。</p>
<p><span id="more-468"></span></p>
<h3 class="background">PostgreSQL 9.6.8 から 9.6.9 への変更点</h3>
<p>10.4、9.6.9、9.5.13、9.4.18、9.3.23 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol>
<li>contrib/adminpack の pg_logfile_rotate() 関数から全ユーザに与えられていた実行権限が削除されました。 (Stephen Frost) (10)(9.6)</li>
<p>
adminpack がインストールされている場合、全てのユーザがログファイルのローテーションをリクエストすることができ、セキュリティ的な問題がありました。
</p>
<p>
今回のアップデートを適用後、運用管理者は「ALTER EXTENSION adminpack UPDATE;」を実行して adminpack を更新する必要があります。これは adminpack がインストールされているすべてのデータベースが対象となります。(CVE-2018-1115)
</p>
<li>いくつかの組み込み関数の誤った変動性区分の指定が修正されました。 (Thomas Munro, Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
以下の関数は VOLATILE とすべきでした。変動する操作を含むかもしれないユーザから与えられた問い合わせを実行するためです。そうなっていなかったためプラン作成での誤った最適化が行われる危険がありました。
</p>
<pre>
query_to_xml
cursor_to_xml
cursor_to_xmlschema
query_to_xmlschema
query_to_xml_and_xmlschema
</pre>
<p>
既存データベースクラスタの関数定義はバージョンアップしただけでは修正されません。使用している各データベースにおいて管理者ユーザにて以下の SQLを実行して、修正することができます。
</p>
<pre>
ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.cursor_to_xml(refcursor, int, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.cursor_to_xmlschema(refcursor, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.query_to_xmlschema(text, boolean, boolean, text) VOLATILE;
ALTER FUNCTION pg_catalog.query_to_xml_and_xmlschema(text, boolean, boolean, text) VOLATILE;
</pre>
<li>いくつかの組み込み関数で間違って parallel-safe とされていたものが修正されました。 (Thomas Munro, Tom Lane) (10)(9.6)</li>
<p>
以下の関数が該当します。
</p>
<pre>
brin_summarize_new_values
brin_summarize_range (10.x のみ)
brin_desummarize_range (10.x のみ)
gin_clean_pending_list
cursor_to_xml
cursor_to_xmlschema
ts_rewrite
ts_stat
binary_upgrade_create_empty_extension
pg_import_system_collations
</pre>
<p>
これらの関数は今まで parallel-restricted とされており予期せぬクエリエラーを発生させる可能性がありました。本修正は新規インストールの場合は問題ないですが、既にインストールされているものに関しては paralle-restricted のままになります。修正のためには、管理者ユーザで以下のように関数の pg_proc エントリを修正するか（全てのデータベースで実行する必要があります）、pg_upgrade を使用して本修正がされているバージョンに変更する必要があります。
</p>
<pre>
（brin_summarize_new_values 関数に対する補正 SQL 例：）
ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass) PARALLEL UNSAFE;
</pre>
<li>削除済みで未 VACUUM の TOAST エントリに一致する TOAST 値 OID の再利用を回避するようになりました。 (Pavan Deolasee) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
一度 OID カウンタが周回していると、同じ TOAST テーブルで以前に削除されたエントリと OID が一致する TOAST 値を割り当てる可能性があります。そのエントリが未だ VACUUM されていない場合、以下のエラーがもたらされ、これが削除済みエントリが VACUUM で除去されるまで持続します。
</p>
<pre>
ERROR: unexpected chunk number 0 (expected 1) for toast value nnnnn
</pre>
<p>
新たな TOAST エントリを作るときにそのような OID を選ばないように修正されました。
</p>
<li>パーティション化されたテーブルに COPY をするときに、構成要素の個々パーティション上で正しくあらゆる CHECK 制約を強制するようになりました。 (Etsuro Fujita) (10)</li>
<p>
これまではパーティション化されたテーブル全体にむけて宣言された制約のみが検査されていました。
</p>
<li>パーティションキー比較関数むけのメモリ管理が修正されました。 (&Aacute;lvaro Herrera, Amit Langote) (10)</li>
<p>
この誤りにより、パーティションキーにユーザ定義演算子クラスを使うときにクラッシュをひき起こす恐れがありました。
</p>
<li>パーティション化されたテーブル内の同一の行型を持たないいくつかの要素パーティションに問い合わせがタプルを挿入するときクラッシュする可能性があり、修正されました。 (Etsuro Fujita, Amit Langote) (10)</li>
<li>ANALYZE の pg_class.reltuples を更新するアルゴリズムが変更されました。 (David Gould) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これまでは ANALYZE により実際にはスキャンされないページは、元のタプル密度を維持していると見做されていました。ANALYZE が全体の一部のみサンプリングする大きなテーブルでは、これは全体のタプル密度見積りが大幅に変化しないことを意味し、そのためテーブルの実際の変動にかかわらず、reltuples はテーブルの物理サイズ（relpages）におよそ比例する形で変化しました。これにより、事実上自動 VACUUM が遮断されるほど reltuples が実際より大きくなりすぎる動作がみられました。
</p>
<p>
ANALYZE で抽出したサンプルが統計的に偏りの無いものと仮定して、観測されたサンプルのタプル密度をテーブル全体に外挿推定するように、修正されました。
</p>
<li>拡張統計オブジェクトが、CREATE TABLE ... LIKE ... INCLUDING ALL で複製されたテーブルの属性に含まれるようになりました。 (David Rowley) (10)</li>
<p>
また、この個別制御をする INCLUDING STATISTICS オプションが追加されました。
</p>
<li>bigint型の IDENTITY列を伴う CREATE TABLE ... LIKE が修正されました。 (Peter Eisentraut) (10)</li>
<p>
long が 32 ビットのプラットフォーム（大部分の 32 ビットマシンのみならず 64ビット Windows が含まれます）では、コピーされたシーケンスパラメータが 32 ビットに切り捨てされていました。
</p>
<li>SERIALIZABLE または REPEATABLE READ トランザクション隔離レベルで同時実行する CREATE INDEX CONCURRENTLY コマンドでのデッドロックが回避されました。 (Tom Lane) (10)(9.6)(9.5)(9.4)</li>
<li>REFRESH MATERIALIZED VIEW CONCURRENTLY が遅く実行される可能性があり、修正されました。 (Thomas Munro) (10)(9.6)(9.5)(9.4)</li>
<li>参照されるカーソルが IndexOnlyScan 実行プランを使うときにUPDATE/DELETE ... WHERE CURRENT OF が失敗しないように修正されました。 (Yugo Nagata, Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
予期せぬエラー「ERROR: cannot extract system attribute from virtual tuple」が発生する例が報告されていました。
</p>
<li>パラメタ化されたパスにプッシュされたJOIN句の不正なプラン作成が修正されました。 (Andrew Gierth, Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
この間違いは、単純なフィルタ条件であるべきときに外部結合に対する結合フィルタ条件の誤まった分別が生じ、誤った結合結果をもたらしました。
</p>
<p>
以下の誤動作例が報告されました。
</p>
<pre>
db=# CREATE TABLE t AS SELECT 1 AS x, '{10,20}'::int[] AS ys;
db=# SELECT * FROM t
LEFT JOIN (VALUES (1, 10), (2, 20)) AS q1 (x, y) ON q1.x = t.x
LEFT JOIN unnest(ys) q2 (y) ON q2.y = q1.y;
x | ys | x | y | y
---+---------+---+----+----
1 | {10,20} | 1 | 10 | 10
1 | {10,20} | 2 | 20 |
(2 rows)
</pre>
<li>複合インデックスの列に同じテーブルの列が現れて、これらインデックス列の一部だけが列の値を返せる演算子クラスを使うときに、誤った IndexOnlyScan プランが生成される可能性があり、修正されました。 (Kyotaro Horiguchi) (10)(9.6)(9.5)</li>
<p>
以下のようなインデックスで該当します。
</p>
<pre>
CREATE INDEX ON text_tbl USING gist (text_col gist_trgm_ops, text_col);
CREATE INDEX ON inet_tbl USING gist (inet_col gist_inet_ops, inet_col inet_ops);
</pre>
<li>トップレベルに AND/OR 条件の NULL と証明可能な副句を持つ CHECK 制約の、誤った最適化が修正されました。 (Tom Lane, Dean Rasheed) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
例えば以下のように「制約による除外」の最適化で除外すべきでない子テーブルが除外されてしまうことがあり得ました。
</p>
<pre>
db=# CREATE TABLE cnullp (f1 int);
db=# CREATE TABLE cnullc (check (f1 = 1 OR f1 = null)) INHERITS (cnullp);
db=# INSERT INTO cnullc VALUES (1), (2), (null);
db1=# EXPLAIN SELECT * FROM cnullp ;
QUERY PLAN
----------------------------------------------------------------
Append (cost=0.00..35.50 rows=2551 width=4)
-&gt; Seq Scan on cnullp (cost=0.00..0.00 rows=1 width=4)
-&gt; Seq Scan on cnullc (cost=0.00..35.50 rows=2550 width=4)
(3 rows)

db1=# EXPLAIN SELECT * FROM cnullp WHERE f1 = 2;
QUERY PLAN
------------------------------------------------------------
Append (cost=0.00..0.00 rows=1 width=4)
-&gt; Seq Scan on cnullp (cost=0.00..0.00 rows=1 width=4)
Filter: (f1 = 2)
(3 rows)
</pre>
<li>問い合わせが複数 GROUPING SETS を持ち、それらのいずれもがソートによる実行プランがとれないときのプランナのクラッシュが防止されました。 (Andrew Gierth) (10)</li>
<pre>
(大小比較ができないのでソート不能な xid 型によるクラッシュをひき起こす SQL 例)
db=# CREATE TABLE t18 (id int, x1 xid, x2 xid);
db=# INSERT INTO t18 VALUES (1, '1', '1'), (2, '2', '2'), (3,'3','3');
db=# SELECT x1, x2, count(*) FROM t18 GROUP BY GROUPING SETS ((x1), (x2));
</pre>
<li>GROUPING SETS の一部の使用法において、エグゼキュータのメモリ二重解放によるクラッシュが修正されました。 (Peter Geoghegan) (10)(9.6)(9.5)</li>
<li>トリガ関数内における遷移テーブルを自己結合する問い合わせの誤実行が修正されました。 (Thomas Munro) (10)</li>
<p>
UNION で遷移テーブルへの SELECT を繋ぐ場合なども該当します。
</p>
<li>テーブル書き換えのイベントトリガ追加が、そのようなトリガを呼び出すかもしれないコマンドと同時に行われた場合のクラッシュが回避されました。 (&Aacute;lvaro Herrera, Andrew Gierth, Tom Lane) (10)(9.6)(9.5)</li>
<li>準備されたトランザクションのコミットをしているときに、問い合わせのキャンセルやセッション終了割り込みが起きた場合の障害が回避されました。 (Stas Kelvich) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>繰り返し実行されているハッシュ結合での問い合わせ処理の間のメモリリークが修正されました。 (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>ビジビリティマップのバッファピンでメモリのリークまたは二重解放の可能性があり、修正されました。 (Amit Kapila) (10)(9.6)</li>
<li>ページに全て可視であると偽性の印付けするのを回避しました。 (Dan Wood, Pavan Deolasee, &Aacute;lvaro Herrera) (10)(9.6)</li>
<p>
これは一部タプルがロックされている（しかし削除されていない）場合に起きる可能性がありました。問い合わせが未だ正しく実行中の間、VACUUM は通常そのようなページを無視します。これはタプルがずっと凍結されないという長期の影響を伴います。
</p>
<p>
最近のリリースでは、これによりエラー「ERROR: found multixact nnnnn from before relminmxid nnnnn」を出しました。
</p>
<li>heap_prepare_freeze_tuple の厳格すぎるサニティチェックが修正されました。 (&Aacute;lvaro Herrera) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これは pg_upgrade で 9.2 以前のバージョンからアップグレードされたデータベースにて、誤った「ERROR: cannot freeze committed xmax ...」エラーをひき起こしました。
</p>
<li>C 言語で記述された更新前に実行される行トリガが OLD タプルを返すときのダングリングポインタ参照が防止されました。 (Rushabh Lathia) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>自動 VACUUM ワーカをスケジューリングする間のロックが軽減されました。 (Jeff Janes) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これまでの振る舞いは多テーブルデータベースにおいて潜在的なワーカの同時実行性を大幅に削いでいました。
</p>
<li>pg_stat_activity のデータをローカルメモリにコピーするときに、クライアントホスト名（client_hostname）が確実にコピーされるようになりました。 (Edmund Horner) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これまでは、ローカルとされるスナップショットが共有メモリへのポインタを含んでおり、いずれかの存在するセッションが切断された場合に client_hostname が予期せず変わることがあり得ました。
</p>
<li>補助プロセスに対する pg_stat_activity の情報を正しく扱うようになりました。 (Edmund Horner) (10)</li>
<p>
各種補助プロセス（autovacuum launcher や background writer など）に対する application_name、client_hostname、query 属性が正しくないデータを見せる可能性がありました。
</p>
<li>ispell 辞書で不正な複合接辞の処理が修正されました。 (Arthur Zakirov) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
未初期化メモリアクセスが生じていました。
</p>
<li>テキスト列に対する SP-GiST インデックスで照合を伴う検索（不等演算子を使うインデックススキャン）が修正されました。 (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
C ロケール以外の場合に該当する検索では誤った行が選択されました。マルチバイト文字でも影響があります。
</p>
<pre>
（報告された例）
db=# CREATE TABLE t32 (a text collate "cs_CZ");
db=# INSERT INTO t32 VALUES ('c'), ('ch'); -- チェコ語では ch で１文字
db=# SELECT * FROM t32 where a &lt; 'd';
a
----
c
(1 row)

db=# CREATE INDEX ON t32 USING spgist (a);
db=# SET enable_seqscan TO off;
db=# SELECT * FROM t32 where a &lt; 'd';
a
----
c
ch
(2 rows)
</pre>
<li>探索値(traversalValue)を使う SP-GiST 演算子クラスでの問い合わせの間のメモリリークが防止されました。 (Anton Dign&ouml;s) (10)(9.6)</li>
<li>SP-GiST インデックスの初期構築時に、インデックスタプルの数を正しく数えるようになりました。 (Tomas Vondra) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これまで、タプル数はインデックス対象のテーブルと同じと報告されていましたが、これは部分インデックスの場合には誤りでした。
</p>
<li>GiST インデックスの VACUUM 中にインデックスタプル数を正しく数えるようになりました。 (Andrey Borodin) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これまではヒープタプルの見積数を返していました。それは単なる推測であり、間違っている場合もありましたし、インデックスが部分的なものである場合は必ず間違っていました。
</p>
<li>ストリーミングレプリケーションのスタンバイが継続している WAL レコード内で滞ってしまった場合の動作が修正されました。 (Kyotaro Horiguchi) (10)(9.6)(9.5)(9.4)</li>
<p>
今までは XLogPageRead() が既に読み込みを終えた部分であったとしても、WAL の最初からストリーミングレプリケーションを再開していました。これにより稀にストリーミングレプリケーションが止まってしまう現象が生じました。
</p>
<li>walsender が再起動した際に、WAL データを二重に処理してしまう可能性が排除されました。 (Craig Ringer) (10)(9.6)(9.5)(9.4)</li>
<p>
walsender が $PGDATA/pg_replslot 内にデータを残した状態で終了してしまった場合、次の walsender がそこに残ったデータを捨てることなく開始して、データが重複する可能性がありました。
</p>
<li>ロジカルレプリケーションにおいて、型の OID がローカルとリモートで一致すると仮定しないように修正されました。 (Masahiko Sawada) (10)</li>
<p>
リモートのものをローカルのものとして使用しており、「ERROR: cache lookup failed for type XYZ」エラー、もしくはランダムに意図していないものが選択される可能性がありました。
</p>
<li>scalarltsel と scalargtsel が組み込みデータ型以外の型も受け付けるようになりました。 (Tomas Vondra) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
ユーザ定義の数値データ型で予期せぬ「ERROR: unsupported type: nnnnn」が生じることが報告されました。
</p>
<li>大量のクエリ結果が収集された後にサーバエラーが報告された時のlibpq が消費するメモリ量が削減されました。 (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
エラーメッセージをパース後にクエリ結果を捨てていましたが、事前に捨てるようになりました。その結果メモリ消費量を抑え out-of-memory になる危険性が軽減されました。
</p>
<li>ecpg 内の連続した free() によるクラッシュが修正されました。 (Patrick Krecker, Jeevan Ladhe) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>MSVC を使用したビルドにて ecpg が long long int 変数を扱えるように修正されました。 (Michael Meskes, Andrew Gierth) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>ダンプ内でリストを値とする GUC 変数に対する間違ったクォーテーションが修正されました。 (Michael Paquier, Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
pg_dump の結果で local_preload_libraries、session_preload_libraries、shared_preload_libraries と temp_tablespaces 変数に対するクォーテーションの付け方が間違っていました。もしもこれらの設定が CREATE FUNCTION ... SET や ALTER DATABASE/ROLE ... SET にある場合に問題になる可能性がありました。
</p>
<li>pg_recvlogicalが v10より前のPostgreSQLに対して失敗しないように修正されました。 (Michael Paquier) (10)(9.6)(9.5)(9.4)</li>
<p>
前回のリリースにて変更された search_path へのプロテクトが追加されていましたが、10 より前のバージョンではレプリケーション接続で SQL を受け付けないため有効でなく、構文エラーが発生する可能性がありました。
</p>
<li>pg_rewind 起動中にソースサーバで削除されたファイルがターゲットサーバでも確実に削除されるようになりました。 (Takayuki Tsunakawa) (10)(9.6)(9.5)</li>
<p>
失敗していた場合、ターゲットサーバがデータ不整合に陥っていました。
</p>
<li>pg_rewind がデフォルト以外のテーブルスペースにあるテーブルデータを正しく扱えるように修正されました。 (Takayuki Tsunakawa) (10)(9.6)(9.5)</li>
<li>PL/pgSQL 整数 FOR ループのオーバーフロー処理が修正されました。 (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
以前のコードではいくつかの GCC 以外のコンパイラではオーバーフローが検知されず、無限ループに陥っていました。
</p>
<li>PL/Python のリグレッションテストが Python 3.7 の環境でも成功するように調整されました。 (Peter Eisentraut) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>MSVC ビルドにて PL/Python と関連モジュールのリグレッションテストが Python 3 でもサポートされました。 (Andrew Dunstan) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>contrib/bloom インデックスの初期ビルドでのエラーが修正されました。 (Tomas Vondra, Tom Lane) (10)(9.6)</li>
<p>
インデックス内のタプル数を推測でなく確実にカウントすることで最後のタプルが取りこぼされる可能性がなくなりました。
</p>
<li>b64_encode と b64_decode 内部関数の名前が Solaris 11.4 の組み込み関数名と被らないように変更されました。 (Rainer Orth) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
b64_encode は pg_base64_encode に、b64_decode は pg_base64_decode に名前変更されました。
</p>
<li>タイムゾーンライブラリが IANA の tzcode release 2018e と同期されました。 (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これは zic タイムゾーンデータコンパイラが負の夏時間オフセットで動作するように修正します。PostgreSQL はこのようなタイムゾーンデータに直ちには対応しませんが、zic を IANA から直接取得したタイムゾーンデータで使う可能性がありますので、確実を期してアップデートされました。
</p>
<li>タイムゾーンデータファイルが tzdata release 2018d に更新されました。 (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
パレスチナと南極（ケーシー基地）の DST 法の変更、ポルトガルとその植民地、エンダーベリー島、ジャマイカ、タークス・カイコス諸島、ウルグアイの歴史的修正が加えられています。
</p>
<li>Microsoft Visual Studio 2015 でのビルドがサポートされました。 (Michael Paquier) (9.5)</li>
<p>
以前のリリースでも修正が行われていましたが、修正もれがありました。
</p>
</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>
