<title>Release date:</title> リリース日: 2025-02-13
This release contains a variety of fixes from 17.2. For information about new features in major release 17, see <xref linkend="release-17"/>. このリリースは17.2に対し、様々な不具合を修正したものです。 17メジャーリリースにおける新機能については、E.6を参照してください。
A dump/restore is not required for those running 17.X. 17.Xからの移行ではダンプ/リストアは不要です。
However, if you are upgrading from a version earlier than 17.1, see <xref linkend="release-17-1"/>. また、17.1より前のバージョンからアップグレードする場合は、E.5を参照してください。
Harden <function>PQescapeString</function> and allied functions
against invalidly-encoded input strings (Andres Freund, Noah Misch)
無効なエンコードがされた入力文字列に対して、PQescapeString
および関連する関数が強化されました。
(Andres Freund, Noah Misch)
§
§
§
§
§
§
Data-quoting functions supplied by <application>libpq</application> now fully check the encoding validity of their input. If invalid characters are detected, they report an error if possible. For the ones that lack an error return convention, the output string is adjusted to ensure that the server will report invalid encoding and no intervening processing will be fooled by bytes that might happen to match single quote, backslash, etc. libpqが提供するクォートを付加する関数は、入力のエンコーディングの妥当性を完全にチェックするようになりました。 無効な文字が検出された場合、可能であればエラーを報告します。 エラーを返す規則がない関数については、出力文字列が調整され、サーバは無効なエンコーディングを報告し、介在するプロセスがシングルクォートやバックスラッシュなどに偶然一致するバイト列に騙されないようになりました。
The purpose of this change is to guard against SQL-injection attacks that are possible if one of these functions is used to quote crafted input. There is no hazard when the resulting string is sent directly to a <productname>PostgreSQL</productname> server (which would check its encoding anyway), but there is a risk when it is passed through <application>psql</application> or other client-side code. Historically such code has not carefully vetted encoding, and in many cases it's not clear what it should do if it did detect such a problem. この変更の目的は、これらの関数のいずれかが細工された入力にクォートを付加するために使用された場合に発生する可能性のあるSQLインジェクション攻撃から保護することです。 結果の文字列がPostgreSQLサーバ(いずれにしてもエンコーディングをチェックする)に直接送信される場合には危険はありませんが、psqlやその他のクライアント側のコードに渡している場合にはリスクがあります。 歴史的に、このようなコードはエンコーディングを慎重に検証しておらず、多くの場合、このような問題を検出した場合に何をすべきかが明確ではありません。
This fix is effective only if the data-quoting function, the server, and any intermediate processing agree on the character encoding that's being used. Applications that insert untrusted input into SQL commands should take special care to ensure that that's true. この修正は、クォート関数、サーバ、および介在する処理で使用される文字エンコーディングが一致する場合にのみ有効です。 信頼できない入力をSQLコマンドに挿入するアプリケーションは、それが正しいことを保証するために特別な注意を払う必要があります。
Applications and drivers that quote untrusted input without using these <application>libpq</application> functions may be at risk of similar problems. They should first confirm the data is valid in the encoding expected by the server. これらのlibpq関数を使用せずに信頼できない入力にクォートを付加するアプリケーションとドライバは、同様の問題に直面する可能性があります。 そのようなアプリケーションやドライバはまず、データがサーバが期待するエンコーディングで有効であることを確認する必要があります。
The <productname>PostgreSQL</productname> Project thanks Stephen Fewer for reporting this problem. (CVE-2025-1094) PostgreSQLプロジェクトは、本問題を報告してくれたStephen Fewerに感謝します。 (CVE-2025-1094)
Restore auto-truncation of database and user names appearing in connection requests (Nathan Bossart) 接続要求に表示されるデータベース名とユーザ名の自動切り捨てが元に戻されました。 (Nathan Bossart) §
This reverts a v17 change that proved to cause trouble for some
users. Over-length names should be truncated in an encoding-aware
fashion, but for now just return to the former behavior of blind
truncation at <literal>NAMEDATALEN-1</literal> bytes.
これは、一部のユーザに問題を引き起こしたv17の変更を元に戻すものです。
長すぎる名前は、エンコーディングを意識した方法で切り捨てられるべきですが、現時点ではNAMEDATALEN-1
バイトでの単なる切り捨てをする以前の動作に戻るだけです。
Exclude parallel workers from connection privilege checks and limits (Tom Lane) 接続権限と接続数上限のチェックからパラレルワーカーが除外されました。 (Tom Lane) §
Do not
check <literal>datallowconn</literal>, <literal>rolcanlogin</literal>,
and <literal>ACL_CONNECT</literal> privileges when starting a
parallel worker, instead assuming that it's enough for the leader
process to have passed similar checks originally. This avoids, for
example, unexpected failures of parallelized queries when the leader
is running as a role that lacks login privilege. In the same vein,
enforce <literal>ReservedConnections</literal>,
<literal>datconnlimit</literal>, and <literal>rolconnlimit</literal>
limits only against regular backends, and count only regular
backends while checking if the limits were already reached. Those
limits are meant to prevent excessive consumption of process slots
for regular backends --- but parallel workers and other special
processes have their own pools of process slots with their own limit
checks.
パラレルワーカーを起動する時にdatallowconn
、rolcanlogin
、ACL_CONNECT
権限をチェックせず、代わりに、リーダープロセスが最初に同様のチェックに合格していれば十分であると想定します。
これにより、例えば、リーダーがログイン権限を持たないロールとして実行されている場合に、パラレル問い合わせでの予期しない失敗が回避されます。
同様に、ReservedConnections
、datconnlimit
、rolconnlimit
制限を
通常のバックエンドに対してのみ適用し、制限にすでに達しているかどうかを確認する際は、通常のバックエンドに対してのみカウントします。
これらの制限は、通常のバックエンドのプロセススロットが過剰な消費を防ぐためのものですが、パラレルワーカーやその他の特殊なプロセスには、独自の制限チェックを備えた独自のプロセススロットプールがあります。
Drop <quote>Lock</quote> suffix from LWLock wait event names (Bertrand Drouvot) LWLock待機イベント名から「Lock」接尾辞が削除されました。 (Bertrand Drouvot) §
Refactoring unintentionally caused
the <structname>pg_stat_activity</structname> view to show
lock-related wait event names with a <quote>Lock</quote> suffix,
which among other things broke joining it
to <structname>pg_wait_events</structname>.
リファクタリングによって、意図せずpg_stat_activity
ビューに「Lock」接尾辞を持つロック関連の待機イベント名が表示されるようになりましたが、特にpg_wait_events
との結合が壊れていました。
Fix possible failure to return all matching tuples for a btree index
scan with a ScalarArrayOp (<literal>= ANY</literal>) condition
(Peter Geoghegan)
ScalarArrayOp(= ANY
)条件でのbtreeインデックススキャンで一致するすべてのタプルを返せない可能性が修正されました。
(Peter Geoghegan)
§
Fix possible re-use of stale results in window aggregates (David Rowley) ウィンドウ集約で古い結果が再利用される可能性が修正されました。 (David Rowley) §
A window aggregate with a <quote>run condition</quote> optimization and a pass-by-reference result type might incorrectly return the result from the previous partition instead of performing a fresh calculation. 「run condition」最適化と参照渡しの結果型を持つウィンドウ集約で、新しい計算を実行する代わりに、前のパーティションの結果を誤って返す可能性がありました。
Keep <varname>TransactionXmin</varname> in sync
with <varname>MyProc->xmin</varname> (Heikki Linnakangas)
TransactionXmin
をMyProc->xmin
と同期させるようになりました。
(Heikki Linnakangas)
§
This oversight could permit a process to try to access data that had already been vacuumed away. One known consequence is transient <quote>could not access status of transaction</quote> errors. この見落としにより、プロセスがすでにバキュームされていたデータにアクセスしようとする可能性がありました。 結果として、一時的な「could not access status of transaction」エラーが発生することが知られています。
Fix race condition that could cause failure to add a newly-inserted catalog entry to a catalog cache list (Heikki Linnakangas) 新しく挿入されたカタログエントリをカタログキャッシュリストに追加できない可能性がある競合状態が修正されました。 (Heikki Linnakangas) §
This could result, for example, in failure to use a newly-created function within an existing session. この結果、例えば、既存のセッション内で新たに作成された関数を使用できなくなる可能性がありました。
Prevent possible catalog corruption when a system catalog is vacuumed concurrently with an update (Noah Misch) システムカタログが更新と同時にバキュームされる時にカタログが破損するのが防止されました。 (Noah Misch) § §
Fix data corruption when relation truncation fails (Thomas Munro) リレーションの切り捨てが失敗した場合に発生するデータ破損が修正されました。 (Thomas Munro) § § §
The filesystem calls needed to perform relation truncation could fail, leaving inconsistent state on disk (for example, effectively reviving deleted data). We can't really prevent that, but we can recover by dint of making such failures into PANICs, so that consistency is restored by replaying from WAL up to just before the attempted truncation. This isn't a hugely desirable behavior, but such failures are rare enough that it seems an acceptable solution. リレーションの切り捨て実行に必要なファイルシステムコールが失敗し、ディスクに不整合な状態が残る可能性があります(例えば、削除されたデータが実質的に復活してしまうなど)。 これを実際に防ぐことはできませんが、そのような失敗をPANICにすることで、WALから切り捨てが試行される直前までをリプレイすることで整合性を回復できます。 これは必ずしも望ましい動作ではありませんが、このような失敗は非常にまれであるため、許容できる解決策であると考えられます。
Prevent checkpoints from starting during relation truncation (Robert Haas) リレーションの切り捨て中にチェックポイントが開始されないようになりました。 (Robert Haas) §
This avoids a race condition wherein the modified file might not get fsync'd before completing the checkpoint, creating a risk of data corruption if the operating system crashes soon after. これにより、チェックポイントが完了する前に変更されたファイルがfsyncされず、直後にオペレーティングシステムがクラッシュした場合にデータ破損の危険性があるという競合状態が回避することができます。
Avoid possibly losing an update of
<structname>pg_database</structname>.<structfield>datfrozenxid</structfield>
when <command>VACUUM</command> runs concurrently with
a <command>REASSIGN OWNED</command> that changes that database's
owner (Kirill Reshke)
データベースの所有者を変更するREASSIGN OWNED
とVACUUM
が同時に実行された場合に、pg_database
.datfrozenxid
の更新情報を失う可能性が回避されました。
(Kirill Reshke)
§
Fix incorrect <structfield>tg_updatedcols</structfield> values
passed to <literal>AFTER UPDATE</literal> triggers (Tom Lane)
AFTER UPDATE
トリガに渡される不正なtg_updatedcols
の値が修正されました。
(Tom Lane)
§
In some cases the <structfield>tg_updatedcols</structfield> bitmap
could describe the set of columns updated by an earlier command in
the same transaction, fooling the trigger into doing the wrong
thing.
場合によっては、tg_updatedcols
ビットマップが、同一トランザクション内の以前のコマンドによって更新された一連の列集合を表すことがあり、トリガが誤った処理を実行する可能性がありました。
Also, prevent memory bloat caused by making too many copies of
the <structfield>tg_updatedcols</structfield> bitmap.
また、tg_updatedcols
ビットマップのコピーを過剰に作成することによるメモリの膨張が防止されました。
Fix detach of a partition that has its own foreign-key constraint referencing a partitioned table (Amul Sul) パーティションテーブルを参照する外部キー制約を持つパーティションのデタッチが修正されました。 (Amul Sul) §
In common cases, foreign keys are defined on a partitioned table's
top level; but if instead one is defined on a partition and
references a partitioned table, and the referencing partition is
detached, the relevant <structname>pg_constraint</structname>
entries were updated incorrectly. This led to errors
like <quote>could not find ON INSERT check triggers of foreign key
constraint</quote>.
通常、外部キーはパーティションテーブルの最上位レベルで定義されます。
しかし、代わりに外部キーがパーティション上で定義され、別のパーティションテーブルを参照している場合、参照元のパーティションが切り離されると、関連するpg_constraint
エントリが誤って更新されていました。
その結果、「could not find ON INSERT check triggers of foreign key constraint」などのエラーが発生していました。
Fix <function>pg_get_constraintdef</function>'s support
for <literal>NOT NULL</literal> constraints on domains
(Álvaro Herrera)
ドメイン上のNOT NULL
制約に対するpg_get_constraintdef
のサポートが修正されました。
(Álvaro Herrera)
§
Fix mis-processing of <function>to_timestamp</function>'s
<literal>FF<replaceable>n</replaceable></literal> format codes
(Tom Lane)
to_timestamp
のFF
書式コードの誤った処理が修正されました。
(Tom Lane)
§
n
An integer format code immediately
preceding <literal>FF<replaceable>n</replaceable></literal> would
consume all available digits, leaving none
for <literal>FF<replaceable>n</replaceable></literal>.
FF
の直前の整数書式コードは、利用可能な桁数をすべて消費してしまい、n
FF
のための桁数が何も残らない問題が発生していました。
n
When deparsing a <literal>PASSING</literal> clause in a SQL/JSON
query function, ensure that variable names are double-quoted when
necessary (Dean Rasheed)
SQL/JSONクエリ関数のPASSING
句を逆解析するときは、必要に応じて変数名を二重引用符で囲むようになりました。
(Dean Rasheed)
§
When deparsing an <literal>XMLTABLE()</literal> expression, ensure
that XML namespace names are double-quoted when necessary (Dean
Rasheed)
XMLTABLE()
式を逆解析するときは、必要に応じてXML名前空間名を二重引用符で囲むようになりました。
(Dean Rasheed)
§
Include the <literal>ldapscheme</literal> option
in <function>pg_hba_file_rules()</function> output (Laurenz Albe)
pg_hba_file_rules()
の出力にldapscheme
オプションが含まれるようになりました。
(Laurenz Albe)
§
§
Fix planning of pre-sorted <literal>UNION</literal> operations for
cases where the input column datatypes don't all match (David
Rowley)
入力列のデータ型がすべて一致しない場合のソート済UNION
操作のプランニングが修正されました。
(David Rowley)
§
This error could lead to sorting data with the wrong sort operator, with consequences ranging from no visible problem to core dumps. このエラーにより、間違ったソート演算子でデータがソートされる可能性があり、その結果は目に見える問題がない場合からコアダンプが発生する場合まで、さまざまな結果が生じる可能性がありました。
Don't merge <literal>UNION</literal> operations if their column
collations aren't consistent (Tom Lane)
列の照合順序が一貫していない場合は、UNION
操作をマージしないように修正されました。
(Tom Lane)
§
Previously we ignored collations when deciding if it's safe to
merge <literal>UNION</literal> steps into a single
N-way <literal>UNION</literal> operation. This was arguably valid
before the introduction of nondeterministic collations, but it's not
anymore, since the collation in use can affect the definition of
uniqueness.
以前は、UNION
ステップを単一のN方向UNION
操作にマージするのが安全かどうかを判断する際に、照合順序を無視していました。
これは、非決定論的照合順序が導入される前はおそらく有効でしたが、現在では使用されている照合順序が一意性の定義に影響を与える可能性があるため、もはや有効ではありません。
Prevent <quote>wrong varnullingrels</quote> planner errors after pulling up a subquery that's underneath an outer join (Tom Lane) 外部結合の下にある副問い合わせをプルアップした後の「wrong varnullingrels」プランナエラーが防止されました。 (Tom Lane) § §
Ignore nulling-relation marker bits when looking up statistics (Richard Guo) 統計情報を検索するときに、NULLになるリレーションのマーカービットを無視するようになりました。 (Richard Guo) §
This oversight could lead to failure to use relevant statistics about expressions, or to <quote>corrupt MVNDistinct entry</quote> errors. この見落としにより、式に関する適切な統計処理が使用できなかったり、「corrupt MVNDistinct entry」エラーが発生する可能性がありました。
Fix missed expression processing for partition pruning steps (Tom Lane) パーティション除去ステップにおける式処理の見落としが修正されました。 (Tom Lane) §
This oversight could lead to <quote>unrecognized node type</quote> errors, and perhaps other problems, in queries accessing partitioned tables. この見落としにより、パーティションテーブルにアクセスする問い合わせで、「unrecognized node type」エラーやその他の問題が発生する可能性がありました。
Give the slotsync worker process its own process slot (Tom Lane, Hou Zhijie) slotsyncワーカープロセスに独自のプロセススロットを割り当てるようになりました。 (Tom Lane, Hou Zhijie) §
This was overlooked in the addition of the slotsync worker, with the
result that its process slot effectively came out of the pool meant
for regular backend processes. This could result in failure to
launch the worker, or to subsequent failures of connection requests
that should have succeeded according to the configured settings,
if the number of regular backend processes
approached <varname>max_connections</varname>.
slotsyncワーカーの追加時にこの点が見落とされていたため、その結果、そのプロセススロットが通常のバックエンドプロセス用のプールから実質的に外れてしまいました。
この結果、通常のバックエンドプロセスの数がmax_connections
に近づいた場合に、ワーカーの起動に失敗したり、設定に従って成功するはずだった接続要求が失敗する可能性がありました。
Allow dshash tables to grow past 1GB (Matthias van de Meent) dshashテーブルが1ギガバイトを超えて拡張できるようになりました。 (Matthias van de Meent) §
This avoids errors like <quote>invalid DSA memory alloc request size</quote>. The case can occur for example in transactions that process several million tables. これにより、「invalid DSA memory alloc request size」などのエラーが回避されます。 これは、例えば数百万の表を処理するトランザクションで発生する可能性がありました。
Avoid possible integer overflow
in <function>bringetbitmap()</function> (James Hunter, Evgeniy
Gorbanyov)
bringetbitmap()
で発生する可能性のある整数オーバーフローが回避されました。
(James Hunter, Evgeniy Gorbanyov)
§
Since the result is only used for statistical purposes, the effects of this error were mostly cosmetic. この結果は統計目的でのみ使用されるため、このエラーの影響は主に見た目に関するものでした。
Correct miscalculation of SLRU bank numbers (Yura Sokolov) SLRUバンク数の計算ミスが修正されました。 (Yura Sokolov) §
This error led to using a smaller number of banks than intended, causing more contention but no functional misbehavior. このエラーにより、意図したバンク数よりも少ないバンク数が使用されたため、より多くの競合が発生しましたが、機能上の不具合はありませんでした。
Ensure that an already-set process latch doesn't prevent the postmaster from noticing socket events (Thomas Munro) すでに設定されているプロセスラッチによって、postmasterがソケットイベントを認識できないことは発生しなくなりました。 (Thomas Munro) §
An extremely heavy workload of backends launching workers and workers exiting could prevent the postmaster from responding to incoming client connections in a timely fashion. バックエンドによるワーカーの起動と終了のワークロードが非常に重いと、postmasterがクライアントからの接続にタイムリーに応答できなくなる可能性がありました。
Prevent streaming standby servers from looping infinitely when reading a WAL record that crosses pages (Kyotaro Horiguchi, Alexander Kukushkin) ストリーミングスタンバイサーバがページをまたぐWALレコードを読み込む際の無限ループの発生が防止されました。 (Kyotaro Horiguchi, Alexander Kukushkin) §
This would happen when the record's continuation is on a page that needs to be read from a different WAL source. これは、レコードの継続が別のWALソースから読む必要のあるページにある場合に発生していました。
Fix unintended promotion of FATAL errors to PANIC during early process startup (Noah Misch) プロセスの初期起動中にFATALエラーが意図せずPANICに昇格してしまう問題が修正されました。 (Noah Misch) §
This fixes some unlikely cases that would result in <quote>PANIC: proc_exit() called in child process</quote>. これにより、「PANIC: proc_exit() called in child process」というエラーが発生する可能性の低いケースが修正されます。
Fix cases where an operator family member operator or support procedure could become a dangling reference (Tom Lane) 演算子族メンバの演算子、またはサポートプロシージャが宙に浮いた参照になる可能性があるケースが修正されました。 (Tom Lane) § §
In some cases a data type could be dropped while references to its
OID still remain in <structname>pg_amop</structname>
or <structname>pg_amproc</structname>. While that caused no
immediate issues, an attempt to drop the owning operator family
would fail, and <application>pg_dump</application> would produce
bogus output when dumping the operator family. This fix causes
creation and modification of operator families/classes to add
needed dependency entries so that dropping a data type will also
drop any dependent operator family elements. That does not help
vulnerable pre-existing operator families, though, so a band-aid has
also been added to <command>DROP OPERATOR FAMILY</command> to
prevent failure when dropping a family that has dangling members.
pg_amop
またはpg_amproc
にOIDへの参照が残っている状態でデータ型が削除される場合がありました。
これによって直ちに問題が発生することはありませんが、所有する演算子族を削除しようとすると失敗し、pg_dumpが演算子族をダンプする際に誤った出力を生成することがありました。
この修正により、演算子族クラスの作成と変更に必要な依存関係エントリが追加され、データ型を削除すると依存する演算子族要素も削除されます。
しかし、これは脆弱な既存の演算子族には役立ちませんので、宙に浮いたメンバを持つ演算子族を削除する際の失敗を防ぐための対策がDROP OPERATOR FAMILY
に追加されました。
Fix multiple memory leaks in logical decoding output (Vignesh C, Masahiko Sawada, Boyu Yang) ロジカルデコーディングの出力における複数のメモリリークが修正されました。 (Vignesh C, Masahiko Sawada, Boyu Yang) § § §
Fix small memory leak when
updating the <varname>application_name</varname>
or <varname>cluster_name</varname> settings (Tofig Aliev)
application_name
またはcluster_name
設定を更新するときの小さなメモリリークが修正されました。
(Tofig Aliev)
§
Avoid crash when a background process tries to check a new value
of <varname>synchronized_standby_slots</varname> (Álvaro Herrera)
バックグラウンドプロセスがsynchronized_standby_slots
の新しい値をチェックしようとしたときのクラッシュが回避されました。
(Álvaro Herrera)
§
Avoid integer overflow while
testing <varname>wal_skip_threshold</varname> condition (Tom Lane)
wal_skip_threshold
条件のテスト中の整数オーバーフローが回避されました。
(Tom Lane)
§
A transaction that created a very large relation could mistakenly
decide to ensure durability by copying the relation into WAL instead
of fsync'ing it, thereby negating the point
of <varname>wal_skip_threshold</varname>. (This only matters
when <varname>wal_level</varname> is set
to <literal>minimal</literal>, else a WAL copy is required anyway.)
非常に大きなリレーションを作成したトランザクションは、fsyncではなくWALにリレーションをコピーすることで永続性を確保しようと誤って判断し、wal_skip_threshold
の効果が無効になる可能性がありました。
(これは、wal_level
がminimal
に設定されている場合にのみ問題となります。それ以外の場合は、いずれにしてもWALコピーが必要です。)
Fix unsafe order of operations during cache lookups (Noah Misch) キャッシュ検索時の安全でない操作順序が修正されました。 (Noah Misch) §
The only known consequence was a usually-harmless <quote>you don't
own a lock of type ExclusiveLock</quote> warning
during <command>GRANT TABLESPACE</command>.
知られている唯一の影響は、GRANT TABLESPACE
時に「you don't own a lock of type ExclusiveLock」という通常は無害なWARNINGが表示されることでした。
Avoid potential use-after-free in parallel vacuum (Vallimaharajan G, John Naylor) 並列バキュームでのメモリ解放後使用の可能性が回避されました。 (Vallimaharajan G, John Naylor) §
This bug seems to have no consequences in standard builds, but it's theoretically a hazard. このバグは標準的なビルドでは影響がないように見えますが、理論的には危険です。
Fix possible <quote>failed to resolve name</quote> failures when using JIT on older ARM platforms (Thomas Munro) 古いARMプラットフォームでJITを使用した場合に発生する可能性がある「failed to resolve name」エラーが修正されました。 (Thomas Munro) §
This could occur as a consequence of inconsistency about the default
setting of <option>-moutline-atomics</option> between gcc and clang.
At least Debian and Ubuntu are known to ship gcc and clang compilers
that target armv8-a but differ on the use of outline atomics by
default.
これは、gccとclangとの間で-moutline-atomics
のデフォルト設定に一貫性がないために発生する可能性があります。
少なくともDebianとUbuntuは、armv8-aをターゲットとするgccとclangコンパイラを出荷していることが知られていますが、デフォルトのアウトラインアトミックの使用については異なっています。
Fix assertion failure in <literal>WITH RECURSIVE ... UNION</literal>
queries (David Rowley)
WITH RECURSIVE ... UNION
の問い合わせでのアサーションエラーが修正されました。
(David Rowley)
§
Avoid assertion failure in rule deparsing if a set operation leaf query contains set operations (Man Zeng, Tom Lane) 集合操作のリーフ問い合わせに集合操作が含まれている場合、ルールの逆解析でのアサーションエラーが回避されました。 (Man Zeng, Tom Lane) §
Avoid edge-case assertion failure in parallel query startup (Tom Lane) パラレルクエリ起動時のエッジケースでのアサーションエラーが回避されました。 (Tom Lane) §
Fix assertion failure at shutdown when writing out the statistics file (Michael Paquier) シャットダウンで統計ファイルを書き出すときのアサーションエラーが修正されました。 (Michael Paquier) §
Avoid valgrind complaints about string hashing code (John Naylor) 文字列ハッシュコードに関するvalgrindの警告が修正されました。 (John Naylor) §
In <function>NULLIF()</function>, avoid passing a read-write
expanded object pointer to the data type's equality function
(Tom Lane)
NULLIF()
では、読み書き拡張オブジェクトポインタをデータ型の等価関数に渡さないようになりました。
(Tom Lane)
§
The equality function could modify or delete the object if it's
given a read-write pointer, which would be bad if we decide to
return it as the <function>NULLIF()</function> result. There is
probably no problem with any built-in equality function, but it's
easy to demonstrate a failure with one coded in PL/pgSQL.
読み書き可能なポインタが渡されると、等価関数はオブジェクトを変更または削除する可能性があります。
そのため、NULLIF()
の結果としてそのポインタを返すことにした場合、問題が発生する可能性があります。
組み込みの等価関数ではおそらく問題はありませんが、PL/pgSQLでコーディングされた等価関数で失敗を示すのは簡単です。
Ensure that expression preprocessing is applied to a default null
value in <command>INSERT</command> (Tom Lane)
INSERT
のデフォルトのNULL値に式の前処理が適用されるようになりました。
(Tom Lane)
§
If the target column is of a domain type, the planner must insert a coerce-to-domain step not just a null constant, and this expression missed going through some required processing steps. There is no known consequence with domains based on core data types, but in theory an error could occur with domains based on extension types. 対象列がドメイン型の場合、プランナは単なるNULL定数だけでなくcoerce-to-domainステップを挿入する必要があり、この式はいくつかの必要な処理ステップを実行していませんでした。 コアデータ型に基づくドメインでの既知の影響はありませんが、理論的には拡張型に基づくドメインでエラーが発生する可能性がありました。
Avoid data loss when starting a bulk write on a relation fork that already contains data (Matthias van de Meent) すでにデータが含まれているリレーションフォークでバルク書き込みを開始するときのデータ損失が回避されました。 (Matthias van de Meent) §
Any pre-existing data was overwritten with zeroes. This is not an issue for core <productname>PostgreSQL</productname>, which never does that. Some extensions would like to, however. 既存のデータはすべてゼロで上書きされました。 これはPostgreSQLコアではこのようなことは決しておこなわれませんので、問題になりません。 ただし、一部の拡張ではそうしたいものもあります。
Avoid crash if a server process tried to iterate over a shared radix tree that it didn't create (Masahiko Sawada) サーバプロセスが作成していない共有基数木を反復処理しようとした場合のクラッシュが回避されました。 (Masahiko Sawada) §
There is no code in core <productname>PostgreSQL</productname> that does this, but an extension might wish to. PostgreSQLコアにはこれを実行するコードはありませんが、拡張では実行を希望するかもしれません。
Repair memory leaks in PL/Python (Mat Arye, Tom Lane) PL/Pythonのメモリリークが修復されました。 (Mat Arye, Tom Lane) §
Repeated use of <function>PLyPlan.execute</function>
or <function>plpy.cursor</function> resulted in memory leakage for
the duration of the calling PL/Python function.
PLyPlan.execute
またはplpy.cursor
を繰り返し使用すると、PL/Python関数の呼び出し中にメモリリークが発生していました。
Fix PL/Tcl to compile with Tcl 9 (Peter Eisentraut) PL/TclがTcl 9でコンパイルできるように修正されました。 (Peter Eisentraut) §
In the <application>ecpg</application> preprocessor, fix possible misprocessing of cursors that reference out-of-scope variables (Tom Lane) ecpgプリプロセッサで、スコープ外の変数を参照するカーソルの誤った処理の可能性が修正されました。 (Tom Lane) §
In <application>ecpg</application>, fix compile-time warnings about
unsupported use of <literal>COPY ... FROM STDIN</literal> (Ryo
Kanbayashi)
ecpgで、サポートされていないCOPY ... FROM STDIN
の使用に関するコンパイル時の警告が修正されました。
(Ryo Kanbayashi)
§
Previously, the intended warning was not issued due to a typo. 以前は、タイプミスのために意図した警告が発行されませんでした。
Fix <application>psql</application> to safely handle file path names that are encoded in SJIS (Tom Lane) psqlが、SJISでエンコードされたファイルパス名を安全に処理できるように修正されました。 (Tom Lane) §
Some two-byte characters in SJIS have a second byte that is equal to
ASCII backslash (<literal>\</literal>). These characters were
corrupted by path name normalization, preventing access to files
whose names include such characters.
SJISのいくつかの2バイト文字では、2バイト目がASCIIのバックスラッシュ(\
)に相当します。
これらの文字は、パス名の正規化によって破損していたため、ファイル名にそのような文字が含まれるファイルにアクセスできない問題がありました。
Add <application>psql</application> tab completion for <literal>COPY
(MERGE INTO)</literal> (Jian He)
psqlでCOPY (MERGE INTO)
タブ補完機能が追加されました。
(Jian He)
§
Fix use of wrong version of <function>pqsignal()</function>
in <application>pgbench</application>
and <application>psql</application> (Fujii Masao, Tom Lane)
pgbenchとpsqlにおけるpqsignal()
の間違ったバージョンの使用が修正されました。
(Fujii Masao, Tom Lane)
§
This error could lead to misbehavior when using
the <option>-T</option> option in <application>pgbench</application>
or the <command>\watch</command> command
in <application>psql</application>, due to interrupted system calls
not being resumed as expected.
このエラーにより、pgbenchの-T
オプションやpsqlの\watch
コマンドの使用時に、中断されたシステムコールが期待通りに再開されないため、誤動作が発生する可能性がありました。
Fix misexecution of some nested <command>\if</command> constructs
in <application>pgbench</application> (Michail Nikolaev)
pgbench内の一部のネストされた\if
構造の誤った実行が修正されました。
(Michail Nikolaev)
§
An <command>\if</command> command appearing within a false
(not-being-executed) <command>\if</command> branch was incorrectly
treated the same as <command>\elif</command>.
偽の(実行されていない)\if
分岐内に現れた\if
コマンドが誤って\elif
と同じように扱われていました。
In <application>pgbench</application>, fix possible misdisplay of progress messages during table initialization (Yushi Ogiwara, Tatsuo Ishii, Fujii Masao) pgbenchで、テーブルの初期化中に進行状況メッセージが誤って表示される可能性が修正されました。 (Yushi Ogiwara, Tatsuo Ishii, Fujii Masao) § §
Make <application>pg_controldata</application> more robust against
corrupted <filename>pg_control</filename> files (Ilyasov Ian, Anton
Voloshin)
pg_controldataが破損したpg_control
ファイルに対してより堅牢になりました。
(Ilyasov Ian, Anton Voloshin)
§
Since <application>pg_controldata</application> will attempt to
print the contents of <filename>pg_control</filename> even if the
CRC check fails, it must take care not to misbehave for invalid
field values. This patch fixes some issues triggered by invalid
timestamps and apparently-negative WAL segment sizes.
pg_controldataはCRCチェックが失敗してもpg_control
の内容を出力しようとするため、無効なフィールド値に対して誤動作しないように注意しなければなりません。
このパッチにより、無効なタイムスタンプと明らかに負のWALセグメントサイズによって引き起こされるいくつかの問題が修正されました。
Fix possible crash in <application>pg_dump</application> with identity sequences attached to tables that are extension members (Tom Lane) 拡張メンバであるテーブルにIDシーケンスがアタッチされている場合に、pg_dumpで発生する可能性のあるクラッシュが修正されました。 (Tom Lane) §
Fix memory leak in <application>pg_restore</application> with zstd-compressed data (Tom Lane) zstd圧縮データを使用したpg_restoreのメモリリークが修正されました。 (Tom Lane) §
The leak was per-decompression-operation, so would be most noticeable with a dump containing many tables or large objects. リークは解凍操作ごとに発生していたため、多数のテーブルや大きなオブジェクトを含むダンプで最も顕著になります。
Fix <application>pg_basebackup</application> to correctly
handle <filename>pg_wal.tar</filename> files exceeding 2GB on
Windows (Davinder Singh, Thomas Munro)
Windowsで2ギガバイトを超えるpg_wal.tar
ファイルを正しく処理できるようにpg_basebackupが修正されました。
(Davinder Singh, Thomas Munro)
§
§
Use SQL-standard function bodies in the declarations
of <filename>contrib/earthdistance</filename>'s SQL-language
functions (Tom Lane, Ronan Dunklau)
contrib/earthdistance
のSQL言語関数の宣言で、標準SQL関数の本体を使用するようになりました。
(Tom Lane, Ronan Dunklau)
§
This change allows their references
to <filename>contrib/cube</filename> to be resolved during extension
creation, reducing the risk of search-path-based failures and
possible attacks.
この変更により、拡張の作成時にcontrib/cube
への参照が解決され、検索パスに基づく障害や攻撃のリスクが軽減されます。
In particular, this restores their usability in contexts like
generated columns, for which <productname>PostgreSQL</productname>
v17 restricts the search path on security grounds. We have received
reports of databases failing to be upgraded to v17 because of that.
This patch has been included in v16 to provide a workaround:
updating the <filename>earthdistance</filename> extension to this
version beforehand should allow an upgrade to succeed.
特に、PostgreSQL v17がセキュリティ上の理由から検索パスを制限している生成列のようなコンテキストでの使いやすさが回復されます。
これにより、データベースをv17にアップグレードできないという報告を受けています。
このパッチは、回避策を提供するためにv16に含まれています。earthdistance
拡張を事前にこのバージョンにアップデートしておけば、アップグレードは成功するはずです。
Detect version mismatch
between <filename>contrib/pageinspect</filename>'s SQL declarations
and the underlying shared library (Tomas Vondra)
contrib/pageinspect
のSQL宣言と基礎となる共有ライブラリとの間のバージョン不一致を検出するようになりました。
(Tomas Vondra)
§
Previously, such a mismatch could result in a crash while
calling <function>brin_page_items()</function>. Instead throw an
error recommending updating the extension.
以前は、このような不一致によりbrin_page_items()
の呼び出し時にクラッシュが発生する可能性がありました。
代わりに、拡張のアップデートを推奨するエラーが発生するようになりました。
When trying to cancel a remote query
in <filename>contrib/postgres_fdw</filename>, re-issue the cancel
request a few times if it didn't seem to do anything (Tom Lane)
contrib/postgres_fdw
でリモート問い合わせをキャンセルしようとした際に、何もおこなわれなかったように見える場合は、キャンセル要求を数回再発行するようになりました。
(Tom Lane)
§
This fixes a race condition where we might try to cancel a just-sent query before the remote server has started to process it, so that the initial cancel request is ignored. これにより、リモートサーバが処理を開始する前に送信されたばかりの問い合わせをキャンセルしようとする競合状態が修正され、最初のキャンセルリクエストは無視されるようになります。
Update configuration probes that determine the compiler switches needed to access ARM CRC instructions (Tom Lane) ARM CRC命令にアクセスするために必要なコンパイラスイッチを決定する設定プローブが更新されました。 (Tom Lane) §
On ARM platforms where the baseline CPU target lacks CRC
instructions, we need to supply a <option>-march</option> switch to
persuade the compiler to compile such instructions. Recent versions
of gcc reject the value we were trying, leading to silently falling
back to software CRC.
ベースラインCPUターゲットにCRC命令がないARMプラットフォームでは、コンパイラにそのような命令をコンパイルさせるために-march
スイッチを指定する必要があります。
最近のバージョンのgccは、私たちが試していた値を拒否し、ソフトウェアCRCに自動的にフォールバックします。
Fix meson build system to support old OpenSSL libraries on Windows (Darek Slusarczyk) Windows上で古いOpenSSLライブラリをサポートするように、mesonビルドシステムが修正されました。 (Darek Slusarczyk) §
Add support for the legacy library
names <filename>ssleay32</filename>
and <filename>libeay32</filename>.
従来のライブラリ名ssleay32
とlibeay32
のサポートが追加されました。
In Windows builds using meson, ensure all libcommon and libpgport functions are exported (Vladlen Popolitov, Heikki Linnakangas) mesonを使用したWindowsビルドで、すべてのlibcommon関数とlibpgport関数のエクスポートが確認されるようになりました。 (Vladlen Popolitov, Heikki Linnakangas) § §
This fixes <quote>unresolved external symbol</quote> build errors for extensions. これにより、拡張ビルド時の「unresolved external symbol」エラーが修正されます。
Fix meson configuration process to correctly detect
OSSP's <filename>uuid.h</filename> header file under MSVC
(Andrew Dunstan)
MSVCでOSSPのuuid.h
ヘッダファイルを正しく検出するようにmeson設定プロセスが修正されました。
(Andrew Dunstan)
§
When building with meson, install <filename>pgevent</filename>
in <replaceable>pkglibdir</replaceable>
not <replaceable>bindir</replaceable> (Peter Eisentraut)
mesonでビルドする場合、pgevent
をbindir
ではなくpkglibdir
にインストールするようになりました。
(Peter Eisentraut)
§
This matches the behavior of the make-based build system and the old MSVC build system. これは、makeベースのビルドシステムと古いMSVCビルドシステムの動作と一致しています。
When building with meson, install <filename>sepgsql.sql</filename>
under <filename>share/contrib/</filename>
not <filename>share/extension/</filename> (Peter Eisentraut)
mesonでビルドする場合、sepgsql.sql
をshare/extension/
ではなくshare/contrib/
の下にインストールするようになりました。
(Peter Eisentraut)
§
This matches what the make-based build system does. これは、makeベースのビルドシステムの動作と一致しています。
Update time zone data files to <application>tzdata</application> release 2025a for DST law changes in Paraguay, plus historical corrections for the Philippines (Tom Lane) タイムゾーンデータファイルを、パラグアイのサマータイム法の変更とフィリピンの歴史的修正をしたtzdataリリース2025aに更新しました。 (Tom Lane) §