<!-- doc/src/sgml/release-4.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-2-24">
+ <title>リリース 4.2.24</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ 不要な<varname>application_name</varname>の処理を削除しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前のコミットで、既存接続を再利用する際に<varname>application_name</varname>を設定する処理が追加されました。
+ しかしこれは不要です。DISCARD ALLにより接続再利用時に自動的に<varname>application_name</varname>がリセットされ、
+ <function>send_params()</function>によってフロントエンドに必要なパラメータステータス(<varname>application_name</varname>を含む)が送信されます。
+ この冗長な処理を削除することで、特に地理的に離れたバックエンドノードでのパフォーマンスが向上します。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Watchdogのスプリットブレイン回避するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdogはビーコンメッセージとハートビートで通信します。
+ ハートビートが有効でない場合、ビーコンが30秒以上届かないとスプリットブレインが発生することがあります。
+ 古いリーダーを無効化することで、同時に二人のリーダーが存在しないように修正しました。
+ ノードがリーダーからのビーコンを2回以上見逃すと、リーダーはLOST状態となり、
+ set_state(WD_JOINING) により新リーダー選出が開始されます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ 存在しないプリペアドステートメント使用時のFATALエラー防止するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前は <function>Bind()</function>が存在しないプリペアドステートメントでFATALエラーを出していました。
+ はステートメントの存在を確認し、存在しない場合はフロントエンドにERRORメッセージを送信するようになりました。ログは残りません。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ <xref linkend="pg-enc"> -pと -P両方使用時に動作しない問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 元の報告では、pg_enc -p -P実行時にパスワードと暗号キーを求められましたが、
+ キーが提供されない場合に失敗していました。
+ また、コメント /* prompt for postgres password */ が誤解を招くため、
+ /* prompt for password to be encrypted */ に修正されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ 32ビット環境でのコンパイルの問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 32ビットシステムでsrc/parser/snprintf.cをコンパイルすると <function>isnan()</function>や <function>isinf()</function>が未定義でエラーになりました。
+ math.hをインクルードし、ヘッダーファイルの順序も整理しました。
+ 元々 PostgreSQLから取り込まれたファイルで、math.hは既に含まれていました。
+ 修正は <ulink url="https://github.com/pgpool/pgpool2/pull/128">fix compiling issues for 32-bit targets</ulink> のプルリクエストに記載してあります。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ recovery_1st_stage.sampleでBashのディレクトリ削除を安全に行うよう修正しました。(Taiki Koshino)
+ </para>
+ <para>
+ rmコマンドの変数をクォートし、意図しない削除を防止しました:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルする際のエラーを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルするとエラーが発生していました。
+ 対応として該当コードブロックを #ifdef USE_MEMCACHEDで囲みました。
+ </para>
+ <para>
+ この問題はBo Pengによって報告されました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink> の "PostgreSQLスタンバイ設定" ドキュメントを更新しました。(Taiki Koshino)
+ </para>
+ <para>
+ オンラインリカバリなしでスタンバイを設定する場合、postgresql.auto.confに<varname>primary_conninfo</varname>を書き込まないよう注意を追加しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf </ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ watchdog_setupのマニュアルを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ heartbeartがwatchdog_setupに設定されていないと誤記されていた箇所を修正しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ 023.ssl_connectionをPostgreSQL 18に対応するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18でpsqlの \conninfo出力形式が大幅に変更されたため、
+ このテストが失敗していました。
+ PostgreSQLバージョンに応じてテストスクリプトを修正しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ 010.rewrite_timestampのRubyスクリプトを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ RubyのFile.existsは新しいバージョンで非推奨のため、File.existに置き換えました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ 034と075のタイムアウトを調整しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_nodeと075.detach_primary_left_down_nodeのスクリプト終了タイムアウトを60秒から120秒に変更し、
+ 誤エラーが発生する可能性を減らしました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ 023.ssl_connectionにssl_ecdh_curveのテストを追加しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connectionはssl_ecdh_curveのテストをカバーしていなかったため、
+ 不正なssl_ecdh_curveパラメータでフロントエンドとpgpoolの接続が失敗するか確認しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-2-23">
<title>リリース 4.2.23</title>
<note>
</para>
<para>
<function>read_ipc_socket_and_process()</function> は、IPCソケットへのコマンド書き込みのたびに、書き込みが成功した場合でも通知メッセージを出力していました。これを修正し、書き込みが失敗した場合にのみ通知メッセージを出力するようにしました。
- <varname>log_min_messages</varname> が notice 以上に設定されている場合にのみメッセージが表示されるため、このバグが発見されていませんでした。
+ <varname>log_min_messages</varname>が notice 以上に設定されている場合にのみメッセージが表示されるため、このバグが発見されていませんでした。
</para>
<para>
ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/121">pgpool IPC socket connection issue</ulink>
ハートビートデバイスの処理を修正しました。(Tatsuo Ishii)
</para>
<para>
- <filename>pgpool.conf</filename> の処理中に、<varname>heartbeat_device</varname> が誤って処理され、最初のデバイスが無視されていました。
+ <filename>pgpool.conf</filename> の処理中に、<varname>heartbeat_device</varname>が誤って処理され、最初のデバイスが無視されていました。
</para>
<para>
この問題は Bo Peng によって分析されました。
リロードによって反映されないパラメータのドキュメントを修正しました。 (Taiki Koshino)
</para>
<para>
- <varname>authentication_timeout</varname> と <varname>memqcache_oiddir</varname> はリロードしても反映されません。
+ <varname>authentication_timeout</varname>と<varname>memqcache_oiddir</varname>はリロードしても反映されません。
ドキュメントが「このパラメータはサーバー起動時にのみ設定できます。」に変更されました。
</para>
</listitem>
029.cert_passphrase 回帰テストを安定化しました。 (Tatsuo Ishii)
</para>
<para>
- <varname>ssl_passphrase_command</varname> が有効でない場合、エラーメッセージは通常「bad decrypt」ですが、「wrong tag」となる場合もありました。
+ <varname>ssl_passphrase_command</varname>が有効でない場合、エラーメッセージは通常「bad decrypt」ですが、「wrong tag」となる場合もありました。
</para>
</listitem>
</itemizedlist>
<!-- doc/src/sgml/release-4.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-3-17">
+ <title>リリース 4.3.17</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ 不要な<varname>application_name</varname>の処理を削除しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前のコミットで、既存接続を再利用する際に<varname>application_name</varname>を設定する処理が追加されました。
+ しかしこれは不要です。DISCARD ALLにより接続再利用時に自動的に<varname>application_name</varname>がリセットされ、
+ <function>send_params()</function>によってフロントエンドに必要なパラメータステータス(<varname>application_name</varname>を含む)が送信されます。
+ この冗長な処理を削除することで、特に地理的に離れたバックエンドノードでのパフォーマンスが向上します。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Watchdogのスプリットブレイン回避するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdogはビーコンメッセージとハートビートで通信します。
+ ハートビートが有効でない場合、ビーコンが30秒以上届かないとスプリットブレインが発生することがあります。
+ 古いリーダーを無効化することで、同時に二人のリーダーが存在しないように修正しました。
+ ノードがリーダーからのビーコンを2回以上見逃すと、リーダーはLOST状態となり、
+ set_state(WD_JOINING) により新リーダー選出が開始されます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ 存在しないプリペアドステートメント使用時のFATALエラー防止するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前は<function>Bind()</function>が存在しないプリペアドステートメントでFATALエラーを出していました。
+ はステートメントの存在を確認し、存在しない場合はフロントエンドにERRORメッセージを送信するようになりました。ログは残りません。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ <xref linkend="pg-enc"> -pと -P両方使用時に動作しない問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 元の報告では、pg_enc -p -P実行時にパスワードと暗号キーを求められましたが、
+ キーが提供されない場合に失敗していました。
+ また、コメント /* prompt for postgres password */ が誤解を招くため、
+ /* prompt for password to be encrypted */ に修正されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ 32ビット環境でのコンパイルの問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 32ビットシステムでsrc/parser/snprintf.cをコンパイルすると<function>isnan()</function>や<function>isinf()</function>が未定義でエラーになりました。
+ math.hをインクルードし、ヘッダーファイルの順序も整理しました。
+ 元々 PostgreSQLから取り込まれたファイルで、math.hは既に含まれていました。
+ 修正は <ulink url="https://github.com/pgpool/pgpool2/pull/128">fix compiling issues for 32-bit targets</ulink> のプルリクエストに記載してあります。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ recovery_1st_stage.sampleでBashのディレクトリ削除を安全に行うよう修正しました。(Taiki Koshino)
+ </para>
+ <para>
+ rmコマンドの変数をクォートし、意図しない削除を防止しました:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルする際のエラーを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルするとエラーが発生していました。
+ 対応として該当コードブロックを #ifdef USE_MEMCACHEDで囲みました。
+ </para>
+ <para>
+ この問題はBo Pengによって報告されました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink> の "PostgreSQLスタンバイ設定" ドキュメントを更新しました。(Taiki Koshino)
+ </para>
+ <para>
+ オンラインリカバリなしでスタンバイを設定する場合、postgresql.auto.confに<varname>primary_conninfo</varname>を書き込まないよう注意を追加しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf </ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ watchdog_setupのマニュアルを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ heartbeartがwatchdog_setupに設定されていないと誤記されていた箇所を修正しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ 023.ssl_connectionをPostgreSQL 18に対応するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18でpsqlの\conninfo出力形式が大幅に変更されたため、
+ このテストが失敗していました。
+ PostgreSQLバージョンに応じてテストスクリプトを修正しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ 010.rewrite_timestampのRubyスクリプトを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ RubyのFile.existsは新しいバージョンで非推奨のため、File.existに置き換えました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ 034と075のタイムアウトを調整しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_nodeと075.detach_primary_left_down_nodeのスクリプト終了タイムアウトを60秒から120秒に変更し、
+ 誤エラーが発生する可能性を減らしました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ 023.ssl_connectionにssl_ecdh_curveのテストを追加しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connectionはssl_ecdh_curveのテストをカバーしていなかったため、
+ 不正なssl_ecdh_curveパラメータでフロントエンドとpgpoolの接続が失敗するか確認しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-3-16">
<title>リリース 4.3.16</title>
<note>
<!-- doc/src/sgml/release-4.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-4-14">
+ <title>リリース 4.4.14</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ 不要な <varname>application_name</varname> の処理を削除しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前のコミットで、既存接続を再利用する際に <varname>application_name</varname> を設定する処理が追加されました。
+ しかしこれは不要です。DISCARD ALLにより接続再利用時に自動的に <varname>application_name</varname> がリセットされ、
+ <function>send_params()</function>によってフロントエンドに必要なパラメータステータス(<varname>application_name</varname> を含む)が送信されます。
+ この冗長な処理を削除することで、特に地理的に離れたバックエンドノードでのパフォーマンスが向上します。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Watchdogのスプリットブレイン回避するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdogはビーコンメッセージとハートビートで通信します。
+ ハートビートが有効でない場合、ビーコンが30秒以上届かないとスプリットブレインが発生することがあります。
+ 古いリーダーを無効化することで、同時に二人のリーダーが存在しないように修正しました。
+ ノードがリーダーからのビーコンを2回以上見逃すと、リーダーはLOST状態となり、
+ set_state(WD_JOINING) により新リーダー選出が開始されます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ 存在しないプリペアドステートメント使用時のFATALエラー防止するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前は <function>Bind()</function>が存在しないプリペアドステートメントでFATALエラーを出していました。
+ はステートメントの存在を確認し、存在しない場合はフロントエンドにERRORメッセージを送信するようになりました。ログは残りません。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ <xref linkend="pg-enc"> -pと -P両方使用時に動作しない問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 元の報告では、pg_enc -p -P実行時にパスワードと暗号キーを求められましたが、
+ キーが提供されない場合に失敗していました。
+ また、コメント /* prompt for postgres password */ が誤解を招くため、
+ /* prompt for password to be encrypted */ に修正されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ 32ビット環境でのコンパイルの問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 32ビットシステムでsrc/parser/snprintf.cをコンパイルすると <function>isnan()</function>や <function>isinf()</function>が未定義でエラーになりました。
+ math.hをインクルードし、ヘッダーファイルの順序も整理しました。
+ 元々 PostgreSQLから取り込まれたファイルで、math.hは既に含まれていました。
+ 修正は <ulink url="https://github.com/pgpool/pgpool2/pull/128">fix compiling issues for 32-bit targets</ulink> のプルリクエストに記載してあります。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ recovery_1st_stage.sampleでBashのディレクトリ削除を安全に行うよう修正しました。(Taiki Koshino)
+ </para>
+ <para>
+ rmコマンドの変数をクォートし、意図しない削除を防止しました:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルする際のエラーを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルするとエラーが発生していました。
+ 対応として該当コードブロックを #ifdef USE_MEMCACHEDで囲みました。
+ </para>
+ <para>
+ この問題はBo Pengによって報告されました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-04 [9e0324575]
+ -->
+ <para>
+ クエリキャッシュロックファイルの取り扱い修正を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ クエリキャッシュモジュールは並列制御のため <varname>logdir</varname> にロックファイルを作成しますが、
+ メインプロセスがゴミファイルを作成したり、シャットダウン時に削除されない問題がありました。
+ </para>
+ <para>
+ この問題はBo Pengによって報告・分析されました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink> の "PostgreSQLスタンバイ設定" ドキュメントを更新しました。(Taiki Koshino)
+ </para>
+ <para>
+ オンラインリカバリなしでスタンバイを設定する場合、postgresql.auto.confに <varname>primary_conninfo</varname> を書き込まないよう注意を追加しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf </ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ watchdog_setupのマニュアルを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ heartbeartがwatchdog_setupに設定されていないと誤記されていた箇所を修正しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ 023.ssl_connectionをPostgreSQL 18に対応するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18でpsqlの \conninfo出力形式が大幅に変更されたため、
+ このテストが失敗していました。
+ PostgreSQLバージョンに応じてテストスクリプトを修正しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ 010.rewrite_timestampのRubyスクリプトを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ RubyのFile.existsは新しいバージョンで非推奨のため、File.existに置き換えました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ 034と075のタイムアウトを調整しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_nodeと075.detach_primary_left_down_nodeのスクリプト終了タイムアウトを60秒から120秒に変更し、
+ 誤エラーが発生する可能性を減らしました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ 023.ssl_connectionにssl_ecdh_curveのテストを追加しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connectionはssl_ecdh_curveのテストをカバーしていなかったため、
+ 不正なssl_ecdh_curveパラメータでフロントエンドとpgpoolの接続が失敗するか確認しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-4-13">
<title>リリース 4.4.13</title>
<note>
<!-- doc/src/sgml/release-4.5.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-5-9">
+ <title>リリース 4.5.9</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ 不要な <varname>application_name</varname> の処理を削除しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前のコミットで、既存接続を再利用する際に <varname>application_name</varname> を設定する処理が追加されました。
+ しかしこれは不要です。DISCARD ALLにより接続再利用時に自動的に <varname>application_name</varname> がリセットされ、
+ <function>send_params()</function>によってフロントエンドに必要なパラメータステータス(<varname>application_name</varname> を含む)が送信されます。
+ この冗長な処理を削除することで、特に地理的に離れたバックエンドノードでのパフォーマンスが向上します。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Watchdogのスプリットブレイン回避するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdogはビーコンメッセージとハートビートで通信します。
+ ハートビートが有効でない場合、ビーコンが30秒以上届かないとスプリットブレインが発生することがあります。
+ 古いリーダーを無効化することで、同時に二人のリーダーが存在しないように修正しました。
+ ノードがリーダーからのビーコンを2回以上見逃すと、リーダーはLOST状態となり、
+ set_state(WD_JOINING) により新リーダー選出が開始されます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ 存在しないプリペアドステートメント使用時のFATALエラー防止するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前は<function>Bind()</function>が存在しないプリペアドステートメントでFATALエラーを出していました。
+ はステートメントの存在を確認し、存在しない場合はフロントエンドにERRORメッセージを送信するようになりました。ログは残りません。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ <xref linkend="pg-enc"> -pと -P両方使用時に動作しない問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 元の報告では、pg_enc -p -P実行時にパスワードと暗号キーを求められましたが、
+ キーが提供されない場合に失敗していました。
+ また、コメント /* prompt for postgres password */ が誤解を招くため、
+ /* prompt for password to be encrypted */ に修正されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ 32ビット環境でのコンパイルの問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 32ビットシステムでsrc/parser/snprintf.cをコンパイルすると<function>isnan()</function>や<function>isinf()</function>が未定義でエラーになりました。
+ math.hをインクルードし、ヘッダーファイルの順序も整理しました。
+ 元々 PostgreSQLから取り込まれたファイルで、math.hは既に含まれていました。
+ 修正は <ulink url="https://github.com/pgpool/pgpool2/pull/128">fix compiling issues for 32-bit targets</ulink> のプルリクエストに記載してあります。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ recovery_1st_stage.sampleでBashのディレクトリ削除を安全に行うよう修正しました。(Taiki Koshino)
+ </para>
+ <para>
+ rmコマンドの変数をクォートし、意図しない削除を防止しました:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルする際のエラーを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルするとエラーが発生していました。
+ 対応として該当コードブロックを #ifdef USE_MEMCACHEDで囲みました。
+ </para>
+ <para>
+ この問題はBo Pengによって報告されました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-04 [9e0324575]
+ -->
+ <para>
+ クエリキャッシュロックファイルの取り扱い修正を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ クエリキャッシュモジュールは並列制御のため <varname>logdir</varname> にロックファイルを作成しますが、
+ メインプロセスがゴミファイルを作成したり、シャットダウン時に削除されない問題がありました。
+ </para>
+ <para>
+ この問題はBo Pengによって報告・分析されました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink> の "PostgreSQLスタンバイ設定" ドキュメントを更新しました。(Taiki Koshino)
+ </para>
+ <para>
+ オンラインリカバリなしでスタンバイを設定する場合、postgresql.auto.confに <varname>primary_conninfo</varname> を書き込まないよう注意を追加しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf </ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ watchdog_setupのマニュアルを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ heartbeartがwatchdog_setupに設定されていないと誤記されていた箇所を修正しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ 023.ssl_connectionをPostgreSQL 18に対応するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18でpsqlの \conninfo出力形式が大幅に変更されたため、
+ このテストが失敗していました。
+ PostgreSQLバージョンに応じてテストスクリプトを修正しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ 010.rewrite_timestampのRubyスクリプトを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ RubyのFile.existsは新しいバージョンで非推奨のため、File.existに置き換えました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ 034と075のタイムアウトを調整しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_nodeと075.detach_primary_left_down_nodeのスクリプト終了タイムアウトを60秒から120秒に変更し、
+ 誤エラーが発生する可能性を減らしました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ 023.ssl_connectionにssl_ecdh_curveのテストを追加しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connectionはssl_ecdh_curveのテストをカバーしていなかったため、
+ 不正なssl_ecdh_curveパラメータでフロントエンドとpgpoolの接続が失敗するか確認しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-5-8">
<title>リリース 4.5.8</title>
<note>
+<sect1 id="release-4-6-4">
+ <title>リリース 4.6.4</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ 不要な<varname>application_name</varname>の処理を削除しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前のコミットで、既存接続を再利用する際に<varname>application_name</varname>を設定する処理が追加されました。
+ しかしこれは不要です。DISCARD ALLにより接続再利用時に自動的に<varname>application_name</varname>がリセットされ、
+ <function>send_params()</function>によってフロントエンドに必要なパラメータステータス(<varname>application_name</varname>を含む)が送信されます。
+ この冗長な処理を削除することで、特に地理的に離れたバックエンドノードでのパフォーマンスが向上します。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-09 [f91abf862]
+ -->
+ <para>
+ 時間計算を常にlong longに変更しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前、<productname>Pgpool-II</productname> はtime_tを単なるlongとして扱っており、OpenBSDのようなシステムではコンパイル時警告が発生していました。
+ 計算をlong longにアップキャストするようにしてトランケーションを防ぎ、
+ 64ビットクリーンなtime_tシステムでもY2038問題後も正しく動作するようにしています。
+ また、json_get_long_value_for_keyはjson_get_llong_value_for_keyに変更され、パラメータもlong longになりました。
+ これにより_json_valueのint64型と整合性が取れ、32ビット環境でも大きな整数を正しく扱えるようになりました。
+ </para>
+ <para>
+ この問題はTatsuo IshiiとGyorgy Sarvariによって分析されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004584.html">Fix time_t warnings on OpenBSD</ulink>
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.postgresql.org/message-id/20251003.211957.2067537305399895611.ishii%40postgresql.org">Fix time_t warnings on OpenBSD</ulink>
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/128">fix compiling issues for 32-bit targets</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-31 [dced45a52]
+ -->
+ <para>
+ GCC 15 (C23) でコンパイル可能にしました。(Tatsuo Ishii)
+ </para>
+ <para>
+ Fedora 42 + GCC 15で<productname>Pgpool-II</productname>をコンパイルできるよう修正しました。
+ pool_type.hをstdbool.hに変更し、TRUE/FALSEを (bool)1 / (bool)0と定義しました。
+ 関数ポインタの引数が呼び出し先プロトタイプと一致するよう修正され、
+ <function>pool_create_relcache()</function>のプロトタイプも更新されました。
+ <function>raw_expression_tree_walker()</function>内の<function>walker()</function>呼び出しは、WALKマクロを使い (Node *) キャストされるよう変更されました。
+ OpenSSLに関する警告はまだ残っており、将来的に対応予定です。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/124">4.6.X build issue against GCC 15</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Watchdogのスプリットブレイン回避するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdogはビーコンメッセージとハートビートで通信します。
+ ハートビートが有効でない場合、ビーコンが30秒以上届かないとスプリットブレインが発生することがあります。
+ 古いリーダーを無効化することで、同時に二人のリーダーが存在しないように修正しました。
+ ノードがリーダーからのビーコンを2回以上見逃すと、リーダーはLOST状態となり、
+ set_state(WD_JOINING) により新リーダー選出が開始されます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ 存在しないプリペアドステートメント使用時のFATALエラー防止するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前は<function>Bind()</function>が存在しないプリペアドステートメントでFATALエラーを出していました。
+ はステートメントの存在を確認し、存在しない場合はフロントエンドにERRORメッセージを送信するようになりました。ログは残りません。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ <xref linkend="pg-enc"> が -pと -P両方使用時に動作しない問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 元の報告では、pg_enc -p -P実行時にパスワードと暗号キーを求められましたが、
+ キーが提供されない場合に失敗していました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ 32ビット環境でのコンパイルの問題を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 32ビットシステムでsrc/parser/snprintf.cをコンパイルすると<function>isnan()</function>や<function>isinf()</function>が未定義でエラーになりました。
+ math.hをインクルードし、ヘッダーファイルの順序も整理しました。
+ 元々 PostgreSQLから取り込まれたファイルで、math.hは既に含まれていました。
+ 修正は <ulink url="https://github.com/pgpool/pgpool2/pull/128">fix compiling issues for 32-bit targets</ulink> のプルリクエストに記載してあります。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ recovery_1st_stage.sampleでBashのディレクトリ削除を安全に行うよう修正しました。(Taiki Koshino)
+ </para>
+ <para>
+ rmコマンドの変数をクォートし、意図しない削除を防止しました:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [1793db95f]
+ -->
+ <para>
+ クエリキャッシュ無効化時の不要な警告が出ないよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ memcachedサポートが無効な場合、クエリキャッシュ無効化時に不要な警告が出ていました。
+ これにより006.memcachedリグレッションテストが失敗していました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルする際のエラーを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <option>--with-memcached</option>指定なしでコンパイルするとエラーが発生していました。
+ 対応として該当コードブロックを #ifdef USE_MEMCACHEDで囲みました。
+ </para>
+ <para>
+ この問題はBo Pengによって報告されました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-04 [9e0324575]
+ -->
+ <para>
+ クエリキャッシュのロックファイルの取り扱い修正を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ クエリキャッシュモジュールは並列制御のため<varname>logdir</varname>にロックファイルを作成しますが、
+ メインプロセスがゴミファイルを作成したり、シャットダウン時に削除されない問題がありました。
+ </para>
+ <para>
+ この問題はBo Pengによって報告・分析されました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink>の"PostgreSQLスタンバイ設定"ドキュメントを更新しました。(Taiki Koshino)
+ </para>
+ <para>
+ オンラインリカバリなしでスタンバイを設定する場合、postgresql.auto.confに<varname>primary_conninfo</varname>を書き込まないよう注意を追加しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf </ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ watchdog_setupのマニュアルを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ heartbeartがwatchdog_setupに設定されていないと誤記されていた箇所を修正しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ 023.ssl_connectionをPostgreSQL 18に対応するよう修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18でpsqlの\conninfo出力形式が大幅に変更されたため、
+ このテストが失敗していました。
+ PostgreSQLバージョンに応じてテストスクリプトを修正しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-31 [3897b7afd]
+ -->
+ <para>
+ 039.log_backend_messagesを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 同期コミットパラメータがpgpool.confに誤って設定されていました。
+ 正しいpostgresql.confに移動し、クラスタリングモードがストリーミングレプリケーションかを確認することでテストを修復しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-31 [0f19fc60a]
+ -->
+ <para>
+ 039.log_backend_messagesテストを安定化しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ テスト中、プライマリに行を挿入後、レプリケーション遅延によりスタンバイで行が見つからない場合がありました。
+ <varname>remote_apply</varname>オプションを用いた同期レプリケーションを利用して問題を改善しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ 010.rewrite_timestampのRubyスクリプトを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ RubyのFile.existsは新しいバージョンで非推奨のため、File.existに置き換えました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ 034と075のタイムアウトを調整しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_nodeと075.detach_primary_left_down_nodeのスクリプト終了タイムアウトを60秒から120秒に変更し、
+ 誤エラーが発生する可能性を減らしました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ 023.ssl_connectionにssl_ecdh_curveのテストを追加しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connectionはssl_ecdh_curveのテストをカバーしていなかったため、
+ 不正なssl_ecdh_curveパラメータでフロントエンドとpgpool の接続が失敗するか確認しました。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-6-3">
<title>リリース 4.6.3</title>
<note>
<!-- doc/src/sgml/release-4.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-2-24">
+ <title>Release 4.2.24</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ Remove unnecessary <varname>application_name</varname> treatment. (Tatsuo Ishii)
+ </para>
+ <para>
+ A previous commit added a step to set <varname>application_name</varname> when reusing existing connections.
+ However, this is unnecessary because DISCARD ALL automatically resets <varname>application_name</varname>,
+ and <function>send_params()</function> already sends all necessary parameter status messages, including <varname>application_name</varname>, to the frontend.
+ Removing this redundant step also improves performance, particularly for backend nodes that are geographically distant.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Prevent watchdog split-brain scenario in some corner cases. (Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdog uses both beacon messages and heartbeat for communication.
+ If the heartbeat is not yet active, missing beacon messages
+ for over 30 seconds can cause a split-brain scenario,
+ where the old leader remains active while a new leader is elected.
+ This change prevents two leaders from existing simultaneously by revoking the old leader.
+ When a node detects that it has missed beacon messages from the leader more than twice,
+ the leader is set to LOST and a new leader election is triggered via set_state(WD_JOINING).
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ Prevent FATAL error when non-existing prepared statement is given. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously, <function>Bind()</function> raised a FATAL error when a non-existing prepared statement was used, unlike PostgreSQL.
+ This change changes <function>Bind()</function> to check for the statement's existence and send an ERROR message to the frontend if it does not exist.
+ Note that no log is written, as logging this is not currently possible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ Fix <xref linkend="pg-enc"> not working if both -p and -P are provided. (Tatsuo Ishii)
+ </para>
+ <para>
+ The original report showed that running pg_enc -p -P prompted for a password and encryption key,
+ but failed if the key was not provided.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ Fix compiling issue on 32-bit environments. (Tatsuo Ishii)
+ </para>
+ <para>
+ On 32-bit systems, compiling src/parser/snprintf.c fails due to undefined functions <function>isnan()</function> and <function>isinf()</function>, which come from math.h.
+ This change includes math.h and also reorders the include files for clarity.
+ The file was originally imported from PostgreSQL, where math.h was already included.
+ This fix was provided via pull request: https://github.com/pgpool/pgpool2/pull/128
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/20250917.194736.353755422175293639.ishii%40postgresql.org">Compiling issues for 32-bit targets</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ Fix safer directory deletion in Bash in recovery_1st_stage.sample. (Taiki Koshino)
+ </para>
+ <para>
+ Quote variables in rm commands to avoid accidental deletion:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+
+ If the variable is empty, rm could delete unexpected files or directories.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ Fix the compilation error when building without the <option>--with-memcached</option> option. (Tatsuo Ishii)
+ </para>
+ <para>
+ A compiler error occurred when configuring without <option>--with-memcached</option>.
+ The issue arose because the compiler could not determine that ptr would only be freed when memcached is enabled.
+ To fix this, the relevant code block was wrapped with #ifdef USE_MEMCACHED.
+ </para>
+ <para>
+ Problem reported by Bo Peng.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ Update doc about "Setting up PostgreSQL standby" in <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink>. (Taiki Koshino)
+ </para>
+ <para>
+ Add a note that when setting up a standby without online recovery, do not write <varname>primary_conninfo</varname> to postgresql.auto.conf.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ Fix watchdog_setup manual. (Tatsuo Ishii)
+ </para>
+ <para>
+ It mistakenly stated that heartbeart is not setup in watchdog_setup.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ Adapt 023.ssl_connection to PostgreSQL 18. (Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18 heavily changed psql's \conninfo output format, which
+ made the test fail because the test relies on \conninfo. This change
+ makes the test script aware the PostgreSQL version to fix the issue.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ Fix ruby script in 010.rewrite_timestamp. (Tatsuo Ishii)
+ </para>
+ <para>
+ The ruby script used "File.exists", which is said to be obsoleted in
+ newer version of Ruby. Replace it with "File.exist".
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ Tweak timeout in 034 and 075 tests. (Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_node and 075.detach_primary_left_down_node set the timeout
+ 60 seconds for finishing follow primary script. It turns out that
+ these timeout values are not long enough, and sometimes caused false
+ errors. So make them from 60 seconds to 120 seconds.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ Add ssl_ecdh_curve test to 023.ssl_connection. (Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connection did not cover the test for ssl_ecdh_curve. This
+ commit tests it using bad ssl_ecdh_curve parameter to see if connection
+ between frontend and pgpool fails.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-2-23">
<title>Release 4.2.23</title>
<note>
<!-- doc/src/sgml/release-4.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-3-17">
+ <title>Release 4.3.17</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ Remove unnecessary <varname>application_name</varname> treatment. (Tatsuo Ishii)
+ </para>
+ <para>
+ A previous commit added a step to set <varname>application_name</varname> when reusing existing connections.
+ However, this is unnecessary because DISCARD ALL automatically resets <varname>application_name</varname>,
+ and <function>send_params()</function> already sends all necessary parameter status messages, including <varname>application_name</varname>, to the frontend.
+ Removing this redundant step also improves performance, particularly for backend nodes that are geographically distant.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Prevent watchdog split-brain scenario in some corner cases. (Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdog uses both beacon messages and heartbeat for communication.
+ If the heartbeat is not yet active, missing beacon messages
+ for over 30 seconds can cause a split-brain scenario,
+ where the old leader remains active while a new leader is elected.
+ This change prevents two leaders from existing simultaneously by revoking the old leader.
+ When a node detects that it has missed beacon messages from the leader more than twice,
+ the leader is set to LOST and a new leader election is triggered via set_state(WD_JOINING).
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ Prevent FATAL error when non-existing prepared statement is given. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously, <function>Bind()</function> raised a FATAL error when a non-existing prepared statement was used, unlike PostgreSQL.
+ This change changes <function>Bind()</function> to check for the statement's existence and send an ERROR message to the frontend if it does not exist.
+ Note that no log is written, as logging this is not currently possible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ Fix <xref linkend="pg-enc"> not working if both -p and -P are provided. (Tatsuo Ishii)
+ </para>
+ <para>
+ The original report showed that running pg_enc -p -P prompted for a password and encryption key,
+ but failed if the key was not provided.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ Fix compiling issue on 32-bit environments. (Tatsuo Ishii)
+ </para>
+ <para>
+ On 32-bit systems, compiling src/parser/snprintf.c fails due to undefined functions <function>isnan()</function> and <function>isinf()</function>, which come from math.h.
+ This change includes math.h and also reorders the include files for clarity.
+ The file was originally imported from PostgreSQL, where math.h was already included.
+ This fix was provided via pull request: https://github.com/pgpool/pgpool2/pull/128
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/20250917.194736.353755422175293639.ishii%40postgresql.org">Compiling issues for 32-bit targets</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ Fix safer directory deletion in Bash in recovery_1st_stage.sample. (Taiki Koshino)
+ </para>
+ <para>
+ Quote variables in rm commands to avoid accidental deletion:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+
+ If the variable is empty, rm could delete unexpected files or directories.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ Fix the compilation error when building without the <option>--with-memcached</option> option. (Tatsuo Ishii)
+ </para>
+ <para>
+ A compiler error occurred when configuring without <option>--with-memcached</option>.
+ The issue arose because the compiler could not determine that ptr would only be freed when memcached is enabled.
+ To fix this, the relevant code block was wrapped with #ifdef USE_MEMCACHED.
+ </para>
+ <para>
+ Problem reported by Bo Peng.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ Update doc about "Setting up PostgreSQL standby" in <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink>. (Taiki Koshino)
+ </para>
+ <para>
+ Add a note that when setting up a standby without online recovery, do not write <varname>primary_conninfo</varname> to postgresql.auto.conf.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ Fix watchdog_setup manual. (Tatsuo Ishii)
+ </para>
+ <para>
+ It mistakenly stated that heartbeart is not setup in watchdog_setup.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ Adapt 023.ssl_connection to PostgreSQL 18. (Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18 heavily changed psql's \conninfo output format, which
+ made the test fail because the test relies on \conninfo. This change
+ makes the test script aware the PostgreSQL version to fix the issue.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ Fix ruby script in 010.rewrite_timestamp. (Tatsuo Ishii)
+ </para>
+ <para>
+ The ruby script used "File.exists", which is said to be obsoleted in
+ newer version of Ruby. Replace it with "File.exist".
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ Tweak timeout in 034 and 075 tests. (Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_node and 075.detach_primary_left_down_node set the timeout
+ 60 seconds for finishing follow primary script. It turns out that
+ these timeout values are not long enough, and sometimes caused false
+ errors. So make them from 60 seconds to 120 seconds.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ Add ssl_ecdh_curve test to 023.ssl_connection. (Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connection did not cover the test for ssl_ecdh_curve. This
+ commit tests it using bad ssl_ecdh_curve parameter to see if connection
+ between frontend and pgpool fails.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-3-16">
<title>Release 4.3.16</title>
<note>
<!-- doc/src/sgml/release-4.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-4-14">
+ <title>Release 4.4.14</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ Remove unnecessary <varname>application_name</varname> treatment. (Tatsuo Ishii)
+ </para>
+ <para>
+ A previous commit added a step to set <varname>application_name</varname> when reusing existing connections.
+ However, this is unnecessary because DISCARD ALL automatically resets <varname>application_name</varname>,
+ and <function>send_params()</function> already sends all necessary parameter status messages, including <varname>application_name</varname>, to the frontend.
+ Removing this redundant step also improves performance, particularly for backend nodes that are geographically distant.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Prevent watchdog split-brain scenario in some corner cases. (Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdog uses both beacon messages and heartbeat for communication.
+ If the heartbeat is not yet active, missing beacon messages
+ for over 30 seconds can cause a split-brain scenario,
+ where the old leader remains active while a new leader is elected.
+ This change prevents two leaders from existing simultaneously by revoking the old leader.
+ When a node detects that it has missed beacon messages from the leader more than twice,
+ the leader is set to LOST and a new leader election is triggered via set_state(WD_JOINING).
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ Prevent FATAL error when non-existing prepared statement is given. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously, <function>Bind()</function> raised a FATAL error when a non-existing prepared statement was used, unlike PostgreSQL.
+ This change changes <function>Bind()</function> to check for the statement's existence and send an ERROR message to the frontend if it does not exist.
+ Note that no log is written, as logging this is not currently possible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ Fix <xref linkend="pg-enc"> not working if both -p and -P are provided. (Tatsuo Ishii)
+ </para>
+ <para>
+ The original report showed that running pg_enc -p -P prompted for a password and encryption key,
+ but failed if the key was not provided.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ Fix compiling issue on 32-bit environments. (Tatsuo Ishii)
+ </para>
+ <para>
+ On 32-bit systems, compiling src/parser/snprintf.c fails due to undefined functions <function>isnan()</function> and <function>isinf()</function>, which come from math.h.
+ This change includes math.h and also reorders the include files for clarity.
+ The file was originally imported from PostgreSQL, where math.h was already included.
+ This fix was provided via pull request: https://github.com/pgpool/pgpool2/pull/128
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/20250917.194736.353755422175293639.ishii%40postgresql.org">Compiling issues for 32-bit targets</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ Fix safer directory deletion in Bash in recovery_1st_stage.sample. (Taiki Koshino)
+ </para>
+ <para>
+ Quote variables in rm commands to avoid accidental deletion:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+
+ If the variable is empty, rm could delete unexpected files or directories.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ Fix the compilation error when building without the <option>--with-memcached</option> option. (Tatsuo Ishii)
+ </para>
+ <para>
+ A compiler error occurred when configuring without <option>--with-memcached</option>.
+ The issue arose because the compiler could not determine that ptr would only be freed when memcached is enabled.
+ To fix this, the relevant code block was wrapped with #ifdef USE_MEMCACHED.
+ </para>
+ <para>
+ Problem reported by Bo Peng.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-09-04 [9e0324575]
+ -->
+ <para>
+ Fix query cache lock file handling. (Tatsuo Ishii)
+ </para>
+ <para>
+ The query cache module creates a lock file in <varname>logdir</varname> for concurrency control,
+ but two bugs existed: the main pgpool process could create a stray "QUERY_CACHE_LOCK_FILE",
+ and the lock file was not removed on shutdown. This change fixes both issues.
+ </para>
+ <para>
+ Problem reported and analyzed by Bo Peng.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ Update doc about "Setting up PostgreSQL standby" in <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink>. (Taiki Koshino)
+ </para>
+ <para>
+ Add a note that when setting up a standby without online recovery, do not write <varname>primary_conninfo</varname> to postgresql.auto.conf.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ Fix watchdog_setup manual. (Tatsuo Ishii)
+ </para>
+ <para>
+ It mistakenly stated that heartbeart is not setup in watchdog_setup.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ Adapt 023.ssl_connection to PostgreSQL 18. (Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18 heavily changed psql's \conninfo output format, which
+ made the test fail because the test relies on \conninfo. This change
+ makes the test script aware the PostgreSQL version to fix the issue.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ Fix ruby script in 010.rewrite_timestamp. (Tatsuo Ishii)
+ </para>
+ <para>
+ The ruby script used "File.exists", which is said to be obsoleted in
+ newer version of Ruby. Replace it with "File.exist".
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ Tweak timeout in 034 and 075 tests. (Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_node and 075.detach_primary_left_down_node set the timeout
+ 60 seconds for finishing follow primary script. It turns out that
+ these timeout values are not long enough, and sometimes caused false
+ errors. So make them from 60 seconds to 120 seconds.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ Add ssl_ecdh_curve test to 023.ssl_connection. (Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connection did not cover the test for ssl_ecdh_curve. This
+ commit tests it using bad ssl_ecdh_curve parameter to see if connection
+ between frontend and pgpool fails.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-4-13">
<title>Release 4.4.13</title>
<note>
+<sect1 id="release-4-5-9">
+ <title>Release 4.5.9</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ Remove unnecessary <varname>application_name</varname> treatment. (Tatsuo Ishii)
+ </para>
+ <para>
+ A previous commit added a step to set <varname>application_name</varname> when reusing existing connections.
+ However, this is unnecessary because DISCARD ALL automatically resets <varname>application_name</varname>,
+ and <function>send_params()</function> already sends all necessary parameter status messages, including <varname>application_name</varname>, to the frontend.
+ Removing this redundant step also improves performance, particularly for backend nodes that are geographically distant.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Prevent watchdog split-brain scenario in some corner cases. (Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdog uses both beacon messages and heartbeat for communication.
+ If the heartbeat is not yet active, missing beacon messages
+ for over 30 seconds can cause a split-brain scenario,
+ where the old leader remains active while a new leader is elected.
+ This change prevents two leaders from existing simultaneously by revoking the old leader.
+ When a node detects that it has missed beacon messages from the leader more than twice,
+ the leader is set to LOST and a new leader election is triggered via set_state(WD_JOINING).
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ Prevent FATAL error when non-existing prepared statement is given. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously, <function>Bind()</function> raised a FATAL error when a non-existing prepared statement was used, unlike PostgreSQL.
+ This change changes <function>Bind()</function> to check for the statement's existence and send an ERROR message to the frontend if it does not exist.
+ Note that no log is written, as logging this is not currently possible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ Fix <xref linkend="pg-enc"> not working if both -p and -P are provided. (Tatsuo Ishii)
+ </para>
+ <para>
+ The original report showed that running pg_enc -p -P prompted for a password and encryption key,
+ but failed if the key was not provided.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ Fix compiling issue on 32-bit environments. (Tatsuo Ishii)
+ </para>
+ <para>
+ On 32-bit systems, compiling src/parser/snprintf.c fails due to undefined functions <function>isnan()</function> and <function>isinf()</function>, which come from math.h.
+ This change includes math.h and also reorders the include files for clarity.
+ The file was originally imported from PostgreSQL, where math.h was already included.
+ This fix was provided via pull request: https://github.com/pgpool/pgpool2/pull/128
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/20250917.194736.353755422175293639.ishii%40postgresql.org">Compiling issues for 32-bit targets</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ Fix safer directory deletion in Bash in recovery_1st_stage.sample. (Taiki Koshino)
+ </para>
+ <para>
+ Quote variables in rm commands to avoid accidental deletion:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+
+ If the variable is empty, rm could delete unexpected files or directories.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ Fix the compilation error when building without the <option>--with-memcached</option> option. (Tatsuo Ishii)
+ </para>
+ <para>
+ A compiler error occurred when configuring without <option>--with-memcached</option>.
+ The issue arose because the compiler could not determine that ptr would only be freed when memcached is enabled.
+ To fix this, the relevant code block was wrapped with #ifdef USE_MEMCACHED.
+ </para>
+ <para>
+ Problem reported by Bo Peng.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-09-04 [9e0324575]
+ -->
+ <para>
+ Fix query cache lock file handling. (Tatsuo Ishii)
+ </para>
+ <para>
+ The query cache module creates a lock file in <varname>logdir</varname> for concurrency control,
+ but two bugs existed: the main pgpool process could create a stray "QUERY_CACHE_LOCK_FILE",
+ and the lock file was not removed on shutdown. This change fixes both issues.
+ </para>
+ <para>
+ Problem reported and analyzed by Bo Peng.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ Update doc about "Setting up PostgreSQL standby" in <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink>. (Taiki Koshino)
+ </para>
+ <para>
+ Add a note that when setting up a standby without online recovery, do not write <varname>primary_conninfo</varname> to postgresql.auto.conf.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ Fix watchdog_setup manual. (Tatsuo Ishii)
+ </para>
+ <para>
+ It mistakenly stated that heartbeart is not setup in watchdog_setup.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ Adapt 023.ssl_connection to PostgreSQL 18. (Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18 heavily changed psql's \conninfo output format, which
+ made the test fail because the test relies on \conninfo. This change
+ makes the test script aware the PostgreSQL version to fix the issue.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ Fix ruby script in 010.rewrite_timestamp. (Tatsuo Ishii)
+ </para>
+ <para>
+ The ruby script used "File.exists", which is said to be obsoleted in
+ newer version of Ruby. Replace it with "File.exist".
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ Tweak timeout in 034 and 075 tests. (Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_node and 075.detach_primary_left_down_node set the timeout
+ 60 seconds for finishing follow primary script. It turns out that
+ these timeout values are not long enough, and sometimes caused false
+ errors. So make them from 60 seconds to 120 seconds.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ Add ssl_ecdh_curve test to 023.ssl_connection. (Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connection did not cover the test for ssl_ecdh_curve. This
+ commit tests it using bad ssl_ecdh_curve parameter to see if connection
+ between frontend and pgpool fails.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-5-8">
<title>Release 4.5.8</title>
<note>
+<sect1 id="release-4-6-4">
+ <title>Release 4.6.4</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-11-20</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-11-07 [4fabca331]
+ -->
+ <para>
+ Remove unnecessary <varname>application_name</varname> treatment. (Tatsuo Ishii)
+ </para>
+ <para>
+ A previous commit added a step to set <varname>application_name</varname> when reusing existing connections.
+ However, this is unnecessary because DISCARD ALL automatically resets <varname>application_name</varname>,
+ and <function>send_params()</function> already sends all necessary parameter status messages, including <varname>application_name</varname>, to the frontend.
+ Removing this redundant step also improves performance, particularly for backend nodes that are geographically distant.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/130">Severely degraded performance of pgPool in geo-distributed configurations</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-09 [f91abf862]
+ -->
+ <para>
+ Make time calculations always long long. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously, <productname>Pgpool-II</productname> treated time_t as a simple long, which caused compile-time warnings on some systems,
+ such as OpenBSD, where time_t is __int64. This change upcasts the calculations to long long,
+ preventing truncation and ensuring pgpool continues to work correctly after Y2038 on 64-bit clean time_t systems.
+ Additionally, json_get_long_value_for_key has been changed to json_get_llong_value_for_key
+ with a long long parameter, aligning it with _json_value's int64 type. This improves
+ integer handling on 32-bit platforms and helps avoid potential integer overflow issues.
+ </para>
+ <para>
+ Problem analyzed by Tatsuo Ishii and Gyorgy Sarvari.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004584.html">Fix time_t warnings on OpenBSD</ulink>
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/20251003.211957.2067537305399895611.ishii%40postgresql.org">Fix time_t warnings on OpenBSD</ulink>
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/128">fix compiling issues for 32-bit targets</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-31 [dced45a52]
+ -->
+ <para>
+ Allow to compile against gcc 15 (C23). (Tatsuo Ishii)
+ </para>
+ <para>
+ This change includes several fixes to compile <productname>Pgpool-II</productname> on Fedora 42 with gcc 15 (C23).
+ It updates pool_type.h to use stdbool.h and defines TRUE/FALSE as (bool) 1/0, aligning with C99 standards.
+ Function pointer arguments were corrected to match their prototypes,
+ and <function>pool_create_relcache()</function>'s prototype was updated.
+ Calls to <function>walker()</function> in <function>raw_expression_tree_walker()</function> were adjusted to cast the first argument to (Node *) via the WALK macro.
+ Note that OpenSSL warnings on Fedora 42 remain and will be addressed in the future.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/124">4.6.X build issue against GCC 15</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-10-03 [b84553bf0]
+ -->
+ <para>
+ Prevent watchdog split-brain scenario in some corner cases. (Tatsuo Ishii)
+ </para>
+ <para>
+ Watchdog uses both beacon messages and heartbeat for communication.
+ If the heartbeat is not yet active, missing beacon messages
+ for over 30 seconds can cause a split-brain scenario,
+ where the old leader remains active while a new leader is elected.
+ This change prevents two leaders from existing simultaneously by revoking the old leader.
+ When a node detects that it has missed beacon messages from the leader more than twice,
+ the leader is set to LOST and a new leader election is triggered via set_state(WD_JOINING).
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-10-03 [ef8ccb9e7]
+ -->
+ <para>
+ Prevent FATAL error when non-existing prepared statement is given. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously, <function>Bind()</function> raised a FATAL error when a non-existing prepared statement was used, unlike PostgreSQL.
+ This change changes <function>Bind()</function> to check for the statement's existence and send an ERROR message to the frontend if it does not exist.
+ Note that no log is written, as logging this is not currently possible.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-24 [59a359eef]
+ -->
+ <para>
+ Fix <xref linkend="pg-enc"> not working if both -p and -P are provided. (Tatsuo Ishii)
+ </para>
+ <para>
+ The original report showed that running pg_enc -p -P prompted for a password and encryption key,
+ but failed if the key was not provided.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/7f18c30b.237.1997555ca11.Coremail.liujy%40highgo.com">pg_enc</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-18 [f20f7041c]
+ -->
+ <para>
+ Fix compiling issue on 32-bit environments. (Tatsuo Ishii)
+ </para>
+ <para>
+ On 32-bit systems, compiling src/parser/snprintf.c fails due to undefined functions <function>isnan()</function> and <function>isinf()</function>, which come from math.h.
+ This change includes math.h and also reorders the include files for clarity.
+ The file was originally imported from PostgreSQL, where math.h was already included.
+ This fix was provided via pull request: https://github.com/pgpool/pgpool2/pull/128
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.postgresql.org/message-id/20250917.194736.353755422175293639.ishii%40postgresql.org">Compiling issues for 32-bit targets</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-10 [0a6868d40]
+ -->
+ <para>
+ Fix safer directory deletion in Bash in recovery_1st_stage.sample. (Taiki Koshino)
+ </para>
+ <para>
+ Quote variables in rm commands to avoid accidental deletion:
+ <command>rm -rf "${DEST_NODE_PGDATA}"</command>
+
+ If the variable is empty, rm could delete unexpected files or directories.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [1793db95f]
+ -->
+ <para>
+ Fix point less warning in query cache invalidation. (Tatsuo Ishii)
+ </para>
+ <para>
+ When memcached support is disabled, query cache invalidation by query
+ emitted point less warning. This makes 006.memcached regression test
+ failed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-09-05 [441f338ab]
+ -->
+ <para>
+ Fix the compilation error when building without the <option>--with-memcached</option> option. (Tatsuo Ishii)
+ </para>
+ <para>
+ A compiler error occurred when configuring without <option>--with-memcached</option>.
+ The issue arose because the compiler could not determine that ptr would only be freed when memcached is enabled.
+ To fix this, the relevant code block was wrapped with #ifdef USE_MEMCACHED.
+ </para>
+ <para>
+ Problem reported by Bo Peng.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-09-04 [9e0324575]
+ -->
+ <para>
+ Fix query cache lock file handling. (Tatsuo Ishii)
+ </para>
+ <para>
+ The query cache module creates a lock file in <varname>logdir</varname> for concurrency control,
+ but two bugs existed: the main pgpool process could create a stray "QUERY_CACHE_LOCK_FILE",
+ and the lock file was not removed on shutdown. This change fixes both issues.
+ </para>
+ <para>
+ Problem reported and analyzed by Bo Peng.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-17 [1a975b539]
+ -->
+ <para>
+ Update doc about "Setting up PostgreSQL standby" in <ulink url="https://www.pgpool.net/docs/latest/ja/html/example-cluster.html">8.2. Pgpool-II + Watchdog Setup Example</ulink>. (Taiki Koshino)
+ </para>
+ <para>
+ Add a note that when setting up a standby without online recovery, do not write <varname>primary_conninfo</varname> to postgresql.auto.conf.
+ </para>
+ <para>
+ Discussion: <ulink url="https://github.com/pgpool/pgpool2/issues/67">Follow primary command not fixing postgresql.auto.conf</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-22 [5bd535792]
+ -->
+ <para>
+ Fix watchdog_setup manual. (Tatsuo Ishii)
+ </para>
+ <para>
+ It mistakenly stated that heartbeart is not setup in watchdog_setup.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-09-30 [3ddbc64f1]
+ -->
+ <para>
+ Adapt 023.ssl_connection to PostgreSQL 18. (Tatsuo Ishii)
+ </para>
+ <para>
+ PostgreSQL 18 heavily changed psql's \conninfo output format, which
+ made the test fail because the test relies on \conninfo. This change
+ makes the test script aware the PostgreSQL version to fix the issue.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-31 [3897b7afd]
+ -->
+ <para>
+ Unbreak 039.log_backend_messages. (Tatsuo Ishii)
+ </para>
+ <para>
+ Commit 8ff2b9f6e mistakenly put synchronous commit parameters in
+ pgpool.conf. Unbreak the test by putting the parameters in
+ postgresql.conf. Also check if clustering mode is streaming
+ replication. Because that parameters causes suspends PostgreSQL if
+ clustering mode is other than streaming replication.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-31 [0f19fc60a]
+ -->
+ <para>
+ Stabilize 039.log_backend_messages test. (Tatsuo Ishii)
+ </para>
+ <para>
+ In the test a query is sent to standby server right after rows are
+ inserted into primary server. Due to a replication lag, the inserted
+ rows could not be found on the standby in slower machines. This
+ change tries to fix the issue by using synchronous replication with
+ <varname>remote_apply</varname> option.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [b4043e6c3]
+ -->
+ <para>
+ Fix ruby script in 010.rewrite_timestamp. (Tatsuo Ishii)
+ </para>
+ <para>
+ The ruby script used "File.exists", which is said to be obsoleted in
+ newer version of Ruby. Replace it with "File.exist".
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-29 [9c901e60a]
+ -->
+ <para>
+ Tweak timeout in 034 and 075 tests. (Tatsuo Ishii)
+ </para>
+ <para>
+ 034.promote_node and 075.detach_primary_left_down_node set the timeout
+ 60 seconds for finishing follow primary script. It turns out that
+ these timeout values are not long enough, and sometimes caused false
+ errors. So make them from 60 seconds to 120 seconds.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-08-27 [42b177614]
+ -->
+ <para>
+ Add ssl_ecdh_curve test to 023.ssl_connection. (Tatsuo Ishii)
+ </para>
+ <para>
+ 023.ssl_connection did not cover the test for ssl_ecdh_curve. This
+ commit tests it using bad ssl_ecdh_curve parameter to see if connection
+ between frontend and pgpool fails.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-6-3">
<title>Release 4.6.3</title>
<note>