<?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.6 &#8211; SRA OSS Tech Blog</title>
	<atom:link href="https://www.sraoss.co.jp/tech-blog/tag/postgresql-9-6-6/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:23 +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.6 &#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.7 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/9-6-7/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Thu, 15 Feb 2018 01:00:18 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 9.6]]></category>
		<category><![CDATA[PostgreSQL 9.6.6]]></category>
		<category><![CDATA[PostgreSQL 9.6.7]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=487</guid>

					<description><![CDATA[このリリースは 9.6.6 からの修正リリース(2018/2/8リリース)です。 9.6.x からのアップデートではダンプ、リストアは不要です。 また、9.6.6 より前のバージョンからアップデートを行う場合は 9.6. ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 9.6.6 からの修正リリース(2018/2/8リリース)です。<br />
9.6.x からのアップデートではダンプ、リストアは不要です。</p>
<p>また、9.6.6 より前のバージョンからアップデートを行う場合は <a href="/tech-blog/pgsql/9-6-6/">9.6.6 に関する技術情報</a>を参照してください。</p>
<p><span id="more-487"></span></p>
<h3>PostgreSQL 9.6.6 から 9.6.7 への変更点</h3>
<p>10.2、9.6.7、9.5.11、9.4.16、9.3.21 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol>
<li>複数の式を含むパーティションキーの処理が修正されました。  (&Aacute;lvaro Herrera, David Rowley) (10)</li>
<p>
本障害はクラッシュをひき起こす他、攻撃を意図した作りこまれた入力によってサーバプロセス上の任意のメモリが露出してしまう可能性がありました。
</p>
<p>
PARTITION BY 構文を使ったテーブルパーティショニングで「PARTITION BY RANGE ((col1 / 1000), substr(col2, 1, 5))」など、複数の式でパーティションキーを指定した場合に問題が生じます。 (CVE-2018-1052)
</p>
<pre>
（クラッシュ発生例 - CREATE TABLE でクラッシュします）
db1=# CREATE TABLE ptest (col1 int, col2 text, col3 text)
        PARTITION BY RANGE ((col1 / 1000), substr(col2, 1, 5));
db1=# CREATE TABLE ptest_1 PARTITION OF ptest
        FOR VALUES FROM (0,'00000') TO (1, '10000');
db1=# CREATE TABLE ptest_2 PARTITION OF ptest
        FOR VALUES FROM (0,'10000') TO (1, '20000');
server closed the connection unexpectedly
</pre>
<li>pg_upgrade で作られる全ての一時ファイルが誰でも見れるパーミッションにならないように修正されました。  (Tom Lane, Noah Misch) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
pg_upgrade は通常は一時ファイルを実行ユーザのみ読み書きできるように制限します。しかしながら、実行したユーザの umask 設定で許可されていると、「pg_dumpall -g」の出力を含む一時ファイルがグループ参照可能、または、全ユーザ参照可能、更には書き込み可能になることがありました。
</p>
<p>
複数ユーザで使用するマシンにおいて、umask 設定や実行するディレクトリのパーミッションによっては、データベースのパスワードが露出することになります。(CVE-2018-1053)
</p>
<li>KEY SHARE 行ロック中に更新されたタプルの VACUUM 処理が修正されました。  (Andres Freund, &Aacute;lvaro Herrera) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
一部のケースで VACUUM はこのようなデッドタプルの除去に失敗していました。これによりデータ破損を起こすことがあります。
</p>
<li>新たなオーバーフローページを追加した後にハッシュインデックスのメタページを壊してしまう障害が修正されました。  (Lixian Zou, Amit Kapila) (10)</li>
<p>
インデックス破損をもたらす可能性があります。
</p>
<li>VACUUM が常に GIN インデックスのペンディングリストをクリーンアップするようになりました。  (Masahiko Sawada) (10) (9.6)</li>
<p>
これには削除済みのインデックスエントリが確実に除去されることが必要です。従来コードでは他プロセスが同時にクリーンアップを実行しているとき VACUUM がクリーンアップをスキップするのを許していて、その結果、無効なエントリがインデックスに置き去りにされてしまう危険がありました。
</p>
<li>一部の LSN 取得で不十分なバッファロックが修正されました。  (Jacob Champion, Asim Praveen, Ashwin Agrawal) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
この誤りにより同時データ読み込みにおいて誤動作のおそれがありました。どのような結果が生じるか完全には分かっていません。
</p>
<li>結果が GROUPING SETS で使われるサブクエリの平坦化を伴う場合に生じる誤った問い合わせ結果が修正されました。  (Heikki Linnakangas) (10) (9.6) (9.5)</li>
<li>リストパーティショニング制約の boolean または配列型によるパーティションキーに対する扱いが修正されました。  (Amit Langote) (10)</li>
<p>
必ず col = ANY(ARRAY[val1, val2, ...]) という式で制約が書かれていたものが、col = val1 OR col = val2 という形でも生成されるようになります。
</p>
<li>ALTER TABLE .. NO INHERIT での子テーブル削除が同時実行されたとき、継承テーブルの問い合わせで、不要なエラーを回避するようになりました。  (Tom Lane) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
以下のエラーが発生していました。
</p>
<pre>
ERROR:  could not find inherited attribute "col1" of relation "tbl1"
</pre>
<li>CREATE INDEX CONCURRENTLY を複数同時実行したときに本来必要のない偽性のデッドロックエラーが生じていたのが修正されました。  (Jeff Janes) (10) (9.6) (9.5) (9.4)</li>
<li>VACUUM FULL において、pg_class のテーブルサイズ属性をより早くに更新するようになりました。  (Amit Kapila) (10)</li>
<p>
テーブルのハッシュインデックスを再構築するとき、初期ハッシュサイズを定めるのに pg_class 統計情報が使われます。本修正で古い情報が使われるのを防ぐことができます。
</p>
<li>列がない場合における UNION/INTERSECT/EXCEPT が修正されました。  (Tom Lane) (10)</li>
<p>
例えば以下は同じ行内容（列なし行）なので結果は「1 row」であるべきです。
</p>
<pre>
（修正前バージョンの動作例）
db1=# SELECT FROM generate_series(1,5) UNION SELECT FROM generate_series(1,3);
--
(8 rows)
</pre>
<li>TYPE を指定するテーブルやパーティションで IDENTITY 列が使えなくなりました。  (Michael Paquier) (10)</li>
<p>
使用したときクラッシュが生じていました。このような使い方は今のところサポートされない仕様とします。
</p>
<pre>
（クラッシュ発生例）
db1=# CREATE TYPE type13 AS (f1 integer, f2 text, f3 bigint);
db1=# CREATE TABLE tbl13 OF type13 (f1 WITH OPTIONS GENERATED ALWAYS AS IDENTITY);
The connection to the server was lost. Attempting reset: Failed.
</pre>
<li>IDENTITY 列に挿入するときに正しいデフォルト値を適用するように様々な誤りが修正されました。  (Michael Paquier, Peter Eisentraut) (10)</li>
<p>
いくつかの場合、特に COPY、ALTER TABLE .. ADD COLUMN において、期待されたデフォルト値が適用されず、NULL 値が挿入されていました。
</p>
<li>継承テーブルに外部子テーブルが含まれている場合のエラーが修正されました。  (Etsuro Fujita) (10) (9.6) (9.5)</li>
<p>
通常テーブルと外部テーブルが継承テーブルのツリーに混在していると、UPDATE、DELETE の問い合わせで不正なプランが作られました。一部のケース、特に行レベルトリガが外部子テーブルにある場合に、目に見えるエラーとしてあらわれます。
</p>
<p>
UPDATE 文で以下のエラーが出るケースが報告されました。
</p>
<pre>
ERROR:  could not open file "base/12345/34567": No such file or directory
</pre>
<li>LATERAL 中の VALUES の中の相関サブクエリで生じていたエラーが修正されました。  (Tom Lane) (10) (9.6) (9.5) (9.4) (9.3)</li>
<pre>
（サブクエリ無しで実行できる例とエラー例）
db2=# SELECT * FROM generate_series(1, 2) g,
        LATERAL (VALUES (g*3), (g*5)) AS v(x);
 g | x
---+----
 1 |  3
 1 |  5
 2 |  6
 2 | 10
(4 rows)

db2=# SELECT * FROM generate_series(1, 2) g,
        LATERAL (VALUES ((SELECT g*3)), ((SELECT g*5))) AS v(x);
ERROR:  SubPlan found with no parent plan
</pre>
<li>LATERAL サブクエリ内の入れ子になった UNION ALL を伴う場合にプランナが「ERROR:  could not devise a query plan for the given query」でエラーになるのが修正されました。  (Tom Lane) (10) (9.6) (9.5) (9.4) (9.3)</li>
<li>関数依存性の統計が boolean 列にも使えるようになりました。  (Tom Lane) (10)</li>
<p>
これまでは拡張統計の定義ができて情報収集も行われるにもかかわらず、プランナがこれらを適用しませんでした。
</p>
<li>グルーピング列において複数行を返す関数を含むサブクエリにより出力されたグループの数を過小評価しないようになりました。  (Tom Lane) (10)</li>
<p>
PostgreSQL 10.0、10.1 では「SELECT DISTINCT unnest(foo)」のようなケースで旧リリース系列よりもより少ない行数見積が得られており、最適でないプランが選択される可能性がありました。
</p>
<li>ロジカルレプリケーションワーカでのトリガ利用が修正されました。  (Petr Jelinek) (10)</li>
<li>ロジカルデコーディングがクラッシュしたトランザクションのファイルを正しくクリーンアップするように修正されました。  (Atsushi Torikoshi) (10) (9.6) (9.5) (9.4)</li>
<p>
ロジカルデコーディングは多数の WAL レコードを生成するトランザクションのために、溢れた WAL レコードをディスクに書き出すことがあります。通常これらのファイルはトランザクションのコミットまたはアボートのレコードに達した後にクリーンアップされます。しかし、そのようなレコードがずっと見つからない場合、削除を行うコードは不適切な動作をしていました。
</p>
<li>大きいトランザクションの処理中に wal sender がタイムアウトせず、割り込みに応答しない動作が修正されました。  (Petr Jelinek) (10) (9.6) (9.5) (9.4)</li>
<li>レプリケーション起点を削除する間の競合状態が修正されました。  (Tom Lane) (10)</li>
<p>
削除処理が無期限に待たされる可能性がありました。
</p>
<li>pg_read_all_stats ロールのメンバーは wal sender の統計を pg_stat_replication ビューで見れるようになりました。  (Feike Steenbergen) (10)</li>
<p>
pg_read_all_stats ロールはあらかじめ用意されているロールの一つです。
</p>
<li>ベースバックアップ送出中の wal sender が pg_stat_activity ビューで active として見えるようになりました。  (Magnus Hagander) (10)</li>
<p>
これまで idle と表示されていました。
</p>
<li>pg_hba_file_rules ビューでの scram-sha-256 認証メソッドの報告が修正されました。  (Michael Paquier) (10)</li>
<p>
これまでは「scram-sha256」と表示されていて、ユーザに混乱をもたらす恐れがあるので綴りが修正されました。
</p>
<li>他の権限検査関数と同様に WITH GRANT OPTION に対応するように has_sequence_privilege() 関数が修正されました。  (Joe Conway) (10) (9.6) (9.5) (9.4) (9.3)</li>
<li>UTF8 エンコーディングを使うデータベースで、異なるエンコーディングを主張するあらゆる XML 宣言を無視するようになりました。  (Pavel Stehule, Noah Misch) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
XML 文字列は常にデータベースのエンコーディングで格納されます。そのため、libxml に他のエンコーディング宣言で動作できるようにすることは誤った結果をもたらしました。UTF8 以外のエンコーディングでは何にせよ非 ASCII の XML データのサポートは保証されませんので、バグ互換性のために以前の振る舞いを維持します。
</p>
<p>
この変更は xpath() と関連する関数のみに影響があります。他の XML 処理コードは既にこのように振舞います。
</p>
<li>将来のマイナープロトコルバージョンに対する前方互換性が提供されました。  (Robert Haas, Badrul Chowdhury) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
本変更でクライアントがバージョン 3.x を要求できるようになりました。これにより将来のプロトコルのマイナーバージョンアップを迅速に適用できるようになるはずです。
</p>
<p>
これまで、プロトコルバージョン番号のメジャー部とマイナー部の間で機能的な違いがなく、PostgreSQL サーバは 3.0 より新しいバージョンの使用を単に拒絶していました。
</p>
<li>SCRAM チャンネルバインドに対応したクライアント（バージョン 11 以降の libpq など）がバージョン 10 サーバに接続できるようになりました。  (Michael Paquier) (10)</li>
<p>
バージョン 10 にはこの機能はありません。加えて、接続時のこれを使うかどうかのネゴシエーションが誤って行われていました。
</p>
<li>内部実装関数 ConditionVariableBroadcast() が書き換えられました。  (Tom Lane, Thomas Munro) (10)</li>
<p>
繰り返し不運なタイミングが生じるとプロセスが無限ループに陥る恐れがありました。バージョン 10 では条件変数の使用が限定されているため、これはパラレルインデックススキャンと一部のレプリケーションスロット上の操作にだけ影響があります。
</p>
<li>サブトランザクション（SAVEPOINT 等）がアボートするときに、条件変数の待機を正しくクリーンアップするようになりました。  (Robert Haas) (10)</li>
<li>条件変数を待機している子プロセスは postmaster プロセスが終了したなら確実に直ちに終了するようになりました。  (Tom Lane) (10)</li>
<li>二つ以上の Gather ノードを使う並列問い合わせでのクラッシュが修正されました。  (Thomas Munro) (10)</li>
<li>並列インデックススキャンでの削除された、あるいは half-dead のインデックスページを処理しているときのハングアップが修正されました。  (Amit Kapila) (10)</li>
<li>並列ビットマップスキャンで共有メモリセグメントを割り当てできなかったときのクラッシュが回避されました。  (Robert Haas) (10)</li>
<li>パラレルワーカプロセスの開始失敗をうまく処理できるようになりました。  (Amit Kapila, Robert Haas) (10) (9.6) (9.5) (9.4)</li>
<p>
これまで並列問い合わせは、fork() の失敗や他の低確率な問題でワーカが開始できないときにハングアップしがちでした。
</p>
<li>並列問い合わせを開始する際にパラレルワーカを一つも取得できなかった場合の不要な失敗を回避するようになりました。  (Robert Haas) (10)</li>
<li>パラレルワーカからの EXPLAIN 統計の収集が修正されました。  (Amit Kapila, Thomas Munro) (10) (9.6)</li>
<li>パラレルワーカに渡される問い合わせ文字列が確実に正しく NULL 終端するようになりました。  (Thomas Munro) (10)</li>
<p>
パラレルワーカからの postmaster ログ出力でゴミが吐き出されるのを防止します。
</p>
<li>__int128 を使う場合に安全でないアライメントの想定を回避するようになりました。  (Tom Lane) (10) (9.6) (9.5)</li>
<p>
これまでに知られている症状は一部の並列集約問い合わせでクラッシュすることです。
</p>
<li>非常に深く入れ子になった集合操作 (UNION/INTERSECT/EXCEPT) のプラン作成での、スタックオーバーフローによるクラッシュが防止されました。  (Tom Lane) (10) (9.6) (9.5) (9.4) (9.3)</li>
<li>マージ結合内側のインデックススキャンにおける EvalPlanQual リチェック処理中のクラッシュを回避しました。  (Tom Lane) (10)</li>
<p>
これは同時に選択された行の更新が行われているときに、結合を伴う UPDATE または SELECT FOR UPDATE を行った場合にのみ発生します。
</p>
<li>テーブルに計算不能な拡張統計が定義されているときの、autovacuum のクラッシュが修正されました。  (&Aacute;lvaro Herrera) (10)</li>
<li>pg_hba.conf にある種の LDAP URL が現れた場合の NULL ポインタによるクラッシュが修正されました。  (Thomas Munro) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
LDAP URL としてホスト名の無い「ldap://」やベース DN の無い「ldap://localhost」などがあると、pg_hba.conf を読み込む際にクラッシュが発生します。バインド DN が無い設定の場合は NULL ポインタをエラーメッセージで出力しようとして、一部のプラットフォームではクラッシュするかもしれません。
</p>
<li>単純ハッシュテーブルの過度な成長によるモリ不足エラーが防止されました。  (Tomas Vondra, Andres Freund) (10)</li>
<p>
以下のような単純な SELECT 文で応答が無くなったり、メモリ不足エラーになる動作が報告されていました。
</p>
<pre>
SELECT DISTINCT bigint_val FROM tbl46 ;
</pre>
<li>PL/pgSQL ドキュメントにおける INSTR() 関数のサンプルコードが修正されました。  (Yugo Nagata, Tom Lane) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
Oracle のものと同じ動作をする instr 関数と記載されていますが、第 3 引数が負の値であった場合、第 4 引数がゼロまたは負の値であった場合の動作が Oracle の instr 関数と異なっていて、修正されました。
</p>
<li>ACL（アクセス制御）、コメント、およびセキュリティラベルのエントリをアーカイブ出力フォーマットで確実に識別できるように pg_dump が修正されました。  (Tom Lane) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
アーカイブするエントリに付与するタグが修正されました。修正前の動作は、LARGE OBJECT で始まるタグを見てラージオブジェクト関連のエントリと認識しようとします。このため、スキーマ（オブジェクト定義）ではなくデータとして間違って分類されて、スキーマのみ、あるいは、データのみのダンプの際に望ましくない結果になる可能性があります。
</p>
<p>
この変更は pg_restore --list の出力で目に見える結果としてあらわれます。
</p>
<li>pg_rewind の実装関数 copy_file_range の名前が、新たな Linux システムコール名との競合を回避するため変更されました。  (Andres Freund) (10) (9.6) (9.5)</li>
<li>ecpg で、正しい長さを持たない指示子の配列を見つけてエラーを出すようになりました。  (David Rader) (10) (9.6) (9.5) (9.4) (9.3) </li>
<li>contrib/cube の cube ~&gt; int 演算子の振る舞いが KNN 検索と互換性を持つように変更されました。  (Alexander Korotkov) (10) (9.6)</li>
<p>
第二引数（次元指定）の意味が、様々な次元数であっても、どの値が選ばれるか予想可能になるように変更されました。
</p>
<p>
これは非互換の変更です。これを使った式インデックスは再作成が必要ですし、マテリアライズドビューはリフレッシュが必要です。
</p>
<li>contrib/hstore で、ソースと宛先を同一にして memcpy() を使ったことによる libc のアサート発生が回避されました。  (Tomas Vondra) (10) (9.6) (9.5) (9.4) (9.3)</li>
<li>contrib/pageinspect でタプルの NULL ビットマップの誤った表示が修正されました。  (Maksim Milyutin) (10) (9.6)</li>
<li>contrib/pageinspect の hash_page_items() 関数の誤った出力が修正されました。  (Masahiko Sawada) (10)</li>
<li>contrib/postgres_fdw でリモート結合を伴うプラン作成時に「ERROR:  outer pathkeys do not match mergeclauses」というプランナエラーが出るのが回避されました。  (Robert Haas) (10) (9.6)</li>
<li>contrib/postgres_fdw で、GROUP BY が重複している場合のプランナのエラーが回避されました。  (Jeevan Chalke) (10)</li>
<p>
GROUP BY の重複とは以下のようなケースです。選択リストの1番目も2番目もc1列で同一列ですが、どちらも GROUP BY 対象です。
</p>
<pre>
SELECT c1, c1 FROM ft56 WHERE c1 &gt; 5 GROUP BY 1, 2;
</pre>
<p>
以下のエラーが報告されました。
</p>
<pre>
ERROR:  targetlist item has multiple sortgroupref labels
</pre>
<li>macOS むけの PostgreSQL 自動起動のやり方について、現代的なサンプルが提供されるようになりました。  (Tom Lane) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
contrib/start-scripts/osx は廃れた基盤を使っていて近年の macOS リリースでは動作しません。新たに contrib/start-scripts/macos にて新たな起動基盤を使ったスクリプトが提供されます。
</p>
<li>Windows でビルド時に設定で指定する OpenSSL ライブラリの誤選択が修正されました。  (Andrew Dunstan) (10) (9.6) (9.5) (9.4) (9.3)</li>
<li>libperl の MinGW ビルドバージョンのリンクに対応しました。  (Noah Misch) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
これはいくつかの一般的な Windows むけ Perl 配布物で PL/Perl をビルド可能にします。
</p>
<li>MSVC ビルドが 32bit libperl が -D_USE_32BIT_TIME_T を必要とするかを検査するように修正されました。  (Noah Misch) (10) (9.6) (9.5) (9.4) (9.3)</li>
<li>Windows で postmaster 起動時にクラッシュダンプハンドラをより早期にインストールするようになりました。  (Takayuki Tsunakawa) (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
これにより起動時初期の従来ダンプが生成されなかった障害で、コアダンプ取得が可能になるでしょう。
</p>
<li>Windows で postmaster 起動時の早い時点でメッセージを出力するときの、文字エンコーディング変換関連のクラッシュが回避されました。  (Takayuki Tsunakawa) (10) (9.6) (9.5) (9.4) (9.3)</li>
<li>既存の NetBSD の Motorola 68K のスピンロックのコードを OpenBSD むけにも使用するようになりました。  (David Carlier) (10) (9.6) (9.5) (9.4) (9.3)</li>
<li>Motorola 88K のスピンロックに対応しました。  (David Carlier) (10) (9.6) (9.5) (9.4) (9.3)</li>
<li>タイムゾーンデータファイルが tzdata release 2018c に更新されました。   (10) (9.6) (9.5) (9.4) (9.3)</li>
<p>
ブラジル、サントメ・プリンシペの夏時間法の変更、ボリビア、日本、南スーダンの歴史的な修正が含まれます。US/Pacific-New ゾーンは削除されました（これは America/Los_Angeles の別名にすぎません）。</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.6 に関する技術情報</title>
		<link>https://www.sraoss.co.jp/tech-blog/pgsql/9-6-6/</link>
		
		<dc:creator><![CDATA[PostgreSQL技術グループ]]></dc:creator>
		<pubDate>Fri, 24 Nov 2017 01:00:04 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 9.6]]></category>
		<category><![CDATA[PostgreSQL 9.6.5]]></category>
		<category><![CDATA[PostgreSQL 9.6.6]]></category>
		<category><![CDATA[アップデート]]></category>
		<guid isPermaLink="false">https://www.sraoss.co.jp/tech-blog/?p=501</guid>

					<description><![CDATA[このリリースは 9.6.5 からの修正リリース(リリース日 2017/11/9)です。 9.6.x からのアップデートではダンプ、リストアは不要です。 ただし、項目4番に該当する場合は追加の対処が必要です。 また、9.6 ...]]></description>
										<content:encoded><![CDATA[<p>このリリースは 9.6.5 からの修正リリース(リリース日 2017/11/9)です。<br />
9.6.x からのアップデートではダンプ、リストアは不要です。<br />
ただし、項目4番に該当する場合は追加の対処が必要です。<br />
また、9.6.4 よりも前のバージョンからアップデートする場合には、<a href="/tech-blog/pgsql/9-6-4/ ">9.6.4 のリリース情報</a>も参照してください。</p>
<p>最終更新：2018/2/27</p>
<p><span id="more-501"></span></p>
<h3>PostgreSQL 9.6.5 から 9.6.6 への変更点</h3>
<p>10.1、9.6.6、9.5.10、9.4.15、9.3.20、9.2.24 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。</p>
<hr />
<ol>
<li>INSERT ... ON CONFLICT DO UPDATE がすべての場合にテーブルのアクセス許可とRLS（行単位セキュリティ）ポリシーをチェックするようになりました。  (Dean Rasheed) (10)(9.6)(9.5)</li>
<p>
INSERT ... ON CONFLICT DO UPDATE の更新パスは、競合インデックスの列に対してSELECT のアクセス許可を必要としますが、制約名で指定された競合の場合はアクセス許可をチェックできませんでした。
</p>
<pre>
（以下のようなテーブルに対して）
db1=# CREATE TABLE t1a (a int PRIMARY KEY);
db1=# GRANT UPDATE ON t1a TO foo ;
db1=# GRANT INSERT ON t1a TO foo ;

（これまでfooユーザで以下のSQLがエラーになりませんでした）
db1=&gt; INSERT INTO t1a VALUES (1) ON CONFLICT
        ON CONSTRAINT t1a_pkey DO NOTHING;
ERROR:  permission denied for relation t1a
</pre>
<p>
また、行単位セキュリティが有効なテーブルでは、(競合インデックスの指定方法に関係なく) テーブルの SELECT ポリシーに対して更新された行をチェックできませんでした。(CVE-2017-15099)
</p>
<li>json_populate_recordset()、jsonb_populate_recordset() の行型の不一致によるクラッシュが修正されました。  (Michael Paquier, Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)</li>
<p>
これらの関数は、FROM ... AS 句で指定された結果の行型を、指定されたタプル値の実際の行型と一致するかどうかをチェックせずに使用していました。チェックしなければクラッシュすることになりますが、サーバのメモリ内容が露出してしまう可能性もありました。(CVE-2017-15098)
</p>
<pre>
（以下は第一引数の行型とASで指定する型が一致しません）
db1=# SELECT * FROM json_populate_recordset(ROW(NULL::int,NULL::int), '[{"b":"2"},{"a":"3"}]') AS q (a text, b text);
ERROR:  invalid memory alloc request size 18446744073709551613
（クラッシュまたは奇妙なエラーが発生します）
</pre>
<li>$PGLOG を開く前に $PGUSER になるように、サンプルのサーバ起動スクリプトが修正されました。  (Noah Misch) (10)(9.6)(9.5)(9.4)(9.3)(9.2)</li>
<p>
以前は、root として実行中に postmaster ログファイルが開かれました。したがって、データベースの所有者は、$PGLOG をほかのファイルへのシンボリックリンクにすることで、ログメッセージが追加されて壊れ、別のシステムユーザに対して攻撃をしかけることができます。
</p>
<p>
デフォルトでは、これらのスクリプトはどこにもインストールされません。それらのスクリプトを使用しているユーザは、手動で再コピーするか、変更されたバージョンに同じ変更を適用する必要があります。既存の $PGLOG<br />
 ファイルが root 所有の場合は、修正されたスクリプトでサーバを再起動する前に、そのファイルを削除するか名前を変更する必要があります。(CVE-2017-12172)
</p>
<li>同時実行のテーブル拡張を正しく処理するようにBRINインデックスのサマリ処理が修正されました。  (&Aacute;lvaro Herrera) (10)(9.6)(9.5)</li>
<p>
以前は競合状態により、インデックスから一部のテーブル行が漏れる可能性がありました。この問題が過去に発生した状態から回復するには、既存の BRINインデックスを再構築する必要があります。
</p>
<li>BRINインデックスの同時更新中で発生する可能性のある障害が修正されました。  (Tom Lane) (10)(9.6)(9.5)</li>
<p>
これらの競合状態は「ERROR:  invalid index offnum: NN」や「ERROR:  corrupted BRIN index: inconsistent range map」のようなエラーにつながる可能性があります。
</p>
<li>ロジカルレプリケーションで、UPDATEを伝播するのに対象外の列をNULL に設定しないようになりました。  (Petr Jelinek) (10)</li>
<p>
これまで発行元テーブルが購読先テーブルよりも少ない列しか持たない場合、UPDATEをレプリケーションすると不足している列をNULLにしていました。これからは元の値を残すようになります。
</p>
<li>期待されたときにBEFORE ROW DELETEトリガを駆動するようにロジカルレプリケーションが修正されました。  (Masahiko Sawada) (10)</li>
<p>
以前はテーブルにBEFORE ROW UPDATEトリガとBEFORE ROW DELETEトリガの両方がないと駆動されませんでした。
</p>
<li>SPI を使用する関数、とくに手続き言語で記述された関数から、ロジカルデコーディングが呼び出されたときのクラッシュが修正されました。  (Tom Lane) (10)(9.6)(9.5)(9.4)</li>
<p>
以下のようなロジカルデコーディングの関数を呼び出すだけの PL/pgSQL のユーザ定義関数を実行してクラッシュする例が報告されました。
</p>
<pre>
CREATE FUNCTION logical_replication_slot_lsn_delta(slot text)
  RETURNS pg_lsn AS $$
    BEGIN
      RETURN location FROM pg_logical_slot_peek_changes(slot,null,1) ;
    END
$$ LANGUAGE plpgsql;
</pre>
<li>INSERT、UPDATE、DELETE の対象テーブルを調べるときに、CTE を無視するようになりました。また、スキーマ修飾された対象テーブル名とトリガ遷移テーブル名が一致するのを防止するようになりました。  (Thomas Munro) (10)</li>
<p>
これにより、DMLコマンドに付加されたCTEに対するバージョン10より前の動作が、復元されます。
</p>
<pre>
（10.0では以下がエラーになっていました）
db1=# CREATE TABLE t9 (i int);
CREATE TABLE
db1=# WITH test AS (SELECT 123) INSERT INTO t9 VALUES (1);
ERROR:  relation "t9" cannot be the target of a modifying statement
</pre>
<li>FILTERテストが失敗した行で、集約関数の引数式を評価しなくなりました。  (Tom Lane) (10)</li>
<p>
これにより、バージョン10より前 (およびSQL標準) の動作が復元されます。
</p>
<pre>
（10.0では以下がエラーになっていました）
db1=# CREATE TABLE t10 AS SELECT generate_series(0, 10)::real AS r;
SELECT 11
db1=# SELECT sum(1/r) FILTER (WHERE r &gt; 0) FROM t10;
ERROR:  division by zero
</pre>
<li>複数の GROUPING SETS列に同じ単純変数が含まれているときの、誤った問い合わせ結果が修正されました。  (Tom Lane) (10)(9.6)</li>
<pre>
（このようなデータに対して）
db1=# CREATE TABLE t11 (i1 int, i2 int);
db1=# INSERT INTO t11 VALUES (1,100),(2,201),(2,202),(3,301),(3,302),(3,303);

（以下のように応答すべきところが）
db1=# SELECT i1, i1 AS a1, count(i2) FROM t11 GROUP BY i1, ROLLUP (a1);
 i1 | a1 | count
----+----+-------
  1 |  1 |     1
  3 |  3 |     3
  2 |  2 |     2
  2 |    |     2
  3 |    |     3
  1 |    |     1
(6 rows)

（修正前バージョンでは以下のようになっていました）
db1=# SELECT i1, i1 AS a1, count(i2) FROM t11 GROUP BY i1, ROLLUP (a1);
 i1 | a1 | count
----+----+-------
  1 |  1 |     1
  3 |  3 |     3
  2 |  2 |     2
  2 |  2 |     2
  3 |  3 |     3
  1 |  1 |     1
(6 rows)
</pre>
<li>SELECT の対象リスト内の集合を返す関数を評価している間の、問い合わせ処理内限定のメモリリークが修正されました。  (Tom Lane) (10)</li>
<li>汎用的な計画をもつプリペアド文の並列実行ができるようになりました。  (Amit Kapila, Kuntal Ghosh) (10)</li>
<li>ネストされた問い合わせの誤った並列化の判断が修正されました。  (Amit Kapila, Kuntal Ghosh) (10)(9.6)</li>
<li>最近使用されたロールが削除されたときに、パラレルクエリ処理が失敗しないように修正されました。  (Amit Kapila) (10)(9.6)</li>
<li>BitmapOrノードの下に BitmapAndノードをもつビットマップスキャンを並列実行するとクラッシュする問題が修正されました。  (Dilip Kumar) (10)</li>
<li>明示的な VARIADIC引数を正しく処理するようにjson_build_array()、json_build_object()、およびそれらの jsonb に相当する関数が修正されました。  (Michael Paquier) (10)(9.6)(9.5)(9.4)</li>
<pre>
（明示的な VARIADIC引数とは以下のような呼び出し方で、以下は誤った応答です）
db=# SELECT jsonb_build_array(VARIADIC '{a,b,c,d}'::text[]);
   jsonb_build_array
------------------------
 [["a", "b", "c", "d"]]
(1 row)

（以下の呼び出し方であれば該当しません）
SELECT jsonb_build_array('a','b','c','d');
  jsonb_build_array
----------------------
 ["a", "b", "c", "d"]
(1 row)
</pre>
<li>クラッシュや作業項目の気づかぬうちの消失を防ぐために autovacuum の作業項目ロジックが修正されました。  (&Aacute;lvaro Herrera) (10)</li>
<li>ビューの最後に列が追加されたときの、めったに発生しないクラッシュが修正されました。  (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)(9.2)</li>
<p>
ここでのビューに列を追加するとは、既存のビューをCREATE OR REPLACE VIEWコマンドでより列が多い定義に上書きすることを指します。
</p>
<li>ビューまたはルールに FieldSelect または FieldStore 式ノードが含まれている場合に、適切な依存関係を記録するようになりました。  (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)(9.2)</li>
<p>
これらの依存関係がないと、失敗させる必要があるときに列またはデータ型の DROP を通過させることができ、あとでビューまたはルールを使用してエラーが発生する可能性があります。このパッチは、既存のビュー/ルールを保護するためのものではなく、今後作成されるもののみを保護します。
</p>
<p>
FieldSelect と FieldStore は実装上の要素名です。本障害により、TYPE定義を含むデータベースオブジェクトのCASCADE付きDROPで「ERROR:  could not open relation with OID 34567」などの奇妙なエラーが報告されました。
</p>
<li>範囲データ型がハッシュできるかを正しく検出するようになりました。  (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)(9.2)</li>
<p>
プランナは、誤って範囲型がハッシュ結合またはハッシュ集約で使用するためにハッシュできると仮定していましたが、実際には範囲の派生元型にハッシュサポートがあるかどうかをチェックする必要があります。いずれにしても、すべての組み込みの範囲型はハッシュ可能なので、それらには影響しません。
</p>
<li>関数従属性の統計を調べるときに、RelabelType式ノードを正しく無視するようになりました。  (David Rowley) (10)</li>
<p>
これにより、たとえば、varchar列の拡張統計を適切に使用することができます。
</p>
<li>順序集合集約間の遷移状態の共有を防ぐようになりました。  (David Rowley) (10)(9.6)</li>
<p>
これにより、組み込みの順序集合集約でクラッシュし、おそらくユーザ記述の集約でもクラッシュします。バージョン 11 以降では、このようなケースを安全に処理するための規定が含まれる予定ですが、リリースされたブランチでは最適化を無効にするだけです。
</p>
<li>statement_timeout が先に発生した場合に、idle_in_transaction_session_timeout が無視されないようになりました。  (Lukas Fittl) (10)(9.6)</li>
<li>XID周回に起因する NOTIFYメッセージの確率の低い損失が修正されました。  (Marko Tiikkaja, Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)(9.2)</li>
<p>
セッションが問い合わせを実行せず、単に通知を聞いた場合、20億回を超えるトランザクションでは、同時にコミットするトランザクションからいくつかの通知が欠落していきました。
</p>
<li>特に新たな APFSファイルシステムを使用したときの、macOS のパフォーマンス上の問題を回避するため、バルクファイルコピー中のデータフラッシュ要求の頻度が減らされました。  (Tom Lane) (10)(9.6)</li>
<li>トランザクション分離レベルが REPEATABLE READ 以上の場合に、 COPY の FREEZE オプションが機能するようになりました。  (Noah Misch) (10)(9.6)(9.5)(9.4)</li>
<p>
このケースは、以前のバグ修正（9.6.2、9.5.6、9.4.11で適用されたもの）によって意図せずに壊れていました。
</p>
<li>遷移計算がマージされている集約の最終関数に正しい <structname>Aggref</structname> ノードを返すように、<function>AggGetAggref()</function> が修正されました。(Tom Lane) (10)(9.6) </li>
<p>
これは集約関数のための内部実装関数です。
</p>
<li>pg_dump と psql の新しい問い合わせで、不十分なスキーマ修飾が修正されました。  (Vitaly Burovoy, Tom Lane, Noah Misch) (10)</li>
<p>
pg_dump がエラーで終わるケースが報告されました。
</p>
<li>psql の d の問い合わせで @&gt; 演算子を使用しないようになりました。  (Tom Lane) (10)</li>
<p>
これにより、parray_gin 拡張がインストールされているときに、競合する演算子が定義されたときの、問題を回避できます。
</p>
<li>テーブル空間パスを比較する前に両方のパスを正規化するように、pg_basebackup のマッチングが修正されました。  (Michael Paquier) (10)(9.6)(9.5)</li>
<p>
これは Windows でとくに役立ちます。
</p>
<li>libpq がユーザのホームディレクトリを必要としないように修正されました。  (Tom Lane) (10)(9.6)(9.5)(9.4)(9.3)(9.2)</li>
<p>
バージョン10.0では、~/.pgpass を読み込もうとしてホームディレクトリが見つからなかった場合、誤って致命的なエラーとして扱っていました。
</p>
<p>
~/.pg_service.conf を読むとき、バージョン10.0 と以前のリリースのブランチは同様の誤りを犯していましたが、サービス名が指定されていなければ、そのファイルが探し出されないので気づきませんでした。
</p>
<li>ecpglib で、standard_conforming_strings が設定されているかどうかに応じて、文字列リテラルのバックスラッシュを正しく処理するようになりました。  (Tsunakawa Takayuki) (10)(9.6)(9.5)(9.4)</li>
<li>ecpglib の Informix互換モードが、整数入力文字列の小数点部分を無視するようになりました。  (Gao Zengqi, Michael Meskes) (10)(9.6)(9.5)(9.4)(9.3)</li>
<li>check のような Make ターゲットに欠落している temp-install の前提条件が修正されました。  (Noah Misch) (10)(9.6)(9.5)</li>
<p>
make check のように動作することを意図したデフォルト以外のテスト手順では、一時的なインストールが最新であることを確認できませんでした。
</p>
<li>アラスカ、アピア、ビルマ、カルカッタ、デトロイト、アイルランド、ナミビア、パゴパゴの歴史的修正に加え、フィジー、ナミビア、北キプロス、スーダン、トンガ、タークス・カイコス諸島の DST 法の変更を含む tzdata リリース 2017c にタイムゾーンデータファイルが更新されました。   (10)(9.6)(9.5)(9.4)(9.3)(9.2)</li>
<li>ドキュメントで、HTML アンカーが大文字の文字列に戻されました。  (Peter Eisentraut) (10)</li>
<p>
ツールチェーンが変更されたため、10.0 のユーザマニュアルにはイントラページアンカーに小文字の文字列が含まれていたため、Web サイトのドキュメントの外部リンクが壊れていました。前の大文字の文字列の使用法に戻ります。
</p>
<li>無限の浮動小数点値を numeric 型に変換しようとする試みを適切に拒否するようになりました。  (Tom Lane, KaiGai Kohei) (9.6)(9.5)(9.4)(9.3)(9.2)</li>
<p>
以前は、この動作はプラットフォームに依存していました。
</p>
<li>プランナで、リレーションの明確性を決定する際に、RelabelType 式ノードを正しく無視するようになりました。  (David Rowley) (9.6)(9.5)</li>
<p>
これにより、副問い合わせに varchar 型の結果列がある場合に、意図した最適化が行われます。
</p>
<li>
DSM (動的共有メモリ）のメモリ要求が tmpfs で使用可能なスペースを超えたとき、Linux上での SIGBUSクラッシュを回避するようになりました。(Thomas Munro) (9.6)(9.5)(9.4)
</li>
<li>ネストされたトリガの起動時に発生する可能性の低いクラッシュが防止されました。  (Tom Lane) (9.6)(9.5)(9.4)(9.3)(9.2)</li>
<li>COPY または lo_export() でファイル作成が失敗した場合、umask設定が正しく復元されるようになりました。  (Peter Eisentraut) (9.6)(9.5)(9.4)(9.3)(9.2)</li>
<li>ANALYZE で列名が重複しているとき、よりよいエラーメッセージが表示されるようになりました。  (Nathan Bossart) (9.6)(9.5)(9.4)(9.3)(9.2)</li>
<li>log_statement が ddl に設定されているときに特定の SQLコマンドが使用されたときのエラーを防止するため、GetCommandLogLevel() で不足しているケースが追加されました。  (Michael Paquier) (9.6)</li>
<p>
改行で終わらない pg_hba.conf ファイルの最後の行の誤った解析が修正されました。
</p>
<li>正しい順序で GRANT コマンドを発行するように pg_dump が修正されました。  (Stephen Frost) (9.6)</li>
<li>PGresult の行数の整数オーバーフローを防ぐために libpq が修正されました。  (Michael Paquier) (9.6)(9.5)(9.4)(9.3)(9.2)</li>
<li>ポインタまたは配列変数による ecpg のスコープ外のカーソル宣言の処理が修正されました。  (Michael Meskes) (9.6)(9.5)(9.4)(9.3)</li>
<li>ecpg のリグレッションテストが Windows上で確実に動作するように修正されました。  (Christian Ullrich, Michael Meskes) (9.6)</li>
<li>時間帯ライブラリのコピーが IANA のリリース tzcode2017c と同期されました。  (Tom Lane) (9.6)(9.5)(9.4)(9.3)(9.2)</li>
<p>
これにより、さまざまな問題が修正されました。唯一、ユーザに見える可能性が高いのは、POSIX スタイルのゾーン名のデフォルトの DST ルールは、時間帯データディレクトリに posixrules ファイルが存在しない場合、数十年前のではなく、現在の米国の法律と一致していることです。
</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>
