Doc: add 4.5 english release notes.
authorBo Peng <pengbo@sraoss.co.jp>
Thu, 9 Nov 2023 13:21:59 +0000 (22:21 +0900)
committerBo Peng <pengbo@sraoss.co.jp>
Thu, 9 Nov 2023 13:21:59 +0000 (22:21 +0900)
doc/src/sgml/filelist.sgml
doc/src/sgml/release-4.5.sgml [new file with mode: 0644]
doc/src/sgml/release.sgml

index d51ae67783d630a5b56b30630d957d7490c8f965..bf4803f2fcd49f0e6365fe817bb2d293616c79c0 100644 (file)
@@ -53,6 +53,7 @@
 
 <!-- appendixes -->
 <!ENTITY release    SYSTEM "release.sgml">
+<!ENTITY release-4.5    SYSTEM "release-4.5.sgml">
 <!ENTITY release-4.4    SYSTEM "release-4.4.sgml">
 <!ENTITY release-4.3    SYSTEM "release-4.3.sgml">
 <!ENTITY release-4.2    SYSTEM "release-4.2.sgml">
diff --git a/doc/src/sgml/release-4.5.sgml b/doc/src/sgml/release-4.5.sgml
new file mode 100644 (file)
index 0000000..51b5952
--- /dev/null
@@ -0,0 +1,490 @@
+<sect1 id="release-4-5-0">
+ <title>Release 4.5.0</title>
+ <note>
+  <title>Release Date</title>
+  <simpara>2023-XX-XX</simpara>
+ </note>
+
+ <sect2>
+  <title>Overview</title>
+  <para>
+   This release resolves several long-standing issues,
+   including support for multiple statements and session disconnections
+   issue in some cases. Many enhancements are also added for easier
+   configuration and administration.
+  </para>
+
+  <para>
+   Major enhancements are as follows:
+  </para>
+
+  <itemizedlist>
+   <listitem>
+    <para>
+     Allow to use multiple statements in a query string.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Allow to set <xref linkend="guc-delay-threshold-by-time"> in milliseconds.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Avoid session disconnection issue in failover/failback/backend error in some cases.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Allow to route queries to a specific backend node for a specific user connection.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Support multiple directories specification for <xref linkend="guc-pcp-socket-dir">.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Import PostgreSQL 16's SQL parser.
+    </para>
+   </listitem>
+  </itemizedlist>
+ </sect2>
+
+ <sect2 id="migration-4-5-0">
+  <title>Migration to Version 4.5</title>
+  <itemizedlist>
+
+   <listitem>
+    <!--
+    2023-11-09 [4bfca73]
+    -->
+    <para>
+     The following normal ERROR messages are downgraded to DEBUG messages. (Bo Peng)
+    </para>
+    <para>
+    </para>
+
+    <itemizedlist>
+     <listitem>
+      <para>
+       These two messages are caused when the client did not send a
+       terminate message before disconnecting to pgpool.
+       For example, when the client process was forcefully terminated, this error occurs.
+       Although they are harmless, it may sometimes confuse users.
+      </para>
+      <programlisting>
+ERROR:unable to flush data to frontend
+      </programlisting>
+      <programlisting>
+ERROR:  unable to read data from frontend
+DETAIL:  EOF encountered with frontend
+      </programlisting>
+     </listitem>
+     <listitem>
+      <para>
+       If <xref linkend="guc-client-idle-limit"> is set to a non-zero value,
+       the connection will be disconnected if it remains idle since the last query.
+       Because the disconnection is caused by Pgpool-II settings,
+       <productname>Pgpool-II</productname> should handle it as "DEBUG" instead of "ERROR".
+      </para>
+      <programlisting>
+ERROR:  unable to read data
+DETAIL:  child connection forced to terminate due to client_idle_limit:30 is reached
+      </programlisting>
+     </listitem>
+    </itemizedlist>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-04-25 [6ec851b]
+    -->
+    <para>
+     Change default behavior of pcp commands for searching password file. (Chen Ningwei)
+    </para>
+    <para>
+     Previously pcp command does not searching for .pcppass/PCPPASSFILE
+     if <option>-w/--no-password</option> option is not given,
+     which is inconsistent with psql.
+    </para>
+    <para>
+     In the release, the default behavior is changed.
+     Since this release, <option>-w/--no-password</option> option is
+     not required to read the pcp commands password from .pcppass/PCPPASSFILE.
+    </para>
+   </listitem>
+
+  </itemizedlist>
+ </sect2>
+
+<sect2>
+  <title>Changes</title>
+  <itemizedlist>
+
+   <listitem>
+    <!--
+    2023-10-06 [d436949]
+    -->
+    <para>
+     Add SSH timeout in escalation.sh.sample. (Bo Peng)
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-08-19 [2efc59e]
+    -->
+    <para>
+     Allow to set <xref linkend="guc-delay-threshold-by-time"> in milliseconds. (Tatsuo Ishii)
+    </para>
+    <para>
+     Previously it was allowed only in seconds. Also put some
+     refactoring.
+    </para>
+    <para>
+     Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2023-August/004372.html">https://www.pgpool.net/pipermail/pgpool-hackers/2023-August/004372.html</ulink>
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-10-30 [91369ea]
+    2023-08-01 [8d31e90]
+    2023-07-31 [ca300f8]
+    -->
+    <para>
+     Import PostgreSQL 16 new parser. (Chen Ningwei)
+    </para>
+    <para>
+     Major changes of PostgreSQL 16 parser include:
+    </para>
+    <itemizedlist>
+
+     <listitem>
+      <para>
+       Add new option DEFAULT to COPY FROM
+      </para>
+      <programlisting>
+COPY ... FROM stdin WITH (default 'xx');
+      </programlisting>
+     </listitem>
+
+     <listitem>
+      <para>
+       Allow the STORAGE type to be specified by CREATE TABLE
+      </para>
+      <programlisting>
+CREATE TABLE t1 (
+   c1 VARCHAR(10) STORAGE PLAIN,
+   c2 TEXT STORAGE EXTENDED
+);
+      </programlisting>
+     </listitem>
+
+     <listitem>
+      <para>
+       Add EXPLAIN option GENERIC_PLAN to display the generic plan for a parameterized query
+      </para>
+      <programlisting>
+EXPLAIN (GENERIC_PLAN) SELECT ...;
+      </programlisting>
+     </listitem>
+
+     <listitem>
+      <para>
+       Allow subqueries in the FROM clause to omit aliases
+      </para>
+      <programlisting>
+SELECT COUNT(*) FROM (SELECT ... FROM ...);
+      </programlisting>
+     </listitem>
+
+     <listitem>
+      <para>
+       Add SQL/JSON constructors
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       Add VACUUM options
+       SKIP_DATABASE_STATS, ONLY_DATABASE_STATS to skip or update all frozen statistics
+       PROCESS_MAIN to only process TOAST tables
+      </para>
+      <programlisting>
+VACUUM (SKIP_DATABASE_STATS);
+VACUUM (PROCESS_MAIN FALSE) t1 ;
+      </programlisting>
+     </listitem>
+    </itemizedlist>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-07-24 [44fa732]
+    2023-07-23 [4658f84]
+    -->
+    <para>
+     Add new field <literal>load_balance_node</literal> to <xref linkend="sql-show-pool-pools"> and <xref linkend="pcp-proc-info">. (Tatsuo Ishii)
+    </para>
+    <para>
+     The new field is "1" if pgpool process is connected by a client and
+     the session uses the backend id as a load balance node. Users can
+     execute the commands to find out if there's any session that uses the
+     backend as the load balance node. If so, shutting down the backend may
+     cause session disconnection.
+    </para>
+    <para>
+     Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2023-July/004353.html">https://www.pgpool.net/pipermail/pgpool-hackers/2023-July/004353.html</ulink>
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-07-18 [4aa657e]
+    -->
+    <para>
+     Mitigate session disconnection issue in failover/failback/backend error. (Tatsuo Ishii)
+    </para>
+    <para>
+     Previously <productname>Pgpool-II</productname> disconnected client
+     sessions in various cases. This commit tries to avoid some of cases,
+     especially when a backend goes down and the backend is not either
+     primary (or main node) nor load balance node.
+    </para>
+    <para>
+     Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2023-July/004352.html">https://www.pgpool.net/pipermail/pgpool-hackers/2023-July/004352.html</ulink>
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-06-13 [36d695d]
+    -->
+    <para>
+     Allow to route queries to a specific backend node for a specific user connection. (Bo Peng)
+    </para>
+    <para>
+     This commit adds a new parameter
+     <xref linkend="guc-user-redirect-preference-list"> to
+     allow to send SELECT queries to a specific backend node for a
+     specific user connection.
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-06-06 [e7e0315]
+    -->
+    <para>
+     Support multiple directories specification for <xref linkend="guc-pcp-socket-dir">. (Chen Ningwei)
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-05-19 [66fa78e]
+    -->
+    <para>
+     Allow to load balance <literal>PREPARE/EXECUTE/DEALLOCATE</literal>. (Tatsuo Ishii)
+    </para>
+    <para>
+     Previously <literal>PREPARE/EXECUTE/DEALLOCATE</literal> are
+     not load balanced. In streaming replication/logical replication
+     mode, they were sent to always primary node.
+     In native replication/snapshot isolation mode,
+     they were always sent to all nodes.
+    </para>
+    <para>
+     Now they can be load balanced if the SQL statement prepared by PREPARE
+     command is a read only SELECT.
+    </para>
+    <para>
+     Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2023-May/004334.html">https://www.pgpool.net/pipermail/pgpool-hackers/2023-May/004334.html</ulink>
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-04-15 [df69dba]
+    2023-04-15 [84d6699]
+    -->
+    <para>
+     Add new config parameter <xref linkend="guc-log-pcp-processes">. (Tatsuo Ishii)
+    </para>
+    <para>
+     This allows to disable logging about normal PCP Process fork and exit
+     status. When pcp command is executed, pgpool logs its fork/exit event
+     even if there's no error. This could fill up the pgpool log.
+    </para>
+    <para>
+     Abnormal fork/exit event will be logged even if the parameter is
+     disabled.
+    </para>
+    <para>
+     Patch is created by Maximilien Cuony and reviewed by Tatsuo Ishii.
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-03-25 [48da871]
+    -->
+    <para>
+     Import <literal>psqlscan</literal> source code into <productname>Pgpool-II</productname> to judge multi statement query. (Tatsuo Ishii)
+    </para>
+    <para>
+     <literal>Psqlscan</literal> is a module in the PostgreSQL source tree.
+     It is essentially subset of <productname>PostgreSQL</productname>
+     SQL scanner but it is specialized for detecting
+     the end of each SQL statement. Therefore we can count the number of
+     SQL statements in a query string by using it.
+    </para>
+    <para>
+     Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2023-February/004291.html
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-02-15 [fd32f5e]
+    2023-02-23 [7d4dde0]
+    2023-04-09 [3bd5f35]
+    -->
+    <para>
+     Allow to use multiple statements extensively. (Tatsuo Ishii)
+    </para>
+    <para>
+     This commit tries to eliminate pgpool's long standing limitations
+     regarding multiple statements (multi-statements).
+    </para>
+    <para>
+     Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2023-February/004287.html">https://www.pgpool.net/pipermail/pgpool-hackers/2023-February/004287.html</ulink>
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-03-10 [31669e9]
+    2023-02-07 [85ce852]
+    -->
+    <para>
+     Add new configuration parameter <xref linkend="guc-notice-per-node-statement">. (Tatsuo Ishii)
+    </para>
+    <para>
+     The new GUC variable allows to emit NOTICE message of queries per
+     backend basis.  It's similar to <xref linkend="guc-log-per-node-statement">
+     but as the log level is NOTICE, the log is printed on client's terminal,
+     thus users can know where their queries go to without looking into pgpool
+     log files.
+    </para>
+    <para>
+     Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2023-February/004276.html">https://www.pgpool.net/pipermail/pgpool-hackers/2023-February/004276.html</ulink>
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2022-12-15 [57751f2]
+    -->
+    <para>
+     Enhance status file reading log. (Tatsuo Ishii)
+    </para>
+    <para>
+     Previously only if <filename>pgpool_status</filename> exists and
+     the status is down, a log message was printed. However it is more
+     useful no matter what the status (up or unused) is because it also
+     represents that pgpool_status exists and it is read while pgpool
+     starting up, which is useful information.
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-05-19 [6ce39ed]
+    -->
+    <para>
+     Remove <filename>pool_config.c</filename> and <filename>scan.c</filename>
+     from git repository. (Tatsuo Ishii)
+    </para>
+    <para>
+     They are generated files and we should not keep in the git repository.
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2022-12-14 [a493ed7]
+    2022-12-14 [85b7e62]
+    2022-12-13 [caeb3a8]
+    -->
+    <para>
+     Remove <filename>Makefile.in</filename> etc. generated by autoconf. (Tatsuo Ishii)
+    </para>
+    <para>
+     Also update some .ignore files and add some new .gitignore files.  Now
+     developers need to run autoconf/autoreconf before compiling since the
+     generated files are not provided by git anymore.
+    </para>
+   </listitem>
+  </itemizedlist>
+ </sect2>
+
+ <sect2>
+  <title>Bug fixes</title>
+  <itemizedlist>
+   <listitem>
+    <!--
+    2023-09-18 [b377b1d]
+    -->
+    <para>
+     Fix race condition with <productname>Pgpool-II</productname> main and pcp child process. (Tatsuo Ishii)
+    </para>
+    <para>
+     When pcp child process is forked off, pgpool main process unblock all
+     signals. This could lead to a race condition if a signal is sent to
+     the pcp process before it sets up signal handlers. Fix is, do not
+     unblock signals until the signal handlers are set up.
+    </para>
+    <para>
+     Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2023-September/004398.html">https://www.pgpool.net/pipermail/pgpool-hackers/2023-September/004398.html</ulink>
+    </para>
+   </listitem>
+
+   <listitem>
+    <para>
+     This release fixes the same bugs as other minor releases.
+     See <xref linkend="release"> for more details of those fixes.
+    </para>
+   </listitem>
+  </itemizedlist>
+ </sect2>
+
+ <sect2>
+  <title>Regression Tests</title>
+  <itemizedlist>
+   <listitem>
+    <!--
+    2023-09-17 [2ee5011]
+    2023-09-13 [fb0800e]
+    -->
+    <para>
+     Attempt to fix 001.load_balance test timeout. (Tatsuo Ishii)
+    </para>
+   </listitem>
+
+   <listitem>
+    <!--
+    2023-02-17 [c94123a]
+    2023-02-12 [f8c3d7b]
+    -->
+    <para>
+     Enhance regression 001.load_balance. (Tatsuo Ishii)
+    </para>
+   </listitem>
+  </itemizedlist>
+ </sect2>
+
+</sect1>
index 1d812aabd8202655796a4f25d23a796efb079706..c699d768f8e7817b534610fbd41b766b65284e06 100644 (file)
@@ -72,6 +72,7 @@ For new features, add links to the documentation sections.
  subsets can easily be copied into back branches.
  -->
 
+ &release-4.5;
  &release-4.4;
  &release-4.3;
  &release-4.2;