リリース日: 2024-09-26
PostgreSQL 17には、以下をはじめとする多数の新機能と拡張が含まれています。
VACUUM
の新しいメモリ管理システムにより、メモリ消費量が削減され、バキューム処理全体のパフォーマンスが向上しました。
コンストラクタ、ID関数、JSONデータをテーブル表現に変換するJSON_TABLE()
関数を含む新しいSQL/JSON機能。
ストリーミングI/Oを使用したシーケンシャルリード、高い同時実行時の書き込みスループット、btreeインデックス内の複数の値の検索など、さまざまなクエリ性能が向上しました。
下記の論理レプリケーションの強化
フェイルオーバー制御
物理スタンバイから論理レプリカを作成するpg_createsubscriberユーティリティ
パブリッシャーとサブスクライバーの両方でレプリケーションスロットを保持するようになったpg_upgrade
新しいクライアント側コネクションオプションsslnegotiation=direct
は、ラウンドトリップネゴシエーションを回避するために直接TLSハンドシェイクを実行します。
pg_basebackupが増分バックアップをサポートするようになりました。
COPY
に、エラーが発生した場合でもコピー操作を継続できるようになる新しいオプションON_ERROR ignore
が追加されました。
PostgreSQL 17の上記の項目とその他の新機能は次節でより詳しく説明されます。
以前のリリースからデータを移行したい時は、どのリリースについても、pg_dumpallを利用したダンプとリストア、あるいはpg_upgradeや論理レプリケーションの使用が必要です。 新たなメジャーバージョンへの移行に関する一般的な情報については18.6を参照してください。
バージョン17には、以前のバージョンとの互換性に影響するかもしれない多数の変更点が含まれています。 以下の非互換性に注意してください。
メンテナンス操作中、関数は安全なsearch_pathを使用するよう変更されました。 (Jeff Davis) §
これにより、メンテナンス操作(ANALYZE
、CLUSTER
、REFRESH MATERIALIZED VIEW
、REINDEX
、VACUUM
)が安全でないアクセスを実行するのを防ぎます。
デフォルト以外のスキーマを参照する必要がある式インデックスおよびマテリアライズドビューで使用される関数は、関数の作成時に検索パスを指定する必要があります。
ago
がinterval
型の値の最後にのみ表示されるよう制限されました。
(Joseph Koshakow)
§
§
また、空のinterval型ユニットが複数回表示されないようにしました。
サーバパラメータold_snapshot_thresholdが廃止されました。 (Thomas Munro) §
この変数により、実行中のトランザクションからまだ見えている可能性のある行をバキュームで削除することができ、後でアクセスすると「snapshot too old」というエラーが発生しました。 この機能は、改善された実装が見つかった場合、後でPostgreSQLに再度追加される可能性があります。
初期セッションユーザのスーパーユーザ状態に関するSET SESSION AUTHORIZATION
処理が変更されました。
(Joseph Koshakow)
§
新しい動作は、接続時のスーパーユーザ状態ではなく、SET SESSION AUTHORIZATION
コマンドが発行された時点のセッションユーザのスーパーユーザ状態に基づきます。
データベースごとのユーザをシミュレートする機能が削除されました。 (Nathan Bossart) §
db_user_namespace
機能はほとんど使用されませんでした。
Windowsのwal_sync_methodの値fsync_writethrough
が削除されました。
(Thomas Munro)
§
この値は、Windowsのfsync
と同じでした。
2つのWALファイル名関数のファイル境界処理が変更されました。 (Kyotaro Horiguchi, Andres Freund, Bruce Momjian) §
pg_walfile_name()
関数とpg_walfile_name_offset()
関数は、LSNがファイルセグメント境界上にある場合、以前のLSNセグメント番号を報告していましたが、今は現在のLSNセグメントを返すようになりました。
サーバパラメータtrace_recovery_messages
は不要になったので廃止されました。
(Bharath Rupireddy)
§
情報スキーマ列のelement_types
.domain_default
が削除されました。
(Peter Eisentraut)
§
pgrowlocksのロックモードの出力ラベルが変更されました。 (Bruce Momjian) §
pg_stat_bgwriter
ビューからbuffers_backend
列とbuffers_backend_fsync
列が削除されました。
(Bharath Rupireddy)
§
これらのフィールドは、pg_stat_io
ビューの同様の列と重複していると見なされました。
pg_stat_statementsのI/Oブロック読み取り/書き込みタイミング統計列の名前が変更されました。 (Nazir Bilal Yavuz) §
これにより、blk_read_time
がshared_blk_read_time
に、blk_write_time
がshared_blk_write_time
に名前が変更されました。
pg_attribute
.attstattarget
とpg_statistic_ext
.stxstattarget
が変更され、デフォルトの統計ターゲットをNULL
として表すようになりました。
(Peter Eisentraut)
§
§
pg_collation
.colliculocale
列の名前がcolllocale
に、pg_database
.daticulocale
列の名前がdatlocale
に変更されました。
(Jeff Davis)
§
pg_stat_progress_vacuum
ビューのmax_dead_tuples
列の名前をmax_dead_tuple_bytes
に変更し、num_dead_tuples
列の名前をnum_dead_item_ids
に変更し、dead_tuple_bytes
列が追加されました。
(Masahiko Sawada)
§
§
システムビューpg_stat_slru
のSLRU列の名前が変更されました。
(Alvaro Herrera)
§
pg_stat_reset_slru()
関数で受け付ける列名も変更されました。
PostgreSQL 17と前メジャーリリースとの詳細な変更点を記載しました。
オプティマイザが以前の行出力句で参照され列の統計情報とソート順序を考慮することで、CTE実行計画を改善できるようになりました。 (Jian Guo, Richard Guo, Tom Lane) § §
問い合わせのIS NOT NULL
およびIS NULL
制限による最適化が改善されました。
(David Rowley, Richard Guo, Andy Fan)
§
§
NOT NULL
列の問い合わせからIS NOT NULL
制限を削除し、IS NULL
が指定されている場合、NOT NULL
列のスキャンを削除します。
IS [NOT] UNKNOWN
条件のboolean列でパーティション除去が可能になりました。
(David Rowley)
§
包含演算子<@および@>を使用する場合の範囲値の最適化が改善されました。 (Kim Johan Andersson, Jian He) §
相関のあるIN
副問い合わせを結合に変換できるようになりました。
(Andy Fan, Tom Lane)
§
パーティションテーブル、継承の親テーブル、およびUNION ALL
問い合わせのLIMIT
句の最適化が改善されました。
(Andy Fan, David Rowley)
§
より多くの場合に問い合わせノードを並列で実行できるようになりました。 (Tom Lane) §
GROUP BY
列を内部的にORDER BY
と一致するように並べ替えできるようになりました。
(Andrei Lepikhov, Teodor Sigaev)
§
これは、サーバパラメータenable_group_by_reorderingを使用して無効にできます。
ALL
を使用しないUNION
でMergeAppendが使用できるようになりました。
(David Rowley)
§
ソートする必要がある行数をより正確に計算するようにMergeAppendプランが修正されました。 (Alexander Kuzmenkov) §
GiSTおよびSP-GiSTインデックスがインクリメンタルソートの一部にすることができるようになりました。 (Miroslav Bendik) §
これは、最初の列にGiSTおよびSP-GiSTインデックスがあり、他の列にはない場合のORDER BY
句に特に有用です。
範囲型のヒストグラム情報を報告するためにpg_stats
ビューに列が追加されました。
(Egor Rogov, Soumyadeep Chakraborty)
§
バキュームがより効率的にタプルを削除しフリーズできるようになりました。 (Melanie Plageman, Heikki Linnakangas) §
バキュームによって発生するWALトラフィックもよりコンパクトになりました。
バキュームがタプル参照をより効率的に格納できるようになりました。 (Masahiko Sawada, John Naylor) § § § §
さらに、maintenance_work_memやautovacuum_work_memがより大きくても、バキュームが暗黙的に1ギガバイトのメモリに制限しなくなりました。
インデックスを持たないリレーションのバキューム処理が最適化されました。 (Melanie Plageman) §
vacuum_buffer_usage_limitのデフォルトが2メガバイトに増やされました。 (Thomas Munro) §
多数のメンバシップを持つロールをチェックするパフォーマンスが改善されました。 (Nathan Bossart) §
競合の激しいWAL書き込みのパフォーマンスが改善されました。 (Bharath Rupireddy) §
大きなデータブロックをクライアントに転送する際のパフォーマンスが改善されました。 (Melih Mutlu) §
新しいシステムパラメータio_combine_limitを使用して、ファイルシステムの読み取りグループ化ができるようになりました。 (Thomas Munro, Andres Freund, Melanie Plageman, Nazir Bilal Yavuz) § § §
システムビューpg_stat_checkpointer
が追加されました。
(Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov)
§
§
§
pg_stat_bgwriter
から関連する列が削除され、この新しいシステムビューに追加されました。
統計情報をリセットする制御が改善されました。 (Atsushi Torikoshi, Bharath Rupireddy) § § §
pg_stat_reset_shared()
(引数なし)とpg_stat_reset_shared(NULL
)を使用して、すべての共有統計情報がリセットできるようになりました。
pg_stat_reset_shared('slru')とpg_stat_reset_slru()
(引数なし)を使用して、SLRU統計情報がリセットできるようになりました。これは、以前からpg_stat_reset_slru(NULL)で可能でした。
バックアップからのWALリカバリに関するログメッセージが追加されました。 (Andres Freund) §
trust
接続でlog_connectionsログ行が出力されるようになりました。
(Jacob Champion)
§
walsenderによるレプリケーションスロットの取得と解放を報告するログメッセージが追加されました。 (Bharath Rupireddy) §
これは、サーバパラメータlog_replication_commandsによって可能になります。
待機イベントの種類を報告するシステムビューpg_wait_events
が追加されました。
(Bertrand Drouvot)
§
これは、pg_stat_activity
で報告される待機イベントに説明を追加するのに便利です。
バキュームがインデックス処理の進行状況を報告するようになりました。 (Sami Imseih) §
これはシステムビューpg_stat_progress_vacuum
のindexes_total
列とindexes_processed
列に表示されます。
メンテナンス操作を実行する権限の付与ができるようになりました。 (Nathan Bossart) §
この権限は、MAINTAIN
権限を使用してテーブルごとに付与することも、pg_maintain
定義済みロールを使用してロールごとに付与することもできます。
許可される操作は、VACUUM
、ANALYZE
、REINDEX
、REFRESH MATERIALIZED VIEW
、CLUSTER
、およびLOCK TABLE
です。
pg_monitor
メンバシップを持つロールがpg_current_logfile()
を実行できるようになりました。
(Pavlo Golub, Nathan Bossart)
§
ALTER SYSTEM
を禁止できるシステムパラメータallow_alter_systemが追加されました。
(Jelte Fennema-Nio, Gabriele Bartolini)
§
ALTER SYSTEM
で認識されないカスタムサーバパラメータが設定できるようになりました。
(Tom Lane)
§
GRANT ON PARAMETER
でも設定可能です。
トランザクションの実行時間を制限するサーバパラメータtransaction_timeoutが追加されました。 (Andrey Borodin, Japin Li, Junwang Zhao, Alexander Korotkov) § § §
プラットフォームに依存しない組み込みの照合順序プロバイダが追加されました。 (Jeff Davis) § § § §
これにより、C
およびC.UTF-8
の照合順序がサポートされます。
PostgresによるHuge Pagesの使用を報告するサーバパラメータhuge_pages_statusが追加されました。 (Justin Pryzby) §
これはhuge_pagesがtry
に設定されている場合に便利です。
イベントトリガを無効にするサーバパラメータが追加されました。 (Daniel Gustafsson) §
event_triggers設定により、デバッグのためにイベントトリガを一時的に無効にできます。
SLRUキャッシュサイズ設定できるようになりました。 (Andrey Borodin, Dilip Kumar, Alvaro Herrera) §
新しいサーバパラメータは、commit_timestamp_buffers、multixact_member_buffers、multixact_offset_buffers、notify_buffers、serializable_buffers、subtransaction_buffers、transaction_buffersです。 commit_timestamp_buffers、transaction_buffers、subtransaction_buffersはshared_buffersとともに自動的にスケールアップします。
ファイルシステムの増分バックアップがサポートされました。 (Robert Haas, Jakub Wartak, Tomas Vondra) § §
増分バックアップは、pg_basebackupの新しい--incremental
オプションを使用して作成することができます。
新しいpg_combinebackupアプリケーションでは、基本および増分のファイルシステムバックアップの操作が可能です。
WAL要約ファイルの作成ができるようになりました。 (Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski) § § § §
これらのファイルは、LSN範囲内で変更されたブロック番号を記録し、ファイルシステムの増分バックアップに役立ちます。
これは、サーバパラメータのsummarize_walとwal_summary_keep_timeによって制御され、pg_available_wal_summaries()
、pg_wal_summary_contents()
、およびpg_get_wal_summarizer_state()
によって状態を観測できます。
ファイルシステムのバックアップマニフェストファイルにシステム識別子が追加されました。 (Amul Sul) §
これは、無効なWALの使用を検出するのに役立ちます。
pg_basebackupがpostgresql.auto.conf
に接続情報を書き込む時に、接続文字列値dbname
が書き込まれるようになりました。
(Vignesh C, Hayato Kuroda)
§
無効なスロットの理由を報告するために、pg_replication_slots
.invalidation_reason
列が追加されました。
(Shveta Malik, Bharath Rupireddy)
§
§
スロットの非アクティブ期間を報告するpg_replication_slots
.inactive_since
列が追加されました。
(Bharath Rupireddy)
§
§
§
論理レプリケーションスロットを同期させるためのpg_sync_replication_slots()
関数が追加されました。
(Hou Zhijie, Shveta Malik, Ajin Cherian, Peter Eisentraut)
§
§
レプリケーションプロトコルにfailover
プロパティが追加されました。
(Hou Zhijie, Shveta Malik)
§
物理的スタンバイサーバからロジカルレプリカを作成するために、pg_createsubscriberアプリケーションが追加されました。 (Euler Taveira) §
pg_upgradeに有効なロジカルスロットとサブスクリプションを移行させます。 (Hayato Kuroda, Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal) § §
これにより、アップグレードの後に論理レプリケーションをすぐに続行できます。 これは、バージョン17以降の古いクラスタにのみ機能します。 PostgreSQL
ロジカルスロットのフェイルオーバーが有効になりました。 (Hou Zhijie, Shveta Malik, Ajin Cherian) §
これは、pg_create_logical_replication_slot()
の5番目のオプション引数で制御されます。
フェイルオーバーロジカルスロットの同期を有効にするサーバパラメータsync_replication_slotsが追加されました。 (Shveta Malik, Hou Zhijie, Peter Smith) § §
CREATE/ALTER SUBSCRIPTION
に論理レプリケーションフェイルオーバー制御が追加されました。
(Shveta Malik, Hou Zhijie, Ajin Cherian)
§
§
論理レプリケーションの変更適用において、サブスクライバーでハッシュインデックスが使用できるようになりました。 (Hayato Kuroda) §
以前は、この目的に使用できるのはbtreeインデックスのみでした。
サブトランザクションが多数ある場合のロジカルデコーディングの性能が向上しました。 (Masahiko Sawada) §
サブスクリプション所有者のスーパーユーザ権限が取り消された場合は、適用ワーカープロセスが再起動されるようになりました。 (Vignesh C) §
これにより、再認証が強制されます。
pg_logical_emit_message()
関数にflush
オプションが追加されました。
(Michael Paquier)
§
これによりメッセージが永続化されます。
サブスクライバーに表示される前に同期する必要がある物理的スタンバイが指定できるようになりました。 (Hou Zhijie, Shveta Malik) § §
新しいサーバパラメータはsynchronized_standby_slotsです。
pg_stat_subscription
にworker_type列が追加されました。
(Peter Smith)
§
エラー行を破棄するための新しいCOPY
オプションON_ERROR ignore
が追加されました。
(Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo Nagata)
§
§
§
§
デフォルトの動作はON_ERROR stop
です。
COPY FROM
が無視したエラー行を報告する新しいCOPY
オプションLOG_VERBOSITY
が追加されました。
(Bharath Rupireddy)
§
COPY FROM
が処理中にスキップした行数を報告できるようになりました。
(Atsushi Torikoshi)
§
これは、システムビューの列pg_stat_progress_copy
.tuples_skipped
に表示されます。
COPY FROM
で、すべての列を強制的にNULLにするか、NULLにしないかを簡単に指定できるようになりました。
(Zhang Mingli)
§
パーティションテーブルでID列を持つことができるようになりました。 (Ashutosh Bapat) §
テーブルパーティションで排他制約が使用可能になりました。 (Paul A. Jungwirth) §
排他制約がパーティションキー列の等価性を比較する限り、他の列は排他制約固有の比較を使用できます。
ALTER TABLE
で列統計ターゲットをデフォルトに設定するより明確な方法が追加されました。
(Peter Eisentraut)
§
新しい構文はALTER TABLE ... SET STATISTICS DEFAULT
です。
旧来のSET STATISTICS -1
は引き続きサポートされています。
ALTER TABLE
で列の生成式を変更できるようになりました。
(Amul Sul)
§
構文はALTER TABLE ... ALTER COLUMN ... SET EXPRESSION
です。
パーティションテーブルでテーブルアクセスメソッドを指定できるようになりました。 (Justin Pryzby, Soumyadeep Chakraborty, Michael Paquier) § §
ALTER TABLE .. SET ACCESS METHOD
にDEFAULT
設定が追加されました。
(Michael Paquier)
§
接続時に起動するイベントトリガがサポートされました。 (Konstantin Knizhnik, Mikhail Gribkov) §
REINDEX
に対するイベントトリガがサポートされました。
(Garrett Thornburg, Jian He)
§
テーブル名が指定されていない場合でもCLUSTER
のオプションで括弧付き構文が可能になりました。
(Nathan Bossart)
§
EXPLAIN
でオプティマイザのメモリ使用量を報告できるようになりました。
(Ashutosh Bapat)
§
このオプションはMEMORY
と呼ばれます。
ネットワーク転送用にデータを変換するコストを報告するEXPLAIN
のSERIALIZE
オプションが追加されました。
(Stepan Rutz, Matthias van de Meent)
§
EXPLAIN
のBUFFERS
出力にローカルI/Oブロックの読み取り/書き込みタイミング統計が追加されました。
(Nazir Bilal Yavuz)
§
EXPLAIN
のSubPlanノードと出力パラメータの表示が改善されました。
(Tom Lane, Dean Rasheed)
§
EXPLAIN
にJITのdeform_counter
の詳細が追加されました。
(Dmitry Dolgov)
§
interval
データ型で+/-infinity
値がサポートされました。
(Joseph Koshakow, Jian He, Ashutosh Bapat)
§
同じトランザクション内で作成されALTER TYPE
で追加されたENUM
型を使用できるようになりました。
(Tom Lane)
§
これは以前は許可されていませんでした。
JSON
データをテーブル表現に変換する関数JSON_TABLE()
が追加されました。
(Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Jian He)
§
§
この関数は、SELECT
クエリのFROM
句でタプルソースとして使用できます。
SQL/JSONコンストラクタ関数JSON()
、JSON_SCALAR()
、JSON_SERIALIZE()
が追加されました。
(Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote)
§
SQL/JSONのクエリ関数JSON_EXISTS()
、JSON_QUERY()
、JSON_VALUE()
が追加されました。
(Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Peter Eisentraut, Jian He)
§
§
§
§
§
JSON
値を他のJSON
データ型に変換するjsonpathメソッドが追加されました。
(Jeevan Chalke)
§
jsonpathメソッドは、.bigint()
、.boolean()
、.date()
、.decimal([precision [, scale]])
、.integer()
、.number()
、.string()
、.time()
、.time_tz()
、.timestamp()
、.timestamp_tz()
です。
to_timestamp()
でタイムゾーン形式指定が追加されました。
(Tom Lane)
§
TZ
はタイムゾーンの略語形または数値オフセットを受け付ける一方、OF
は数値オフセットのみを受け付けます。
セッションのタイムゾーンをAS LOCAL
で指定できるようになりました。
(Vik Fearing)
§
これは、リテラルなセッションタイムゾーンを指定するのではなく、タイムスタンプ値からタイムゾーンを追加および削除して変換する場合に便利です。
UUIDの情報を返す関数uuid_extract_timestamp()
およびuuid_extract_version()
が追加されました。
(Andrey Borodin)
§
指定された範囲内で乱数を生成する関数が追加されました。 (Dean Rasheed) §
関数はrandom(min, max)
で、integer
、bigint
、numeric
型の値を取ります。
整数を2進数の文字列と8進数の文字列に変換する関数が追加されました。 (Eric Radman, Nathan Bossart) §
関数はto_bin()
とto_oct()
です。
ユニコード情報の関数が追加されました。 (Jeff Davis) §
関数unicode_version()
はユニコードバージョンを返し、icu_unicode_version()
はICUバージョンを返し、unicode_assigned()
は文字にユニコードのコードポイントが割り当てられているかどうかを返します。
型指定の型修飾子を返す関数to_regtypemod()
が追加されました。
(David Wheeler, Erik Wienhold)
§
ドメインの基本型を返すpg_basetype()
関数が追加されました。
(Steve Chavez)
§
値のTOAST識別子を返す関数pg_column_toast_chunk_id()
が追加されました。
(Yugo Nagata)
§
値がTOASTに格納されていない場合は、NULL
を返します。
ロールのパスワードを変更するlibpq関数が追加されました。 (Joe Conway) §
新しい関数PQchangePassword()
は、新しいパスワードをサーバに送信する前にハッシュします。
ポータルとプリペアド文を閉じるためのlibpq関数が追加されました。 (Jelte Fennema-Nio) §
関数はPQclosePrepared()
、PQclosePortal()
、PQsendClosePrepared()
、PQsendClosePortal()
です。
すでに使用されている場合は暗号化された、ブロッキングと非ブロッキングのキャンセル要求を可能にするlibpqAPIが追加されました。 (Jelte Fennema-Nio) §
以前は、暗号化されていないブロッキングのキャンセル要求だけがサポートされていました。
ネットワークソケットのポーリングを可能にするlibpq関数PQsocketPoll()
が追加されました。
(Tristan Partin, Tom Lane)
§
§
パイプライン同期化ポイントを送信するためのlibpq関数PQsendPipelineSync()
が追加されました。
(Anton Kirilov)
§
これはPQpipelineSync()
と似ていますが、出力バッファのサイズがしきい値に達しない限り、サーバにフラッシュしません。
結果をチャンクで取得できるようにしたlibpq関数PQsetChunkedRowsMode()
が追加されました。
(Daniel Vérité)
§
ネットワークの往復ネゴシエーションを必要としないTLS接続が利用可能になりました。 (Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson) § § § § § § § §
これは、クライアント側オプションsslnegotiation=direct
で有効になり、ALPNを必要とし、PostgreSQL 17以降のサーバでのみ動作します。
デフォルトと空の権限のpsql表示が改善されました。 (Erik Wienhold, Laurenz Albe) §
コマンド\dp
は、空の権限に対して(none)
と表示されるようになりました。
デフォルトは引き続き空欄のままです。
バックスラッシュコマンドが\pset null
を尊重するようになりました。
(Erik Wienhold, Laurenz Albe)
§
以前は\pset null
は無視されていました。
psqlの\watch
が最小限の行数が返された後に停止できるようになりました。
(Greg Sabino Mullane)
§
パラメータはmin_rows
です。
psqlの接続試行をCtrl-Cでキャンセルできるようになりました。 (Tristan Partin) §
psqlがSELECT
以外の問い合わせ文に対してFETCH_COUNT
の設定を反映するようになりました。
(Daniel Vérité)
§
psqlのタブ補完が改善されました。 (Dagfinn Ilmari Mannsåker, Gilles Darold, Christoph Heiss, Steve Chavez, Vignesh C, Pavel Borisov, Jian He) § § § § § § § §
WALサマリファイルをダンプするpg_walsummaryアプリケーションが追加されました。 (Robert Haas) §
pg_dumpのラージオブジェクトがバッチでリストア可能になりました。 (Tom Lane) §
これにより、多数のラージオブジェクトのリストアがトランザクションの制限を回避し、パラレルでのリストアが可能になりました。
pg_dumpに--exclude-extension
オプションが追加されました。
(Ayush Vatsa)
§
pg_dump、pg_dumpall、pg_restoreで、処理対象のオブジェクトを含めるか含めないかの指定を一つのファイルで指定できるようになりました。 (Pavel Stehule, Daniel Gustafsson) §
このオプションは--filter
と呼ばれます。
いくつかのクライアントアプリケーションに--sync-method
パラメータが追加されました。
(Justin Pryzby, Nathan Bossart)
§
対象となるアプリケーションは、initdb、pg_basebackup、pg_checksums、pg_dump、pg_rewind、pg_upgradeです。
トランザクションバッチでのオブジェクトリストアを可能にする--transaction-size
オプションがpg_restoreに追加されました。
(Tom Lane)
§
これにより、トランザクションブロックが大きすぎるという問題が発生することなく、トランザクションバッチの性能上の利点が得られます。
pgbenchのデバッグモードオプションが-d
から--debug
に変更されました。
(Greg Sabino Mullane)
§
-d
オプションはデータベース名に使用され、新しい--dbname
オプションも使用できるようになりました。
クライアントのアボート後に終了するpgbenchオプション--exit-on-abort
が追加されました。
(Yugo Nagata)
§
同期メッセージの送信を可能にする、pgbenchコマンド\syncpipeline
が追加されました。
(Anthonin Bonnefoy)
§
Allowpg_archivecleanupでのバックアップ履歴ファイルを削除できるようになりました。 (Atsushi Torikoshi) §
オプションは--clean-backup-history
です。
pg_archivecleanupにいくつかの長いオプションが追加されました。 (Atsushi Torikoshi) §
長いオプションは--debug
、--dry-run
、--strip-extension
です。
pg_basebackupとpg_receivewalの接続指定でdbnameが利用可能になりました。 (Jelte Fennema-Nio) §
これは、データベース名を必要とするコネクションプーラに役立ちます。
pg_upgradeに--copy-file-range
オプションが追加されました。
(Thomas Munro)
§
これはLinuxとFreeBSDでサポートされています。
reindexdb--index
で、異なるテーブルのインデックスを並列に処理できるようになりました。
(Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov)
§
reindexdb、vacuumdb、clusterdbがパターンに一致するすべてのデータベース内のオブジェクトを処理できるようになりました。 (Nathan Bossart) § § §
新しいオプション--all
が、この動作を制御します。
OpenSSL 1.0.1のサポートが削除されました。 (Michael Paquier) §
ビットカウントにCPU AVX-512命令を使用するようになりました。 (Paul Amonson, Nathan Bossart, Ants Aasma) § §
LLVMバージョン10以降が必要になりました。 (Thomas Munro) §
64ビットLoongArchCPUでネイティブCRC命令を使用するようになりました。 (Xudong Yang) §
AIXサポートが削除されました。 (Heikki Linnakangas) §
Microsoft Visual Studio固有のPostgreSQLビルドオプションが削除されました。 (Michael Paquier) §
MesonがVisual Studioビルドで利用可能な唯一の方法になりました。
configureの--disable-thread-safety
オプションが削除されました。
(Thomas Munro, Heikki Linnakangas)
§
§
現在では、サポートされているすべてのプラットフォームで十分なスレッドサポートがあることを前提としています。
configureの--with-CC
オプションが削除されました。
します。
(Heikki Linnakangas)
§
CC
環境変数を設定することが、コンパイラを指定するための唯一の方法になりました。
ユーザ定義のデータ型受信関数は、NULLで終了するデータを受信しなくなりました。 (David Rowley) §
巨大なJSON
ドキュメントで使用するために、インクリメントJSON
パーサが追加されました。
(Andrew Dunstan)
§
トップレベルのREADME
ファイルがMarkdownに変換されました。
(Nathan Bossart)
§
不要になったトップレベルのINSTALL
ファイルが削除されました。
(Tom Lane)
§
makeのdistprep
オプションが削除されました。
(Peter Eisentraut)
§
Android共有ライブラリのmakeサポートが追加されました。 (Peter Eisentraut) §
バックエンドにインジェクションポイントのサポートが追加されました。 (Michael Paquier) § § § §
これはサーバのデバッグに使用され、サーバのコンパイル時に有効にする必要があります。
動的共有メモリレジストリが追加されました。 (Nathan Bossart) §
これにより、起動時に初期化されていない共有ライブラリが、動的な共有メモリアクセスを調整できるようになります。
同じ問い合わせの他のログレコードと同じ時間値を使用するようにemit_log_hook
が修正されました。
(Kambam Vinay, Michael Paquier)
§
述語チェックにjsonpath
を使用するための文書が改善されました。
(David Wheeler)
§
結合以外の条件を持つ結合を、外部サーバとカスタムスキャンにプッシュダウンできるようになりました。 (Richard Guo, Etsuro Fujita) §
外部データラッパーとカスタムスキャンは、これらのケースを処理できるように修正されている必要があります。
postgres_fdwの外部サーバにEXISTS
とIN
の副問い合わせがプッシュダウンできるようになりました。
(Alexander Pyhalov)
§
デフォルトの外部データラッパータプルコストが増加しました。 (David Rowley, Umair Shahid) § §
この値はオプティマイザで使用されます。
ltree列にハッシュインデックスが作成できるようになりました。 (Tommy Pavlicek) §
これにより、ltree列でのハッシュ結合とハッシュ集約も可能になります。
unaccentの文字変換ルールに空白と引用符を含めることができるようになりました。 (Michael Paquier) §
unaccent.rules
ファイルの構文が変更されました。
新しいオプション--checkunique
を使用して、amcheckが一意制約違反をチェックできるようになりました。
(Anastasia Lubennikova, Pavel Borisov, Maxim Orlov)
§
OpenSSLFIPSモードでcitextテストに合格できるようになりました。 (Peter Eisentraut) §
OpenSSLFIPSモードでpgcryptoテストに合格できるようになりました。 (Peter Eisentraut) §
adminpackcontrib拡張が削除されました。 (Daniel Gustafsson) §
これは、現在はサポートが終了したpgAdmin IIIで使用されていました。
ALTER OPERATOR
でより多くの最適化属性が設定できるようになりました。
(Tommy Pavlicek)
§
これは拡張に役立ちます。
拡張でカスタム待機イベントが定義できるようになりました。 (Masahiro Ikeda) § § § §
postgres_fdwとdblinkにカスタム待機イベントが追加されました。
共有バッファの削除を可能にするpg_buffercacheのpg_buffercache_evict()
関数が追加されました。
(Palak Chaturvedi, Thomas Munro)
§
これはテストに役立ちます。
pg_stat_statements内のCALL
パラメータがプレースホルダに置き換えられるようになりました。
(Sami Imseih)
§
pg_stat_statements
に保存されているセーブポイント名がプレースホルダに置き換えられるようになりました。
(Greg Sabino Mullane)
§
これにより、SAVEPOINT
、RELEASE SAVEPOINT
、ROLLBACK TO SAVEPOINT
コマンドを記録するために必要なエントリ数が大幅に削減されます。
pg_stat_statements
に格納されている2相コミットのGIDがプレースホルダに置き換えられました。
(Michael Paquier)
§
これにより、PREPARE TRANSACTION
、COMMIT PREPARED
、ROLLBACK PREPARED
を記録するために必要なエントリ数が大幅に削減されます。
pg_stat_statements
でDEALLOCATE
を追跡するようになりました。
(Dagfinn Ilmari Mannsåker, Michael Paquier)
§
DEALLOCATE
名はプレースホルダとしてpg_stat_statements
に保存されます。
pg_stat_statements
にローカルI/Oブロックの読み取り/書き込みタイミング統計列が追加されました。
(Nazir Bilal Yavuz)
§
§
新しい列は、local_blk_read_time
とlocal_blk_write_time
です。
pg_stat_statements
にJITdeform_counterの詳細が追加されました。
(Dmitry Dolgov)
§
最小/最大統計処理のみをリセットできるように、pg_stat_statements_reset()
にオプションの4番目の引数(minmax_only
)が追加されました。
(Andrei Zubkov)
§
この引数のデフォルトはfalse
です。
エントリ作成時刻と最後の最小/最大リセット時刻を追跡するために、pg_stat_statements
にstats_since
とminmax_stats_since
列が追加されました。
(Andrei Zubkov)
§
以下の人々(アルファベット順)はパッチ作者、コミッター、レビューア、テスターあるいは問題の報告者として本リリースに貢献しました。
Abhijit Menon-Sen |
Adnan Dautovic |
Aidar Imamov |
Ajin Cherian |
Akash Shankaran |
Akshat Jaimini |
Alaa Attya |
Aleksander Alekseev |
Aleksej Orlov |
Alena Rybakina |
Alex Hsieh |
Alex Malek |
Alex Shulgin |
Alex Work |
Alexander Korotkov |
Alexander Kozhemyakin |
Alexander Kuzmenkov |
Alexander Lakhin |
Alexander Pyhalov |
Alexey Palazhchenko |
Alfons Kemper |
Álvaro Herrera |
Amadeo Gallardo |
Amit Kapila |
Amit Langote |
Amul Sul |
Anastasia Lubennikova |
Anatoly Zaretsky |
Andreas Karlsson |
Andreas Ulbrich |
Andrei Lepikhov |
Andrei Zubkov |
Andres Freund |
Andrew Alsup |
Andrew Atkinson |
Andrew Bille |
Andrew Dunstan |
Andrew Kane |
Andrey Borodin |
Andrey Rachitskiy |
Andrey Sokolov |
Andy Fan |
Anthonin Bonnefoy |
Anthony Hsu |
Anton Kirilov |
Anton Melnikov |
Anton Voloshin |
Antonin Houska |
Ants Aasma |
Antti Lampinen |
Aramaki Zyake |
Artem Anisimov |
Artur Zakirov |
Ashutosh Bapat |
Ashutosh Sharma |
Atsushi Torikoshi |
Attila Gulyás |
Ayush Tiwari |
Ayush Vatsa |
Bartosz Chrol |
Benoît Ryder |
Bernd Helmle |
Bertrand Drouvot |
Bharath Rupireddy |
Bo Andreson |
Boshomi Phenix |
Bowen Shi |
Boyu Yang |
Bruce Momjian |
Cameron Vogt |
Cary Huang |
Cédric Villemain |
Changhong Fei |
Chantal Keller |
Chapman Flack |
Chengxi Sun |
Chris Travers |
Christian Maurer |
Christian Stork |
Christoph Berg |
Christoph Heiss |
Christophe Courtois |
Christopher Kline |
Claudio Freire |
Colin Caine |
Corey Huinker |
Curt Kolovson |
Dag Lem |
Dagfinn Ilmari Mannsåker |
Damir Belyalov |
Daniel Fredouille |
Daniel Gustafsson |
Daniel Shelepanov |
Daniel Vérité |
Daniel Westermann |
Darren Rush |
Dave Cramer |
Dave Page |
David Christensen |
David Cook |
David G. Johnston |
David Geier |
David Hillman |
David Perez |
David Rowley |
David Steele |
David Wheeler |
David Zhang |
Dean Rasheed |
Denis Erokhin |
Denis Laxalde |
Devrim Gündüz |
Dilip Kumar |
Dimitrios Apostolou |
Dmitry Dolgov |
Dmitry Koval |
Dmitry Vasiliev |
Dominique Devienne |
Dong Wook Lee |
Donghang Lin |
Dongming Liu |
Drew Callahan |
Drew Kimball |
Dzmitry Jachnik |
Egor Chindyaskin |
Egor Rogov |
Ekaterina Kiryanova |
Elena Indrupskaya |
Elizabeth Christensen |
Emre Hasegeli |
Eric Cyr |
Eric Mutta |
Eric Radman |
Eric Ridge |
Erik Rijkers |
Erik Wienhold |
Erki Eessaar |
Ethan Mertz |
Etsuro Fujita |
Eugen Konkov |
Euler Taveira |
Evan Macbeth |
Evgeny Morozov |
Fabien Coelho |
Fabrízio de Royes Mello |
Farias de Oliveira |
Feliphe Pozzer |
Fire Emerald |
Flavien Guedez |
Floris Van Nee |
Francesco Degrassi |
Frank Streitzig |
Gabriele Bartolini |
Garrett Thornburg |
Gavin Flower |
Gavin Panella |
Gilles Darold |
Gilles Parc |
Grant Gryczan |
Greg Nancarrow |
Greg Sabino Mullane |
Greg Stark |
Gurjeet Singh |
Haiying Tang |
Hajime Matsunaga |
Hal Takahara |
Hanefi Onaldi |
Hannu Krosing |
Hans Buschmann |
Hao Wu |
Hao Zhang |
Hayato Kuroda |
Heikki Linnakangas |
Hemanth Sandrana |
Himanshu Upadhyaya |
Hironobu Suzuki |
Holger Reise |
Hongxu Ma |
Hongyu Song |
Horst Reiterer |
Hubert Lubaczewski |
Hywel Carver |
Ian Barwick |
Ian Ilyasov |
Ilya Nenashev |
Isaac Morland |
Israel Barth Rubio |
Ivan Kartyshov |
Ivan Kolombet |
Ivan Lazarev |
Ivan Panchenko |
Ivan Trofimov |
Jacob Champion |
Jacob Speidel |
Jacques Combrink |
Jaime Casanova |
Jakub Wartak |
James Coleman |
James Pang |
Jani Rahkola |
Japin Li |
Jeevan Chalke |
Jeff Davis |
Jeff Janes |
Jelte Fennema-Nio |
Jeremy Schneider |
Jian Guo |
Jian He |
Jim Jones |
Jim Keener |
Jim Nasby |
Jingtang Zhang |
Jingxian Li |
Jingzhou Fu |
Joe Conway |
Joel Jacobson |
John Ekins |
John Hsu |
John Morris |
John Naylor |
John Russell |
Jonathan Katz |
Jordi Gutiérrez |
Joseph Koshakow |
Josh Kupershmidt |
Joshua D. Drake |
Joshua Uyehara |
Jubilee Young |
Julien Rouhaud |
Junwang Zhao |
Justin Pryzby |
Kaido Vaikla |
Kambam Vinay |
Karen Talarico |
Karina Litskevich |
Karl O. Pinc |
Kashif Zeeshan |
Kim Johan Andersson |
Kirill Reshke |
Kirk Parker |
Kirk Wolak |
Kisoon Kwon |
Koen De Groote |
Kohei KaiGai |
Kong Man |
Konstantin Knizhnik |
Kouhei Sutou |
Krishnakumar R |
Kuntal Ghosh |
Kurt Roeckx |
Kyotaro Horiguchi |
Lang Liu |
Lars Kanis |
Laurenz Albe |
Lauri Laanmets |
Legs Mansion |
Lukas Fittl |
Magnus Hagander |
Mahendrakar Srinivasarao |
Maiquel Grassi |
Manos Emmanouilidis |
Marcel Hofstetter |
Marcos Pegoraro |
Marian Krucina |
Marina Polyakova |
Mark Dilger |
Mark Guertin |
Mark Sloan |
Markus Winand |
Marlene Reiterer |
Martín Marqués |
Martin Nash |
Martin Schlossarek |
Masahiko Sawada |
Masahiro Ikeda |
Masaki Kuwamura |
Masao Fujii |
Mason Sharp |
Matheus Alcantara |
Mats Kindahl |
Matthias Kuhn |
Matthias van de Meent |
Maxim Boguk |
Maxim Orlov |
Maxim Yablokov |
Maxime Boyer |
Melanie Plageman |
Melih Mutlu |
Merlin Moncure |
Micah Gate |
Michael Banck |
Michael Bondarenko |
Michael Paquier |
Michael Wang |
Michael Zhilin |
Michail Nikolaev |
Michal Bartak |
Michal Kleczek |
Mikhail Gribkov |
Mingli Zhang |
Miroslav Bendik |
Mitsuru Hinata |
Moaaz Assali |
Muralikrishna Bandaru |
Nathan Bossart |
Nazir Bilal Yavuz |
Neil Tiffin |
Ngigi Waithaka |
Nikhil Benesch |
Nikhil Raj |
Nikita Glukhov |
Nikita Kalinin |
Nikita Malakhov |
Nikolay Samokhvalov |
Nikolay Shaplov |
Nisha Moond |
Nishant Sharma |
Nitin Jadhav |
Noah Misch |
Noriyoshi Shinoda |
Ole Peder Brandtzæg |
Oleg Bartunov |
Oleg Sibiryakov |
Oleg Tselebrovskiy |
Olleg Samoylov |
Onder Kalaci |
Ondrej Navratil |
Pablo Kharo |
Palak Chaturvedi |
Pantelis Theodosiou |
Paul Amonson |
Paul Jungwirth |
Pavel Borisov |
Pavel Kulakov |
Pavel Luzanov |
Pavel Stehule |
Pavlo Golub |
Pedro Gallegos |
Pete Storer |
Peter Eisentraut |
Peter Geoghegan |
Peter Smith |
Philip Warner |
Philipp Salvisberg |
Pierre Ducroquet |
Pierre Fortin |
Przemyslaw Sztoch |
Quynh Tran |
Raghuveer Devulapalli |
Ranier Vilela |
Reid Thompson |
Rian McGuire |
Richard Guo |
Richard Vesely |
Ridvan Korkmaz |
Robert Haas |
Robert Scott |
Robert Treat |
Roberto Mello |
Robins Tharakan |
Roman Lozko |
Ronan Dunklau |
Rui Zhao |
Ryo Matsumura |
Ryoga Yoshida |
Sameer Kumar |
Sami Imseih |
Samuel Dussault |
Sanjay Minni |
Satoru Koizumi |
Sebastian Skalacki |
Sergei Glukhov |
Sergei Kornilov |
Sergey Prokhorenko |
Sergey Sargsyan |
Sergey Shinderuk |
Shaozhong Shi |
Shaun Thomas |
Shay Rojansky |
Shihao Zhong |
Shinya Kato |
Shlok Kyal |
Shruthi Gowda |
Shubham Khanna |
Shulin Zhou |
Shveta Malik |
Simon Riggs |
Soumyadeep Chakraborty |
Sravan Velagandula |
Stan Hu |
Stepan Neretin |
Stepan Rutz |
Stéphane Schildknecht |
Stephane Tachoires |
Stephen Frost |
Steve Atkins |
Steve Chavez |
Suraj Khamkar |
Suraj Kharage |
Svante Richter |
Svetlana Derevyanko |
Sylvain Frandaz |
Takayuki Tsunakawa |
Tatsuo Ishii |
Tatsuro Yamada |
Tender Wang |
Teodor Sigaev |
Thom Brown |
Thomas Munro |
Tim Carey-Smith |
Tim Needham |
Tim Palmer |
Tobias Bussmann |
Tom Lane |
Tomas Vondra |
Tommy Pavlicek |
Tomonari Katsumata |
Tristan Partin |
Tristen Raab |
Tung Nguyen |
Umair Shahid |
Uwe Binder |
Valerie Woolard |
Vallimaharajan G |
Vasya Boytsov |
Victor Wagner |
Victor Yegorov |
Victoria Shepard |
Vidushi Gupta |
Vignesh C |
Vik Fearing |
Viktor Leis |
Vinayak Pokale |
Vitaly Burovoy |
Vojtech Benes |
Wei Sun |
Wei Wang |
Wenjiang Zhang |
Will Mortensen |
Willi Mann |
Wolfgang Walther |
Xiang Liu |
Xiaoran Wang |
Xing Guo |
Xudong Yang |
Yahor Yuzefovich |
Yajun Hu |
Yaroslav Saburov |
Yong Li |
Yongtao Huang |
Yugo Nagata |
Yuhang Qiu |
Yuki Seino |
Yura Sokolov |
Yurii Rashkovskii |
Yuuki Fujii |
Yuya Watari |
Yves Colin |
Zhihong Yu |
Zhijie Hou |
Zongliang Quan |
Zubeyr Eryilmaz |
Zuming Jiang |