summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorTaiki Koshino2025-11-14 01:39:06 +0000
committerTaiki Koshino2025-11-14 01:39:06 +0000
commit41577d1afd745a06fcd55091bce7f38eca0c6ab4 (patch)
tree1140a74783400e6b1bfa18ef62fe8228261950ce /doc/src
parentcbbf13bf98b32bcb7c7a53e61f4ba558d2211858 (diff)
Prepare Release Note.
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/release-4.2.sgml227
-rw-r--r--doc/src/sgml/release-4.3.sgml227
-rw-r--r--doc/src/sgml/release-4.4.sgml243
-rw-r--r--doc/src/sgml/release-4.5.sgml243
-rw-r--r--doc/src/sgml/release-4.6.sgml338
5 files changed, 1278 insertions, 0 deletions
diff --git a/doc/src/sgml/release-4.2.sgml b/doc/src/sgml/release-4.2.sgml
index 3d3972638..0a43b3481 100644
--- a/doc/src/sgml/release-4.2.sgml
+++ b/doc/src/sgml/release-4.2.sgml
@@ -1,6 +1,233 @@
<!-- 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>
diff --git a/doc/src/sgml/release-4.3.sgml b/doc/src/sgml/release-4.3.sgml
index 9181a5018..a9580cbc8 100644
--- a/doc/src/sgml/release-4.3.sgml
+++ b/doc/src/sgml/release-4.3.sgml
@@ -1,6 +1,233 @@
<!-- 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>
diff --git a/doc/src/sgml/release-4.4.sgml b/doc/src/sgml/release-4.4.sgml
index 8bf79e5f5..a08eea07d 100644
--- a/doc/src/sgml/release-4.4.sgml
+++ b/doc/src/sgml/release-4.4.sgml
@@ -1,6 +1,249 @@
<!-- 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>
diff --git a/doc/src/sgml/release-4.5.sgml b/doc/src/sgml/release-4.5.sgml
index e60bd966a..ca789f484 100644
--- a/doc/src/sgml/release-4.5.sgml
+++ b/doc/src/sgml/release-4.5.sgml
@@ -1,3 +1,246 @@
+<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>
diff --git a/doc/src/sgml/release-4.6.sgml b/doc/src/sgml/release-4.6.sgml
index 2f5514974..8d9d9c1cf 100644
--- a/doc/src/sgml/release-4.6.sgml
+++ b/doc/src/sgml/release-4.6.sgml
@@ -1,3 +1,341 @@
+<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>