<!-- doc/src/sgml/release-4.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-2-22">
+ <title>リリース 4.2.22</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ 設定ファイルにメジャーバージョンを追加しました。 (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ クエリキャッシュにおける、古くからあるバインド時のバグを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 名前付きステートメントを準備すると、バインド後にパースメッセージなしで実行することが可能です。
+ 問題は、実行時またはCOMMIT時にクエリキャッシュを無効化するために必要なテーブルOIDが、パースメッセージ処理(Parse())でのみ収集されていたことです。
+ そのため、前回の実行後にパースなしでバインドを実行すると、テーブルOIDが収集されず、pgpoolはクエリキャッシュの無効化に失敗していました。
+ バインド時にもテーブルOIDを収集するよう修正しました。
+ 006.memqcacheに回帰テストを追加しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ クエリキャッシュの無効化に失敗する問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ 実行メッセージを受信すると、pgpoolは最大行数パラメータをチェックします。この値が0でない場合、pgpoolはpool_handle_query_cache()にクエリキャッシュを作成しないよう指示するために、"partial_fetch"フラグを設定します。
+ 問題は、コミット2a99aa5d1が、INSERT/UPDATE/DELETEであっても実行メッセージパラメータが0以外(ほとんどの場合1)に設定され、pgpoolがSELECT以外の場合でもこのフラグを設定することを見落としていることです。
+ この結果、このフラグがtrueの場合、pool_handle_query_cache()内の後続のコードでキャッシュの無効化がスキップされるため、クエリキャッシュの無効化に失敗していました。
+ フラグを設定する前にクエリが読み取り専用のSELECTであるかどうかを確認するようにExecute()を修正しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ OpenBSDへ移植する際の問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成されました。
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ json_writerが特殊文字を正確にエンコードできない問題を修正しました。(Bo Peng)
+ </para>
+ <para>
+ <xref linkend="guc-wd-authkey">が特殊文字を含んでいる状態でwatchdogを起動すると<productname>Pgpool-II</productname>がクラッシュしていました。
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成され、Bo Pengによって微修正されました。
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ リロード時に<xref linkend="guc-pool-passwd">を開くようにストリーミングレプリケーションチェックとヘルスチェックプロセスを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションチェックとヘルスチェックはリロード前に<xref linkend="guc-pool-passwd">を開いていませんでした。
+ もし<xref linkend="guc-sr-check-password">か<xref linkend="guc-health-check-password">が空文字列の時は、<xref linkend="guc-pool-passwd">からパスワードを得ます。
+ そのためこれらのプロセスはリロード時に<xref linkend="guc-pool-passwd">の古いコンテンツを読み取ります。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ <xref linkend="guc-connection-life-time">の説明を改善しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time">が計算されるタイミングは、接続キャッシュを保持しているプロセスからクライアントが切断されたときであることを追記しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ <xref linkend="guc-sr-check-user">についての説明を改善しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ スーパーユーザーか<literal>pg_monitor</literal>グループであるべきです。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-2-21">
<title>リリース 4.2.21</title>
<note>
<!-- doc/src/sgml/release-4.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-3-15">
+ <title>リリース 4.3.15</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ 設定ファイルにメジャーバージョンを追加しました。 (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ クエリキャッシュにおける、古くからあるバインド時のバグを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 名前付きステートメントを準備すると、バインド後にパースメッセージなしで実行することが可能です。
+ 問題は、実行時またはCOMMIT時にクエリキャッシュを無効化するために必要なテーブルOIDが、パースメッセージ処理(Parse())でのみ収集されていたことです。
+ そのため、前回の実行後にパースなしでバインドを実行すると、テーブルOIDが収集されず、pgpoolはクエリキャッシュの無効化に失敗していました。
+ バインド時にもテーブルOIDを収集するよう修正しました。
+ 006.memqcacheに回帰テストを追加しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ クエリキャッシュの無効化に失敗する問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ 実行メッセージを受信すると、pgpoolは最大行数パラメータをチェックします。この値が0でない場合、pgpoolはpool_handle_query_cache()にクエリキャッシュを作成しないよう指示するために、"partial_fetch"フラグを設定します。
+ 問題は、コミット2a99aa5d1が、INSERT/UPDATE/DELETEであっても実行メッセージパラメータが0以外(ほとんどの場合1)に設定され、pgpoolがSELECT以外の場合でもこのフラグを設定することを見落としていることです。
+ この結果、このフラグがtrueの場合、pool_handle_query_cache()内の後続のコードでキャッシュの無効化がスキップされるため、クエリキャッシュの無効化に失敗していました。
+ フラグを設定する前にクエリが読み取り専用のSELECTであるかどうかを確認するようにExecute()を修正しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ OpenBSDへ移植する際の問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成されました。
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ json_writerが特殊文字を正確にエンコードできない問題を修正しました。(Bo Peng)
+ </para>
+ <para>
+ <xref linkend="guc-wd-authkey">が特殊文字を含んでいる状態でwatchdogを起動すると<productname>Pgpool-II</productname>がクラッシュしていました。
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成され、Bo Pengによって微修正されました。
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ リロード時に<xref linkend="guc-pool-passwd">を開くようにストリーミングレプリケーションチェックとヘルスチェックプロセスを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションチェックとヘルスチェックはリロード前に<xref linkend="guc-pool-passwd">を開いていませんでした。
+ もし<xref linkend="guc-sr-check-password">か<xref linkend="guc-health-check-password">が空文字列の時は、<xref linkend="guc-pool-passwd">からパスワードを得ます。
+ そのためこれらのプロセスはリロード時に<xref linkend="guc-pool-passwd">の古いコンテンツを読み取ります。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ <xref linkend="guc-connection-life-time">の説明を改善しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time">が計算されるタイミングは、接続キャッシュを保持しているプロセスからクライアントが切断されたときであることを追記しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ <xref linkend="guc-sr-check-user">についての説明を改善しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ スーパーユーザーか<literal>pg_monitor</literal>グループであるべきです。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-3-14">
<title>リリース 4.3.14</title>
<note>
<!-- doc/src/sgml/release-4.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-4-12">
+ <title>リリース 4.4.12</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ 設定ファイルにメジャーバージョンを追加しました。 (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ クエリキャッシュにおける、古くからあるバインド時のバグを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 名前付きステートメントを準備すると、バインド後にパースメッセージなしで実行することが可能です。
+ 問題は、実行時またはCOMMIT時にクエリキャッシュを無効化するために必要なテーブルOIDが、パースメッセージ処理(Parse())でのみ収集されていたことです。
+ そのため、前回の実行後にパースなしでバインドを実行すると、テーブルOIDが収集されず、pgpoolはクエリキャッシュの無効化に失敗していました。
+ バインド時にもテーブルOIDを収集するよう修正しました。
+ 006.memqcacheに回帰テストを追加しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantzios によって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ クエリキャッシュの無効化に失敗する問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ 実行メッセージを受信すると、pgpoolは最大行数パラメータをチェックします。この値が0でない場合、pgpoolはpool_handle_query_cache()にクエリキャッシュを作成しないよう指示するために、"partial_fetch"フラグを設定します。
+ 問題は、コミット2a99aa5d1が、INSERT/UPDATE/DELETEであっても実行メッセージパラメータが0以外(ほとんどの場合1)に設定され、pgpoolがSELECT以外の場合でもこのフラグを設定することを見落としていることです。
+ この結果、このフラグが true の場合、pool_handle_query_cache() 内の後続のコードでキャッシュの無効化がスキップされるため、クエリキャッシュの無効化に失敗していました。
+ フラグを設定する前にクエリが読み取り専用の SELECT であるかどうかを確認するように Execute() を修正しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ OpenBSDへ移植する際の問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成されました。
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ json_writerが特殊文字を正確にエンコードできない問題を修正しました。(Bo Peng)
+ </para>
+ <para>
+ <xref linkend="guc-wd-authkey">が特殊文字を含んでいる状態でwatchdogを起動すると<productname>Pgpool-II</productname>がクラッシュしていました。
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成され、Bo Pengによって微修正されました。
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ リロード時に<xref linkend="guc-pool-passwd">を開くようにストリーミングレプリケーションチェックとヘルスチェックプロセスを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションチェックとヘルスチェックはリロード前に<xref linkend="guc-pool-passwd">を開いていませんでした。
+ もし<xref linkend="guc-sr-check-password">か<xref linkend="guc-health-check-password">が空文字列の時は、<xref linkend="guc-pool-passwd">からパスワードを得ます。
+ そのためこれらのプロセスはリロード時に<xref linkend="guc-pool-passwd">の古いコンテンツを読み取ります。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ <xref linkend="guc-connection-life-time">の説明を改善しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time">が計算されるタイミングは、接続キャッシュを保持しているプロセスからクライアントが切断されたときであることを追記しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ <xref linkend="guc-sr-check-user">についての説明を改善しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ スーパーユーザーか<literal>pg_monitor</literal>グループであるべきです。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-4-11">
<title>リリース 4.4.11</title>
<note>
<!-- doc/src/sgml/release-4.5.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-5-7">
+ <title>リリース 4.5.7</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ 設定ファイルにメジャーバージョンを追加しました。 (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ クエリキャッシュにおける、古くからあるバインド時のバグを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 名前付きステートメントを準備すると、バインド後にパースメッセージなしで実行することが可能です。
+ 問題は、実行時またはCOMMIT時にクエリキャッシュを無効化するために必要なテーブルOIDが、パースメッセージ処理(Parse())でのみ収集されていたことです。
+ そのため、前回の実行後にパースなしでバインドを実行すると、テーブルOIDが収集されず、pgpoolはクエリキャッシュの無効化に失敗していました。
+ バインド時にもテーブルOIDを収集するよう修正しました。
+ 006.memqcacheに回帰テストを追加しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ クエリキャッシュの無効化に失敗する問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ 実行メッセージを受信すると、pgpoolは最大行数パラメータをチェックします。この値が0でない場合、pgpoolはpool_handle_query_cache()にクエリキャッシュを作成しないよう指示するために、"partial_fetch"フラグを設定します。
+ 問題は、コミット2a99aa5d1が、INSERT/UPDATE/DELETEであっても実行メッセージパラメータが0以外(ほとんどの場合1)に設定され、pgpoolがSELECT以外の場合でもこのフラグを設定することを見落としていることです。
+ この結果、このフラグが true の場合、pool_handle_query_cache() 内の後続のコードでキャッシュの無効化がスキップされるため、クエリキャッシュの無効化に失敗していました。
+ フラグを設定する前にクエリが読み取り専用の SELECT であるかどうかを確認するように Execute() を修正しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ OpenBSDへ移植する際の問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成されました。
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ json_writerが特殊文字を正確にエンコードできない問題を修正しました。(Bo Peng)
+ </para>
+ <para>
+ <xref linkend="guc-wd-authkey">が特殊文字を含んでいる状態でwatchdogを起動すると<productname>Pgpool-II</productname>がクラッシュしていました。
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成され、Bo Pengによって微修正されました。
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ リロード時に<xref linkend="guc-pool-passwd">を開くようにストリーミングレプリケーションチェックとヘルスチェックプロセスを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションチェックとヘルスチェックはリロード前に<xref linkend="guc-pool-passwd">を開いていませんでした。
+ もし<xref linkend="guc-sr-check-password">か<xref linkend="guc-health-check-password">が空文字列の時は、<xref linkend="guc-pool-passwd">からパスワードを得ます。
+ そのためこれらのプロセスはリロード時に<xref linkend="guc-pool-passwd">の古いコンテンツを読み取ります。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ <xref linkend="guc-connection-life-time">の説明を改善しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time">が計算されるタイミングは、接続キャッシュを保持しているプロセスからクライアントが切断されたときであることを追記しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ <xref linkend="guc-sr-check-user">についての説明を改善しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ スーパーユーザーか<literal>pg_monitor</literal>グループであるべきです。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-01 [7969146b7]
+ 2025-03-27 [05a727e8d]
+ -->
+ <para>
+ 回帰テストで複数のソケットディレクトリを使用できるように修正しました。(Taiki Koshino, Tatsuo Ishii, Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-5-6">
<title>リリース 4.5.6</title>
<note>
+<sect1 id="release-4-6-1">
+ <title>リリース 4.6.1</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ 設定ファイルにメジャーバージョンを追加しました。 (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ クエリキャッシュにおける、古くからあるバインド時のバグを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 名前付きステートメントを準備すると、バインド後にパースメッセージなしで実行することが可能です。
+ 問題は、実行時またはCOMMIT時にクエリキャッシュを無効化するために必要なテーブルOIDが、パースメッセージ処理(Parse())でのみ収集されていたことです。
+ そのため、前回の実行後にパースなしでバインドを実行すると、テーブルOIDが収集されず、pgpoolはクエリキャッシュの無効化に失敗していました。
+ バインド時にもテーブルOIDを収集するよう修正しました。
+ 006.memqcacheに回帰テストを追加しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ クエリキャッシュの無効化に失敗する問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ 実行メッセージを受信すると、pgpoolは最大行数パラメータをチェックします。この値が0でない場合、pgpoolはpool_handle_query_cache()にクエリキャッシュを作成しないよう指示するために、"partial_fetch"フラグを設定します。
+ 問題は、コミット2a99aa5d1が、INSERT/UPDATE/DELETEであっても実行メッセージパラメータが0以外(ほとんどの場合1)に設定されpgpoolがSELECT以外の場合でもこのフラグを設定することを見落としていることです。
+ この結果、このフラグがtrueの場合、pool_handle_query_cache()内の後続のコードでキャッシュの無効化がスキップされるため、クエリキャッシュの無効化に失敗していました。
+ フラグを設定する前にクエリが読み取り専用のSELECTであるかどうかを確認するようにExecute()を修正しました。
+ </para>
+ <para>
+ この問題はEmond Achilleas Mantziosによって報告され、テストプログラムが提供されました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ OpenBSDへ移植する際の問題を修正しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成されました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ json_writerが特殊文字を正確にエンコードできない問題を修正しました。(Bo Peng)
+ </para>
+ <para>
+ <xref linkend="guc-wd-authkey">が特殊文字を含んでいる状態でwatchdogを起動すると<productname>Pgpool-II</productname>がクラッシュしていました。
+ </para>
+ <para>
+ このパッチはMartijn van Durenによって作成され、Bo Pengによって微修正されました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ リロード時に<xref linkend="guc-pool-passwd">を開くようにストリーミングレプリケーションチェックとヘルスチェックプロセスを修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションチェックとヘルスチェックはリロード前に<xref linkend="guc-pool-passwd">を開いていませんでした。
+ もし<xref linkend="guc-sr-check-password">か<xref linkend="guc-health-check-password">が空文字列の時は、<xref linkend="guc-pool-passwd">からパスワードを得ます。
+ そのためこれらのプロセスはリロード時に<xref linkend="guc-pool-passwd">の古いコンテンツを読み取ります。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-04-27 [5f4d2d683]
+ -->
+ <para>
+ IPv6が無効化されている環境におけるハートビート処理の不具合を修正しました。(<ulink url="https://github.com/pgpool/pgpool2/issues/99">#99</ulink>) (Tatsuo Ishii)
+ </para>
+ <para>
+ <productname>Pgpool-II</productname> 4.6.0からは、ハートビートプロセスはIPv6受信機ソケットに対応しています。
+ しかし、IPv6が機能していないときこれらのプロセスは機能しません。
+ <productname>Pgpool-II</productname>のメインプロセスや<productname>PostgreSQL</productname>のように、IPv4でも通常通り稼働するべきです。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004579.html">[pgpool-hackers: 4578] Fix IPv6 in heatbeat</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-09 [057e1131c]
+ -->
+ <para>
+ クエリキャッシュのドキュメントをを改善しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ Pgpool は、TIMESTAMP WITH TIMEZONE、TIME WITH TIMEZONEを返す関数を呼び出すクエリのキャッシュを拒否します。
+ 同じ名前の関数が複数あり、そのうちの 1 つがTIMESTAMP WITH TIMEZONE、TIME WITH TIMEZONEを返す場合、たとえそのうちの 1 つがこれらのデータ型を返さなくても、Pgpoolはキャッシュを拒否します。
+ そのため、この問題に関するメモと回避策を追加しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ <xref linkend="guc-connection-life-time">の説明を改善しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time">が計算されるタイミングは、接続キャッシュを保持しているプロセスからクライアントが切断されたときであることを追記しました。
+ </para>
+ <para>
+ ディスカッション: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ <xref linkend="guc-sr-check-user">についての説明を改善しました。 (Tatsuo Ishii)
+ </para>
+ <para>
+ スーパーユーザーか<literal>pg_monitor</literal>グループであるべきです。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-01 [7969146b7]
+ 2025-03-27 [05a727e8d]
+ -->
+ <para>
+ 回帰テストで複数のソケットディレクトリを使用できるように修正しました。(Taiki Koshino, Tatsuo Ishii, Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-6-0">
<title>リリース 4.6.0</title>
<note>
<!-- doc/src/sgml/release-4.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-2-22">
+ <title>Release 4.2.22</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ Add major version information to the configuration file. (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ Fix long standing bind bug with query cache. (Tatsuo Ishii)
+ </para>
+ <para>
+ When a named statement is prepared, it is possible to bind then execute without a parse message.
+ Problem is, table oids which are necessary to invalidate query cache at execute or COMMIT was
+ collected only in parse messages process (Parse()). Thus if bind is executed
+ without parse after previous execute, no table oids were collected, and pgpool failed to invalidate query cache.
+ Fix is collecting table oids at bind time too.
+ Add regression test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ Fix query cache invalidation bug. (Tatsuo Ishii)
+ </para>
+ <para>
+ When an execute message is received, pgpool checks its max number of rows paramter. If it's not zero,
+ pgpool sets "partial_fetch" flag to instruct pool_handle_query_cache() to not create query cache.
+ Problem is, commit 2a99aa5d1 missed that even INSERT/UPDATE/DELETE sets the execute message parameter to non 0 (mostly 1)
+ and pgpool set the flag for even none SELECTs. This resulted in failing to invalidate query cache because if the flag is true,
+ subsequent code in pool_handle_query_cache() skips cache invalidation.
+ To fix this change Execute() to check if the query is read only SELECT before setting the flag.
+ Also add test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and a test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ Fix portability to OpenBSD. (Tatsuo Ishii)
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ The patch was created by Martijn van Duren.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ Fix json_writer did not properly encode special characters. (Bo Peng)
+ </para>
+ <para>
+ <productname>Pgpool-II</productname> would crash when the watchdog was enabled if <xref linkend="guc-wd-authkey"> contained special characters (e.g., a backslash).
+ </para>
+ <para>
+ The patch was created by Martijn van Duren and slightly modified by Bo Peng.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ Fix sr check and health check to reopen <xref linkend="guc-pool-passwd"> upon reload. (Tatsuo Ishii)
+ </para>
+ <para>
+ The streaming replication check and health check process forgot to
+ reopen <xref linkend="guc-pool-passwd"> upon reload. If <xref linkend="guc-sr-check-password"> or
+ <xref linkend="guc-health-check-password"> is empty string, the password is obtained from
+ <xref linkend="guc-pool-passwd">. Thus those process read outdated content of <xref linkend="guc-pool-passwd">
+ upon reload.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ Enhance the description on <xref linkend="guc-connection-life-time"> (Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time"> is a config value to determine the life time of
+ cached connections to <productname>PostgreSQL</productname> backend. Current document lacks a
+ description that the expiration calculation is actually done at the
+ time when the client disconnects to the process which holds the cached
+ connections.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ Enhance the explanation on <xref linkend="guc-sr-check-user">. (Tatsuo Ishii)
+ </para>
+ <para>
+ It must be a superuser or in the <literal>pg_monitor</literal> group.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-2-21">
<title>Release 4.2.21</title>
<note>
<!-- doc/src/sgml/release-4.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-3-15">
+ <title>Release 4.3.15</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ Add major version information to the configuration file. (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ Fix long standing bind bug with query cache. (Tatsuo Ishii)
+ </para>
+ <para>
+ When a named statement is prepared, it is possible to bind then execute without a parse message.
+ Problem is, table oids which are necessary to invalidate query cache at execute or COMMIT was
+ collected only in parse messages process (Parse()). Thus if bind is executed
+ without parse after previous execute, no table oids were collected, and pgpool failed to invalidate query cache.
+ Fix is collecting table oids at bind time too.
+ Add regression test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ Fix query cache invalidation bug. (Tatsuo Ishii)
+ </para>
+ <para>
+ When an execute message is received, pgpool checks its max number of rows paramter. If it's not zero,
+ pgpool sets "partial_fetch" flag to instruct pool_handle_query_cache() to not create query cache.
+ Problem is, commit 2a99aa5d1 missed that even INSERT/UPDATE/DELETE sets the execute message parameter to non 0 (mostly 1)
+ and pgpool set the flag for even none SELECTs. This resulted in failing to invalidate query cache because if the flag is true,
+ subsequent code in pool_handle_query_cache() skips cache invalidation.
+ To fix this change Execute() to check if the query is read only SELECT before setting the flag.
+ Also add test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and a test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ Fix portability to OpenBSD. (Tatsuo Ishii)
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ The patch was created by Martijn van Duren.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ Fix json_writer did not properly encode special characters. (Bo Peng)
+ </para>
+ <para>
+ <productname>Pgpool-II</productname> would crash when the watchdog was enabled if <xref linkend="guc-wd-authkey"> contained special characters (e.g., a backslash).
+ </para>
+ <para>
+ The patch was created by Martijn van Duren and slightly modified by Bo Peng.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ Fix sr check and health check to reopen <xref linkend="guc-pool-passwd"> upon reload. (Tatsuo Ishii)
+ </para>
+ <para>
+ The streaming replication check and health check process forgot to
+ reopen <xref linkend="guc-pool-passwd"> upon reload. If <xref linkend="guc-sr-check-password"> or
+ <xref linkend="guc-health-check-password"> is empty string, the password is obtained from
+ <xref linkend="guc-pool-passwd">. Thus those process read outdated content of <xref linkend="guc-pool-passwd">
+ upon reload.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ Enhance the description on <xref linkend="guc-connection-life-time"> (Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time"> is a config value to determine the life time of
+ cached connections to <productname>PostgreSQL</productname> backend. Current document lacks a
+ description that the expiration calculation is actually done at the
+ time when the client disconnects to the process which holds the cached
+ connections.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ Enhance the explanation on <xref linkend="guc-sr-check-user">. (Tatsuo Ishii)
+ </para>
+ <para>
+ It must be a superuser or in the <literal>pg_monitor</literal> group.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-3-14">
<title>Release 4.3.14</title>
<note>
<!-- doc/src/sgml/release-4.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-4-12">
+ <title>Release 4.4.12</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ Add major version information to the configuration file. (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ Fix long standing bind bug with query cache. (Tatsuo Ishii)
+ </para>
+ <para>
+ When a named statement is prepared, it is possible to bind then execute without a parse message.
+ Problem is, table oids which are necessary to invalidate query cache at execute or COMMIT was
+ collected only in parse messages process (Parse()). Thus if bind is executed
+ without parse after previous execute, no table oids were collected, and pgpool failed to invalidate query cache.
+ Fix is collecting table oids at bind time too.
+ Add regression test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ Fix query cache invalidation bug. (Tatsuo Ishii)
+ </para>
+ <para>
+ When an execute message is received, pgpool checks its max number of rows paramter. If it's not zero,
+ pgpool sets "partial_fetch" flag to instruct pool_handle_query_cache() to not create query cache.
+ Problem is, commit 2a99aa5d1 missed that even INSERT/UPDATE/DELETE sets the execute message parameter to non 0 (mostly 1)
+ and pgpool set the flag for even none SELECTs. This resulted in failing to invalidate query cache because if the flag is true,
+ subsequent code in pool_handle_query_cache() skips cache invalidation.
+ To fix this change Execute() to check if the query is read only SELECT before setting the flag.
+ Also add test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and a test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ Fix portability to OpenBSD. (Tatsuo Ishii)
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ The patch was created by Martijn van Duren.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ Fix json_writer did not properly encode special characters. (Bo Peng)
+ </para>
+ <para>
+ <productname>Pgpool-II</productname> would crash when the watchdog was enabled if <xref linkend="guc-wd-authkey"> contained special characters (e.g., a backslash).
+ </para>
+ <para>
+ The patch was created by Martijn van Duren and slightly modified by Bo Peng.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ Fix sr check and health check to reopen <xref linkend="guc-pool-passwd"> upon reload. (Tatsuo Ishii)
+ </para>
+ <para>
+ The streaming replication check and health check process forgot to
+ reopen <xref linkend="guc-pool-passwd"> upon reload. If <xref linkend="guc-sr-check-password"> or
+ <xref linkend="guc-health-check-password"> is empty string, the password is obtained from
+ <xref linkend="guc-pool-passwd">. Thus those process read outdated content of <xref linkend="guc-pool-passwd">
+ upon reload.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ Enhance the description on <xref linkend="guc-connection-life-time"> (Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time"> is a config value to determine the life time of
+ cached connections to <productname>PostgreSQL</productname> backend. Current document lacks a
+ description that the expiration calculation is actually done at the
+ time when the client disconnects to the process which holds the cached
+ connections.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ Enhance the explanation on <xref linkend="guc-sr-check-user">. (Tatsuo Ishii)
+ </para>
+ <para>
+ It must be a superuser or in the <literal>pg_monitor</literal> group.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-4-11">
<title>Release 4.4.11</title>
<note>
+<sect1 id="release-4-5-7">
+ <title>Release 4.5.7</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ Add major version information to the configuration file. (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ Fix long standing bind bug with query cache. (Tatsuo Ishii)
+ </para>
+ <para>
+ When a named statement is prepared, it is possible to bind then execute without a parse message.
+ Problem is, table oids which are necessary to invalidate query cache at execute or COMMIT was
+ collected only in parse messages process (Parse()). Thus if bind is executed
+ without parse after previous execute, no table oids were collected, and pgpool failed to invalidate query cache.
+ Fix is collecting table oids at bind time too.
+ Add regression test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ Fix query cache invalidation bug. (Tatsuo Ishii)
+ </para>
+ <para>
+ When an execute message is received, pgpool checks its max number of rows paramter. If it's not zero,
+ pgpool sets "partial_fetch" flag to instruct pool_handle_query_cache() to not create query cache.
+ Problem is, commit 2a99aa5d1 missed that even INSERT/UPDATE/DELETE sets the execute message parameter to non 0 (mostly 1)
+ and pgpool set the flag for even none SELECTs. This resulted in failing to invalidate query cache because if the flag is true,
+ subsequent code in pool_handle_query_cache() skips cache invalidation.
+ To fix this change Execute() to check if the query is read only SELECT before setting the flag.
+ Also add test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and a test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ Fix portability to OpenBSD. (Tatsuo Ishii)
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ The patch was created by Martijn van Duren.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ Fix json_writer did not properly encode special characters. (Bo Peng)
+ </para>
+ <para>
+ <productname>Pgpool-II</productname> would crash when the watchdog was enabled if <xref linkend="guc-wd-authkey"> contained special characters (e.g., a backslash).
+ </para>
+ <para>
+ The patch was created by Martijn van Duren and slightly modified by Bo Peng.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ Fix sr check and health check to reopen <xref linkend="guc-pool-passwd"> upon reload. (Tatsuo Ishii)
+ </para>
+ <para>
+ The streaming replication check and health check process forgot to
+ reopen <xref linkend="guc-pool-passwd"> upon reload. If <xref linkend="guc-sr-check-password"> or
+ <xref linkend="guc-health-check-password"> is empty string, the password is obtained from
+ <xref linkend="guc-pool-passwd">. Thus those process read outdated content of <xref linkend="guc-pool-passwd">
+ upon reload.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ Enhance the description on <xref linkend="guc-connection-life-time"> (Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time"> is a config value to determine the life time of
+ cached connections to <productname>PostgreSQL</productname> backend. Current document lacks a
+ description that the expiration calculation is actually done at the
+ time when the client disconnects to the process which holds the cached
+ connections.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ Enhance the explanation on <xref linkend="guc-sr-check-user">. (Tatsuo Ishii)
+ </para>
+ <para>
+ It must be a superuser or in the <literal>pg_monitor</literal> group.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-01 [7969146b7]
+ 2025-03-27 [05a727e8d]
+ -->
+ <para>
+ Allow regression tests to use multiple socket directories. (Taiki Koshino, Tatsuo Ishii, Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-5-6">
<title>Release 4.5.6</title>
<note>
+<sect1 id="release-4-6-1">
+ <title>Release 4.6.1</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2025-05-15</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-02 [32dee13dd]
+ -->
+ <para>
+ Add major version information to the configuration file. (Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-08 [e3451b560]
+ -->
+ <para>
+ Fix long standing bind bug with query cache. (Tatsuo Ishii)
+ </para>
+ <para>
+ When a named statement is prepared, it is possible to bind then execute without a parse message.
+ Problem is, table oids which are necessary to invalidate query cache at execute or COMMIT was
+ collected only in parse messages process (Parse()). Thus if bind is executed
+ without parse after previous execute, no table oids were collected, and pgpool failed to invalidate query cache.
+ Fix is collecting table oids at bind time too.
+ Add regression test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-02 [1dfacffed]
+ -->
+ <para>
+ Fix query cache invalidation bug. (Tatsuo Ishii)
+ </para>
+ <para>
+ When an execute message is received, pgpool checks its max number of rows paramter. If it's not zero,
+ pgpool sets "partial_fetch" flag to instruct pool_handle_query_cache() to not create query cache.
+ Problem is, commit 2a99aa5d1 missed that even INSERT/UPDATE/DELETE sets the execute message parameter to non 0 (mostly 1)
+ and pgpool set the flag for even none SELECTs. This resulted in failing to invalidate query cache because if the flag is true,
+ subsequent code in pool_handle_query_cache() skips cache invalidation.
+ To fix this change Execute() to check if the query is read only SELECT before setting the flag.
+ Also add test to 006.memqcache.
+ </para>
+ <para>
+ Problem reported by and a test program provided by Achilleas Mantzios.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2025-April/009430.html">[pgpool-general: 9427] Clarification on query results cache visibility</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-05-05 [5947ba418]
+ -->
+ <para>
+ Fix portability to OpenBSD. (Tatsuo Ishii)
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-May/004583.html">[pgpool-hackers: 4582] Make pgpool build on OpenBSD</ulink>
+ </para>
+ <para>
+ The patch was created by Martijn van Duren.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-05-01 [14c94473b]
+ -->
+ <para>
+ Fix json_writer did not properly encode special characters. (Bo Peng)
+ </para>
+ <para>
+ <productname>Pgpool-II</productname> would crash when the watchdog was enabled if <xref linkend="guc-wd-authkey"> contained special characters (e.g., a backslash).
+ </para>
+ <para>
+ The patch was created by Martijn van Duren and slightly modified by Bo Peng.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-03-04 [e1e32536f]
+ -->
+ <para>
+ Fix sr check and health check to reopen <xref linkend="guc-pool-passwd"> upon reload. (Tatsuo Ishii)
+ </para>
+ <para>
+ The streaming replication check and health check process forgot to
+ reopen <xref linkend="guc-pool-passwd"> upon reload. If <xref linkend="guc-sr-check-password"> or
+ <xref linkend="guc-health-check-password"> is empty string, the password is obtained from
+ <xref linkend="guc-pool-passwd">. Thus those process read outdated content of <xref linkend="guc-pool-passwd">
+ upon reload.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-04-27 [5f4d2d683]
+ -->
+ <para>
+ Fix heartbeat processes issue in the system where IPv6 is disabled. (<ulink url="https://github.com/pgpool/pgpool2/issues/99">#99</ulink>) (Tatsuo Ishii)
+ </para>
+ <para>
+ From <productname>Pgpool-II</productname>4.6.0, heartbeat process can handle IPv6 receiver
+ sockets. However, the process does not work normally if IPv6 is
+ disabled in the system. Like <productname>Pgpool-II</productname> main process and <productname>PostgreSQL</productname>, I
+ think it should work normally if IPv4 is available.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004579.html">[pgpool-hackers: 4578] Fix IPv6 in heatbeat</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-05-09 [057e1131c]
+ -->
+ <para>
+ Enhance query cache doc. (Tatsuo Ishii)
+ </para>
+ <para>
+ Pgpool refuses to cache a query calling functions returning TIMESTAMP
+ WITH TIMEZONE, TIME WITH TIMEZONE. If there are multiple functions
+ having same name and one of them returns TIMESTAMP WITH TIMEZONE, TIME
+ WITH TIMEZONE, pgpool refuses to cache even if one of them does not
+ return the data types. So add a note on this along with workaround.
+ </para>
+ </listitem>
+ <listitem>
+ <!--
+ 2025-04-24 [e50114280]
+ -->
+ <para>
+ Enhance the description on <xref linkend="guc-connection-life-time"> (Tatsuo Ishii)
+ </para>
+ <para>
+ <xref linkend="guc-connection-life-time"> is a config value to determine the life time of
+ cached connections to <productname>PostgreSQL</productname> backend. Current document lacks a
+ description that the expiration calculation is actually done at the
+ time when the client disconnects to the process which holds the cached
+ connections.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2025-April/004578.html">[pgpool-hackers: 4577] Doc: enhance the description on connection_life_time</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2025-03-05 [a3086943f]
+ -->
+ <para>
+ Enhance the explanation on <xref linkend="guc-sr-check-user">. (Tatsuo Ishii)
+ </para>
+ <para>
+ It must be a superuser or in the <literal>pg_monitor</literal> group.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2025-04-01 [7969146b7]
+ 2025-03-27 [05a727e8d]
+ -->
+ <para>
+ Allow regression tests to use multiple socket directories. (Taiki Koshino, Tatsuo Ishii, Bo Peng)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-6-0">
<title>Release 4.6.0</title>
<note>