PostgreSQL

ソフトウェアのスクリーンショット:
PostgreSQL
ソフトウェアの詳細:
バージョン: 10.5 / 11 Beta 3 更新
日付のアップロード: 16 Aug 18
ライセンス: 無料
人気: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQLは、MariaDB、MySQLまたはSQLiteプロジェクトのスタイルで、オープンソース、パワフル、信頼性、安定性、エンタープライズ対応およびフリーのオブジェクトリレーショナルデータベースシステムです。これは高度にカスタマイズすることができ、多くの魅力的な機能を含むACID(アトミック性、一貫性、分離性、耐久性)に準拠したデータベースサーバ/エンジンであり、前述のデータベースエンジンの優れた代替品となります。
機能の概要

主な機能には、外部キー、ビュー、結合、トリガーとストアドプロシージャのサポート、多言語のサポート、BOOLEAN、CHAR、INTEGER、NUMERIC、VARCHAR、INTERVAL、TIMESTAMPなどの幅広いSQLデータ型のサポートが含まれます。 DATE。

また、このソフトウェアには、あらゆる種類のマルチメディアファイル(ビデオ、オーディオ、写真)を含むバイナリラージオブジェクトの格納がサポートされており、開発者はC、C ++、Python、Perl、Ruby、 Java、.Net、Tcl、およびODBCプログラミング言語。

MVCC(マルチバージョン並行性制御)、表領域、マルチバイト文字エンコード、ポイント・イン・タイム・リカバリ、成熟したクエリ・オプティマイザとプランナ、非同期レプリケーション、オンライン・バックアップ、ネストされたトランザクションセーブポイント)、ホット・バックアップ、フォールト・トレランスのためのライト・ロギング、国際化文字セットのサポート、およびUnicodeサポート。


PostgreSQLの数

現時点では、PostgreSQLデータベースサーバはデータベースの無制限サイズをサポートしています。テーブルの最大サイズは32 TB、1行あたり1.6 TB、1フィールドあたり1 GB、テーブルあたりの無制限行、テーブルあたり250〜1600列列の種類によって異なりますが、テーブルごとに無制限のインデックスをサポートしています。


サポートされているオペレーティングシステム

PostgreSQLは、GNU / Linux、BSD、Solaris、HP-UX、AIX、SGI IRIX、Solaris、Tru64、Mac OS XおよびMicrosoft Windowsを含むすべてのメインストリームオペレーティングシステムで正常にテストされています。 PostgreSQLは、32ビットと64ビットの両方のアーキテクチャをサポートする、多くのLinuxディストリビューション用のプリコンパイル済みバイナリパッケージと同様に、ユニバーサルソースアーカイブとしてダウンロードできます。

/ p>

このリリースでは、2つのセキュリティ問題が修正されています。このリリースでは、過去3か月間に報告されたVACUUM、GIN&ハッシュインデックス、パラレルクエリー、論理レプリケーション、その他のバグに関する問題も修正されています。影響を受けるバージョンのPostgreSQLを使用しているすべてのユーザーは、できるだけ早く更新する必要があります。

バージョン10.4 / 11 Beta 1の新機能:

このリリースでは、2つのセキュリティ問題が修正されています。このリリースでは、過去3か月間に報告されたVACUUM、GIN&ハッシュインデックス、パラレルクエリー、論理レプリケーション、その他のバグに関する問題も修正されています。影響を受けるバージョンのPostgreSQLを使用しているすべてのユーザーは、できるだけ早く更新する必要があります。

バージョンの新機能:

pg_user_mappings.umoptionsの可視性をさらに制限し、ユーザマッピングオプションとして保存されたパスワードを保護する(Noah Misch)
CVE-2017-7486の修正は間違っていました。ユーザーは、関連する外部サーバーに対してUSAGE権限を持っていなくても、独自のユーザーマッピングでオプションを表示することができました。そのようなオプションには、ユーザー自身ではなくサーバー所有者が提供したパスワードが含まれている場合があります。このような場合は、information_schema.user_mapping_optionsにオプションが表示されないため、pg_user_mappingsはどちらも使用しないでください。 (CVE-2017-7547)
それだけで、このパッチは新しくinitdbされたデータベースの動作を修正します。この変更を既存のデータベースに適用する場合は、次の操作を行う必要があります。
postgresql.confにallow_system_table_mods = trueを追加した後でpostmasterを再起動します。 (ALTER SYSTEMをサポートしているバージョンでは、これを使用して構成を変更できますが、再起動する必要があります)。
クラスタの各データベースで、スーパーユーザーとして次のコマンドを実行します。
SET search_path = pg_catalog;
CREATE OR REPLACE VIEWを表示するpg_user_mappings AS
セレクト
U.oid AS umid、
S.oid AS srvid、
S.srvname AS srvname、

U.umuser AS umuser、
U.umuser = 0の場合の場合THEN
'パブリック'
ELSE
A.rolname
END AS usename、
CASE WHEN(U.umuser 0とA.rolname = current_user
AND(pg_has_role(S.srvowner、 'USAGE')
OR has_server_privilege(S.oid、 'USAGE')))
OR(U.umuser = 0 AND pg_has_role(S.srvowner、 'USAGE'))
OR(SELECT rolsuper FROM pg_authid where rolname = current_user)
それからU.umoptions
ELSE NULL END AS umoptions
FROM pg_user_mapping U
LEFT JOIN pg_authid A ON(A.oid = U.umuser)JOIN
pg_foreign_server S ON(U.umserver = S.oid);
template0とtemplate1データベースを含めることを忘れないでください。そうしないと、後で作成するデータベースに脆弱性が存在します。 template0を修正するには、一時的に接続を受け入れる必要があります。 PostgreSQL 9.5以降では、
ALTER DATABASE template0 WITH ALLOW_CONNECTIONSはtrueです。
template0を修正した後、
ALTER DATABASE template0 WITH ALLOW_CONNECTIONSはfalseです。
以前のバージョンでは、代わりに
UPDATE pg_database SET datallowconn = trueどこのdatname = 'template0';UPDATE pg_database SET datallowconn = falseどこにdatname = 'template0';
最後に、allow_system_table_mods構成設定を削除し、再度postmasterを再起動します。
すべてのパスワードベースの認証方法で空のパスワードを許可しない(Heikki Linnakangas)
libpqは空のパスワード指定を無視し、それらをサーバに送信しません。したがって、ユーザーのパスワードが空文字列に設定されている場合、psqlや他のlibpqベースのクライアントを介してそのパスワードでログインすることは不可能です。したがって、管理者は、パスワードを空に設定することは、パスワードログインを無効にすることと同等であると考えるかもしれません。ただし、変更または非libpqベースのクライアントでは、設定されている認証方法に応じてログインが可能です。特に、最も一般的な方法であるmd5は空のパスワードを受け入れました。すべてのケースで空のパスワードを拒否するようにサーバーを変更します。 (CVE-2017-7546)
lo_put()は、ターゲットラージオブジェクトに対するUPDATE権限をチェックします(Tom Lane、Michael Paquier)
lo_put()には必ずlowrite()と同じアクセス権が必要ですが、チェックがないため、すべてのユーザーがラージオブジェクトのデータを変更できます。 (CVE-2017-7548)pg_upgrade(Bruce Momjian)を使用してスタンバイサーバをアップグレードするプロセスに関するドキュメントを修正してください。
以前のドキュメントでは、pg_upgradeを実行した後でスタンバイサーバを同期させる前に、プライマリサーバの起動/停止をユーザに指示していました。このシーケンスは安全ではありません。
タプル更新チェーンの同時ロックを修正しました(Alvaro Herrera)
いくつかのセッションが、古いスナップショットを使用して非競合ロックモードでタプル更新チェーンを同時にロックし、それらがすべて成功した場合でも、競合状態によりいくつかのセッションが失敗する可能性があります(ライブタプルバージョンはないと判断します)。これは、外部キー検査が、確実に存在するが同時に更新されているタプルを見ることができないなどの結果をもたらした。
タプルをフリーズするときに潜在的なデータの破損を修正します。そのタプルのXMAXは、まだまだ興味深いメンバ(Teodor Sigaev)
メモリ内の10億以上のタプルをソートする際に、整数のオーバーフローやそれに伴うクラッシュを避ける(Sergey Koposov)
Windows上で、新しいプロセスで共有メモリのアドレス範囲を確保できなかった場合は、プロセス作成を再試行してください(Tom Lane、Amit Kapila)これにより、おそらくウイルス対策製品の干渉による子プロセスの起動の失敗がまれに修正されることが予想されます。
Windowsビルドで共有述語ロックハッシュテーブルの確率の低い破損を修正(Thomas Munro、Tom Lane)
SSL接続のきれいなクロージャを接続リセットのように記録することを避ける(Michael Paquier)
クライアントにSSLセッションチケットを送信しないようにする(Tom Lane)
この修正により、チケット認識クライアント側のSSLコードによる再接続の失敗が防止されます。
Solaris上でtcp_keepalives_idleを設定するための修正コード(Tom Lane)
ポストマスターのシャットダウンと即時再起動の直後に発行された問い合わせメッセージを尊重するための統計コレクタの修正(Tom Lane)
前回のポストマスタのシャットダウンの半分の時間内に発行された統計調査は、事実上無視されました。
統計コレクタの受信バッファサイズが100KB以上であることを確認します(Tom Lane)
これにより、デフォルトの受信バッファー・サイズがそれよりも小さい古いプラットフォームでの統計データの欠落のリスクが軽減されます。
XLOG_SWITCH WALレコード(Andres Freund)を処理した直後にスタンバイが昇格された場合、無効なWALセグメントの作成を修正クライアントがシャットダウンを要求したときに即座に終了するようにwalsenderを修正しました。(Tom Lane)
walsenderプロセスでSIGHUPとSIGUSR1の処理を修正しました(Petr Jelinek、Andres Freund)
シャットダウンチェックポイント中にwalsenderによって引き起こされるパニックを防止する(Andres Freund、Michael Paquier)
ポストマスターの競合状態によるウォルレシーバープロセスの不必要な遅い再起動を修正しました。(Tom Lane)
論理デコード中にディスクに流出する小さなサブトランザクションのリークを修正(Andres Freund)
その結果、一時ファイルのディスク領域が過度に消費されました。
論理デコードスロットの作成中にスナップショットを構築するために必要な作業を減らす(Andres Freund、Petr Jelinek)
以前のアルゴリズムは、多くのオープントランザクションを持つサーバーでは実行不可能なほど高価でした。
論理デコードスロットの作成を無限に遅らせる競合状態を修正(Andres Freund、Petr Jelinek)
syscache無効化イベントの処理におけるオーバーヘッドを削減する(Tom Lane)
これは、頻繁なキャッシュ無効化を引き起こす論理デコードに特に役立ちます。
場合によっては、誤ったヒューリスティックを削除して、外部キー制約の存在に基づいて結合選択性を推定する(David Rowley)複数列の外部キー制約が存在していても、クエリの結合構造に完全に一致しない場合、プランナは推定ヒューリスティックを使用しましたが、これはまったく機能しないことが判明しました。そのようなケースを9.6より前に推定された方法に戻す。
INSERTまたはUPDATEが、ドメインオーバーアレイ型の列の複数の要素に割り当てられる問題を修正しました。(Tom Lane)
集計関数の引数内にあるサブSELECTでウィンドウ関数を使用できるようにする(Tom Lane)
基礎となる表が外部表の場合は、ビューのCHECK OPTIONS句が適切に実行されていることを確認してください(藤田悦郎)
以前は、更新が完全に外部サーバーにプッシュされる可能性がありましたが、ビュー条件を確認する必要があった場合はそれが欠落していました。
ALTER ... RENAME(Vik Fearing)の間に自動生成された配列型を途中で移動する
以前は、CREATE中に競合する自動生成された配列型の名前を変更していました。この修正により、その動作は名前変更操作にまで拡張されます。
テーブルに属する制約にコメントがある場合に、ALTER TABLEにダングリングポインタを修正する(David Rowley)再構成された制約にコメントを再適用すると、奇妙なエラーメッセージが表示されたり、クラッシュすることさえあります。
ALTER USER ... SETは、ALTER ROLE ... SETが行うすべての構文バリアントを受け入れるようにしてください(Peter Eisentraut)
外部テーブルのCHECK制約が最初は有効でないことを許可する(Amit Langote)
CREATE TABLEはCHECK制約のNOT VALID指定子を静かに削除します。そのため、制約がすぐに検証されるように、テーブルが空でなければならないと推論します。しかし、CREATE FOREIGN TABLEでは、基になるテーブルが空であると仮定する理由はなく、制約が有効なものとして扱われることを決定することは私たちの仕事ではありません。この「最適化」をスキップする。外国のテーブルのために。
データ型入出力関数の引数または戻り値の型を不透明から正しい型に変更するときに依存情報を適切に更新する(Heikki Linnakangas)
CREATE TYPEは、この古くから使われていないスタイルで宣言された入出力関数を更新しますが、型に依存関係を記録するのを忘れて、後続のDROP TYPEに関数定義の破損を残すことができます。
クエリの結果(Andres Freund)からCOPYがコピーされるときにクエリプランに並列処理を許可するANALYZEがtsvector列を処理するときのメモリ使用量を減らす(Heikki Linnakangas)
整数や浮動小数点数で貨幣の値を掛けたり除算したりするときに不要な精度の低下や乱雑な丸めを修正する(Tom Lane)
regprocedurein()などの識別子を解析する関数の空白チェックを強化する(Tom Lane)
一般的なロケールによっては、これらの関数がマルチバイト文字の断片を空白として誤って解釈する可能性があります。
PL / Perl(Ashutosh Sharma、Tom Lane)をコンパイルするときに、Perlから関連する#defineシンボルを使用する
これは、典型的には「ハンドシェイク」として現れる携帯性の問題を回避する。最近のPerlバージョンで作業しているときにライブラリの読み込み中に不一致が発生しました。
libpqでは、接続に失敗した後にGSS / SASLとSSPIの認証状態を正しくリセットします(Michael Paquier)
これを行わないと、SSLから非SSL接続へのフォールバック時に、SSL試行におけるGSS / SASLの失敗により、常に非SSL試行が失敗することになります。 SSPIは失敗しませんでしたが、メモリがリークしました。
psqlでは、キーボードのEOF信号でCOPY FROM STDINが終了し、別のCOPY FROM STDINが試みられたときに障害を修正しました(Thomas Munro)この誤動作は、BSD由来のプラットフォーム(macOSを含む)で観測されましたが、他のほとんどのプラットフォームでは検出されませんでした。
REFRESH MATERIALIZED VIEWコマンドを最後に発行するようにpg_dumpとpg_restoreを修正しました(Tom Lane)
これにより、マテリアライズド・ビューが別のユーザーが所有する表を参照するときに、ダンプ/リストア中のエラーを防止できます。
zlib(Vladimir Kunschikov、Alvaro Herrera)に由来するエラー条件のpg_dump / pg_restoreの報告を改善する
--cleanオプションを指定してpg_dumpを修正し、期待通りにイベントトリガーを削除してください(Tom Lane)
また、イベントトリガーの所有権も正しく割り当てられるようになりました。以前は、リストアスクリプトを実行しているスーパーユーザーが所有するものとしてリストアされていました。
パブリックスキーマが存在しないときに、--cleanオプションを指定してpg_dumpを失敗させないように修正しました。(Stephen Frost)
空の演算子クラスに対して無効なSQLを出力しないようにpg_dumpを修正しました(Daniel Gustafsson)
Windowsでpg_dumpの出力をstdoutに修正​​しました。(Kuntal Ghosh)
stdoutに書き込まれた圧縮プレーンテキスト・ダンプには、ファイル記述子をバイナリ・モードにすることができなかったために破損データが含まれます。
列の名前が変更されたビューのON SELECTルールの正しい出力を出力するようにpg_get_ruledef()を修正しました。(Tom Lane)いくつかのコーナーの場合、pg_dumpはpg_get_ruledef()に依存してビューをダンプするので、このエラーはダンプ/リロードの失敗を招く可能性があります。
共通の列を持たないNATURAL LEFT JOINの結果など、空の制約のある外部結合のダンプを修正しました。(Tom Lane)
式が関数呼び出しのようなものに分解されない場合のFROM句の関数式のダンプを修正しました。(Tom Lane)
Windows上でpg_basebackupの出力をstdoutに修正​​しました。(Haribabu Kommi)
stdoutに書き込まれたバックアップには、ファイル記述子をバイナリモードにすることができなかったために破損したデータが含まれていました。
2GBを超えるファイルを正しく処理するようにpg_rewindを修正しました(Kuntal Ghosh、Michael Paquier)
通常、このようなファイルはPostgreSQLのデータディレクトリには表示されませんが、存在する可能性があります。
終わりのWALレコードがwal_level = minimum(Bruce Momjian)を持たないようにpg_upgradeを修正しました。
この状態は、アップグレードされたスタンバイ・サーバーの再接続を妨げる可能性があります。
pg_xlogdumpのWALレコード長の計算を修正しました。(Andres Freund)
postgres_fdwでは、ALTER SERVERコマンドまたはALTER USER MAPPINGコマンド(Horiguchi Kyotaro)の後にリモートサーバーへの接続を再確立します。

これにより、接続パラメータに影響を与えるオプションの変更が速やかに適用されます。
postgres_fdwでは、リモートトランザクション制御コマンドの取り消しを許可します(Robert Haas、Rafia Sabih)
この変更により、以前よりも多くの場合、応答しないリモートサーバーの待機を迅速に回避できます。
拡張のためのスペースを増やすためにMAX_SYSCACHE_CALLBACKSを増やす(Tom Lane)
gcc(Tom Lane)で共有ライブラリを構築する場合は、-fpicではなく-fPICを常に使用してください。
これは、大きな違いを生むプラットフォーム上の拡張ライブラリをサポートします。
MSVCビルドでは、opensslライブラリがVCサブディレクトリ(Andrew Dunstan)内にない場合を処理します。
MSVCビルドでは、libxml2ヘッダーファイルの適切なインクルードパスを追加します(Andrew Dunstan)
これは、標準のWindowsインストールのlibxml2の中で物事を動かす必要性を修正します。
MSVCビルドでは、tcl86.libという名前のTclライブラリを認識します(Noah Misch)
MSVCビルドでは、vcregress.plのコマンドライン(Andrew Dunstan)のPROVE_FLAGS設定を尊重します。

バージョン9.6.4の新機能:

pg_user_mappings.umoptionsの可視性をさらに制限し、ユーザマッピングオプションとして保存されたパスワードを保護する(Noah Misch)
CVE-2017-7486の修正は間違っていました。ユーザーは、関連する外部サーバーに対してUSAGE権限を持っていなくても、独自のユーザーマッピングでオプションを表示することができました。そのようなオプションには、ユーザー自身ではなくサーバー所有者が提供したパスワードが含まれている場合があります。このような場合は、information_schema.user_mapping_optionsにオプションが表示されないため、pg_user_mappingsはどちらも使用しないでください。 (CVE-2017-7547)
それだけで、このパッチは新しくinitdbされたデータベースの動作を修正します。この変更を既存のデータベースに適用する場合は、次の操作を行う必要があります。
postgresql.confにallow_system_table_mods = trueを追加した後でpostmasterを再起動します。 (ALTER SYSTEMをサポートしているバージョンでは、これを使用して構成を変更できますが、再起動する必要があります)。
クラスタの各データベースで、スーパーユーザーとして次のコマンドを実行します。
SET search_path = pg_catalog;
CREATE OR REPLACE VIEWを表示するpg_user_mappings AS
セレクト
U.oid AS umid、
S.oid AS srvid、
S.srvname AS srvname、U.umuser AS umuser、
U.umuser = 0の場合の場合THEN
'パブリック'
ELSE
A.rolname
END AS usename、
CASE WHEN(U.umuser 0とA.rolname = current_user
AND(pg_has_role(S.srvowner、 'USAGE')
OR has_server_privilege(S.oid、 'USAGE')))
OR(U.umuser = 0 AND pg_has_role(S.srvowner、 'USAGE'))
OR(SELECT rolsuper FROM pg_authid where rolname = current_user)
それからU.umoptions
ELSE NULL END AS umoptions
FROM pg_user_mapping U
LEFT JOIN pg_authid A ON(A.oid = U.umuser)JOIN
pg_foreign_server S ON(U.umserver = S.oid);
template0とtemplate1データベースを含めることを忘れないでください。そうしないと、後で作成するデータベースに脆弱性が存在します。 template0を修正するには、一時的に接続を受け入れる必要があります。 PostgreSQL 9.5以降では、
ALTER DATABASE template0 WITH ALLOW_CONNECTIONSはtrueです。
template0を修正した後、
ALTER DATABASE template0 WITH ALLOW_CONNECTIONSはfalseです。
以前のバージョンでは、代わりに
UPDATE pg_database SET datallowconn = trueどこのdatname = 'template0';UPDATE pg_database SET datallowconn = falseどこにdatname = 'template0';
最後に、allow_system_table_mods構成設定を削除し、再度postmasterを再起動します。
すべてのパスワードベースの認証方法で空のパスワードを許可しない(Heikki Linnakangas)
libpqは空のパスワード指定を無視し、それらをサーバに送信しません。したがって、ユーザーのパスワードが空文字列に設定されている場合、psqlや他のlibpqベースのクライアントを介してそのパスワードでログインすることは不可能です。したがって、管理者は、パスワードを空に設定することは、パスワードログインを無効にすることと同等であると考えるかもしれません。ただし、変更または非libpqベースのクライアントでは、設定されている認証方法に応じてログインが可能です。特に、最も一般的な方法であるmd5は空のパスワードを受け入れました。すべてのケースで空のパスワードを拒否するようにサーバーを変更します。 (CVE-2017-7546)
lo_put()は、ターゲットラージオブジェクトに対するUPDATE権限をチェックします(Tom Lane、Michael Paquier)
lo_put()には必ずlowrite()と同じアクセス権が必要ですが、チェックがないため、すべてのユーザーがラージオブジェクトのデータを変更できます。 (CVE-2017-7548)pg_upgrade(Bruce Momjian)を使用してスタンバイサーバをアップグレードするプロセスに関するドキュメントを修正してください。
以前のドキュメントでは、pg_upgradeを実行した後でスタンバイサーバを同期させる前に、プライマリサーバの起動/停止をユーザに指示していました。このシーケンスは安全ではありません。
タプル更新チェーンの同時ロックを修正しました(Alvaro Herrera)
いくつかのセッションが、古いスナップショットを使用して非競合ロックモードでタプル更新チェーンを同時にロックし、それらがすべて成功した場合でも、競合状態によりいくつかのセッションが失敗する可能性があります(ライブタプルバージョンはないと判断します)。これは、外部キー検査が、確実に存在するが同時に更新されているタプルを見ることができないなどの結果をもたらした。
タプルをフリーズするときに潜在的なデータの破損を修正します。そのタプルのXMAXは、まだまだ興味深いメンバ(Teodor Sigaev)
メモリ内の10億以上のタプルをソートする際に、整数のオーバーフローやそれに伴うクラッシュを避ける(Sergey Koposov)
Windows上で、新しいプロセスで共有メモリのアドレス範囲を確保できなかった場合は、プロセス作成を再試行してください(Tom Lane、Amit Kapila)これにより、おそらくウイルス対策製品の干渉による子プロセスの起動の失敗がまれに修正されることが予想されます。
Windowsビルドで共有述語ロックハッシュテーブルの確率の低い破損を修正(Thomas Munro、Tom Lane)
SSL接続のきれいなクロージャを接続リセットのように記録することを避ける(Michael Paquier)
クライアントにSSLセッションチケットを送信しないようにする(Tom Lane)
この修正により、チケット認識クライアント側のSSLコードによる再接続の失敗が防止されます。
Solaris上でtcp_keepalives_idleを設定するための修正コード(Tom Lane)
ポストマスターのシャットダウンと即時再起動の直後に発行された問い合わせメッセージを尊重するための統計コレクタの修正(Tom Lane)
前回のポストマスタのシャットダウンの半分の時間内に発行された統計調査は、事実上無視されました。
統計コレクタの受信バッファサイズが100KB以上であることを確認します(Tom Lane)
これにより、デフォルトの受信バッファー・サイズがそれよりも小さい古いプラットフォームでの統計データの欠落のリスクが軽減されます。
XLOG_SWITCH WALレコード(Andres Freund)を処理した直後にスタンバイが昇格された場合、無効なWALセグメントの作成を修正クライアントがシャットダウンを要求したときに即座に終了するようにwalsenderを修正しました。(Tom Lane)
walsenderプロセスでSIGHUPとSIGUSR1の処理を修正しました(Petr Jelinek、Andres Freund)
シャットダウンチェックポイント中にwalsenderによって引き起こされるパニックを防止する(Andres Freund、Michael Paquier)
ポストマスターの競合状態によるウォルレシーバープロセスの不必要な遅い再起動を修正しました。(Tom Lane)
論理デコード中にディスクに流出する小さなサブトランザクションのリークを修正(Andres Freund)
その結果、一時ファイルのディスク領域が過度に消費されました。
論理デコードスロットの作成中にスナップショットを構築するために必要な作業を減らす(Andres Freund、Petr Jelinek)
以前のアルゴリズムは、多くのオープントランザクションを持つサーバーでは実行不可能なほど高価でした。
論理デコードスロットの作成を無限に遅らせる競合状態を修正(Andres Freund、Petr Jelinek)
syscache無効化イベントの処理におけるオーバーヘッドを削減する(Tom Lane)
これは、頻繁なキャッシュ無効化を引き起こす論理デコードに特に役立ちます。
場合によっては、誤ったヒューリスティックを削除して、外部キー制約の存在に基づいて結合選択性を推定する(David Rowley)複数列の外部キー制約が存在していても、クエリの結合構造に完全に一致しない場合、プランナは推定ヒューリスティックを使用しましたが、これはまったく機能しないことが判明しました。そのようなケースを9.6より前に推定された方法に戻す。
INSERTまたはUPDATEが、ドメインオーバーアレイ型の列の複数の要素に割り当てられる問題を修正しました。(Tom Lane)
集計関数の引数内にあるサブSELECTでウィンドウ関数を使用できるようにする(Tom Lane)
基礎となる表が外部表の場合は、ビューのCHECK OPTIONS句が適切に実行されていることを確認してください(藤田悦郎)
以前は、更新が完全に外部サーバーにプッシュされる可能性がありましたが、ビュー条件を確認する必要があった場合はそれが欠落していました。
ALTER ... RENAME(Vik Fearing)の間に自動生成された配列型を途中で移動する
以前は、CREATE中に競合する自動生成された配列型の名前を変更していました。この修正により、その動作は名前変更操作にまで拡張されます。
テーブルに属する制約にコメントがある場合に、ALTER TABLEにダングリングポインタを修正する(David Rowley)再構成された制約にコメントを再適用すると、奇妙なエラーメッセージが表示されたり、クラッシュすることさえあります。
ALTER USER ... SETは、ALTER ROLE ... SETが行うすべての構文バリアントを受け入れるようにしてください(Peter Eisentraut)
外部テーブルのCHECK制約が最初は有効でないことを許可する(Amit Langote)
CREATE TABLEはCHECK制約のNOT VALID指定子を静かに削除します。そのため、制約がすぐに検証されるように、テーブルが空でなければならないと推論します。しかし、CREATE FOREIGN TABLEでは、基になるテーブルが空であると仮定する理由はなく、制約が有効なものとして扱われることを決定することは私たちの仕事ではありません。外部テーブルのこの「最適化」をスキップします。
データ型入出力関数の引数または戻り値の型を不透明から正しい型に変更するときに依存情報を適切に更新する(Heikki Linnakangas)
CREATE TYPEは、この古くから使われていないスタイルで宣言された入出力関数を更新しますが、型に依存関係を記録するのを忘れて、後続のDROP TYPEに関数定義の破損を残すことができます。
クエリの結果(Andres Freund)からCOPYがコピーされるときにクエリプランに並列処理を許可するANALYZEがtsvector列を処理するときのメモリ使用量を減らす(Heikki Linnakangas)
整数や浮動小数点数で貨幣の値を掛けたり除算したりするときに不要な精度の低下や乱雑な丸めを修正する(Tom Lane)
regprocedurein()などの識別子を解析する関数の空白チェックを強化する(Tom Lane)
一般的なロケールによっては、これらの関数がマルチバイト文字の断片を空白として誤って解釈する可能性があります。
PL / Perl(Ashutosh Sharma、Tom Lane)をコンパイルするときに、Perlから関連する#defineシンボルを使用する
これは移植性の問題を回避します。最近のPerlのバージョンで作業する場合、通常はライブラリの読み込み中に "ハンドシェイク"の不一致が現れます。
libpqでは、接続に失敗した後にGSS / SASLとSSPIの認証状態を正しくリセットします(Michael Paquier)
これを行わないと、SSLから非SSL接続へのフォールバック時に、SSL試行におけるGSS / SASLの失敗により、常に非SSL試行が失敗することになります。 SSPIは失敗しませんでしたが、メモリがリークしました。
psqlでは、キーボードのEOF信号でCOPY FROM STDINが終了し、別のCOPY FROM STDINが試みられたときに障害を修正しました(Thomas Munro)この誤動作は、BSD由来のプラットフォーム(macOSを含む)で観測されましたが、他のほとんどのプラットフォームでは検出されませんでした。
REFRESH MATERIALIZED VIEWコマンドを最後に発行するようにpg_dumpとpg_restoreを修正しました(Tom Lane)
これにより、マテリアライズド・ビューが別のユーザーが所有する表を参照するときに、ダンプ/リストア中のエラーを防止できます。
zlib(Vladimir Kunschikov、Alvaro Herrera)に由来するエラー条件のpg_dump / pg_restoreの報告を改善する
--cleanオプションを指定してpg_dumpを修正し、期待通りにイベントトリガーを削除してください(Tom Lane)
また、イベントトリガーの所有権も正しく割り当てられるようになりました。以前は、リストアスクリプトを実行しているスーパーユーザーが所有するものとしてリストアされていました。
パブリックスキーマが存在しないときに、--cleanオプションを指定してpg_dumpを失敗させないように修正しました。(Stephen Frost)
空の演算子クラスに対して無効なSQLを出力しないようにpg_dumpを修正しました(Daniel Gustafsson)
Windowsでpg_dumpの出力をstdoutに修正​​しました。(Kuntal Ghosh)
stdoutに書き込まれた圧縮プレーンテキスト・ダンプには、ファイル記述子をバイナリ・モードにすることができなかったために破損データが含まれます。
列の名前が変更されたビューのON SELECTルールの正しい出力を出力するようにpg_get_ruledef()を修正しました。(Tom Lane)いくつかのコーナーの場合、pg_dumpはpg_get_ruledef()に依存してビューをダンプするので、このエラーはダンプ/リロードの失敗を招く可能性があります。
共通の列を持たないNATURAL LEFT JOINの結果など、空の制約のある外部結合のダンプを修正しました。(Tom Lane)
式が関数呼び出しのようなものに分解されない場合のFROM句の関数式のダンプを修正しました。(Tom Lane)
Windows上でpg_basebackupの出力をstdoutに修正​​しました。(Haribabu Kommi)
stdoutに書き込まれたバックアップには、ファイル記述子をバイナリモードにすることができなかったために破損したデータが含まれていました。
2GBを超えるファイルを正しく処理するようにpg_rewindを修正しました(Kuntal Ghosh、Michael Paquier)
通常、このようなファイルはPostgreSQLのデータディレクトリには表示されませんが、存在する可能性があります。
終わりのWALレコードがwal_level = minimum(Bruce Momjian)を持たないようにpg_upgradeを修正しました。
この状態は、アップグレードされたスタンバイ・サーバーの再接続を妨げる可能性があります。
pg_xlogdumpのWALレコード長の計算を修正しました。(Andres Freund)
postgres_fdwでは、ALTER SERVERコマンドまたはALTER USER MAPPINGコマンド(Horiguchi Kyotaro)の後にリモートサーバーへの接続を再確立します。これにより、接続パラメータに影響を与えるオプションの変更が迅速に適用されます。
postgres_fdwでは、リモートトランザクション制御コマンドの取り消しを許可します(Robert Haas、Rafia Sabih)
この変更により、以前よりも多くの場合、応答しないリモートサーバーの待機を迅速に回避できます。
拡張のためのスペースを増やすためにMAX_SYSCACHE_CALLBACKSを増やす(Tom Lane)
gcc(Tom Lane)で共有ライブラリを構築する場合は、-fpicではなく-fPICを常に使用してください。
これは、大きな違いを生むプラットフォーム上の拡張ライブラリをサポートします。
MSVCビルドでは、opensslライブラリがVCサブディレクトリ(Andrew Dunstan)内にない場合を処理します。
MSVCビルドでは、libxml2ヘッダーファイルの適切なインクルードパスを追加します(Andrew Dunstan)
これは、標準のWindowsインストールのlibxml2の中で物事を動かす必要性を修正します。
MSVCビルドでは、tcl86.libという名前のTclライブラリを認識します(Noah Misch)
MSVCビルドでは、vcregress.plのコマンドライン(Andrew Dunstan)のPROVE_FLAGS設定を尊重します。

同じようなソフトウェア

Jaxer
Jaxer

3 Jun 15

MySQL Sandbox
MySQL Sandbox

20 Feb 15

へのコメント PostgreSQL

コメントが見つかりません
コメントを追加
画像をオンにする!