On 26.04.23 07:36, Daniel Gustafsson wrote:
On 26 Apr 2023, at 10:18, Daniel Gustafsson <dan...@yesql.se> wrote:

On 26 Apr 2023, at 08:08, Peter Eisentraut <peter.eisentr...@enterprisedb.com> 
wrote:

I wonder if the notes are even true.  The text for tcp_keepalives_interval 
already says that it is only supported if TCP_KEEPCNT is supported.

Re-reading this I think there was some confusion, definitely so on my part.

tcp_keepalives_interval relies on TCP_KEEPINTVL, with the Windows equivalent
being SIO_KEEPALIVE_VALS.  TCP_KEEPCNT is for tcp_keepalives_count which indeed
is not supported on Windows.  Jonathans original question was regarding _count
and _timeout and not _interval.

I do agree that all of these notes may just as well be added to the text, the
option client_connection_check_interval following these have text about
platform compatibility without using a note.

How about this patch?

The first two hunks are pretty straightforward, they just move the existing text around.

For the other two, which are not supported on Windows, I added an explicit parenthetical note. We don't list which of the Unix-like platforms support the respective options, but I suspect that it's all of them in practice? (Otherwise we should be more explicit.) So I think calling out Windows explicitly is sensible, also considering that the first two settings are supported on Windows but the latter two are not.
From 97fe489263f18314e99ec471ab160dbc026a1841 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 31 May 2023 07:12:38 -0400
Subject: [PATCH] doc: Fix confusing positioning of notes in connection
 settings

Discussion: 
https://www.postgresql.org/message-id/flat/6f825d42-a1ce-492a-2ea7-c83e6e65fa8b%40postgresql.org
---
 doc/src/sgml/config.sgml | 30 ++++++------------------------
 1 file changed, 6 insertions(+), 24 deletions(-)

diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 5da74b3c40..5873a0ef2f 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -950,18 +950,14 @@ <title>TCP Settings</title>
         the operating system should send a TCP keepalive message to the client.
         If this value is specified without units, it is taken as seconds.
         A value of 0 (the default) selects the operating system's default.
+        On Windows, setting a value of 0 will set this parameter to 2 hours,
+        since Windows does not provide a way to read the system default value.
         This parameter is supported only on systems that support
         <symbol>TCP_KEEPIDLE</symbol> or an equivalent socket option, and on
         Windows; on other systems, it must be zero.
         In sessions connected via a Unix-domain socket, this parameter is
         ignored and always reads as zero.
        </para>
-       <note>
-        <para>
-         On Windows, setting a value of 0 will set this parameter to 2 hours,
-         since Windows does not provide a way to read the system default value.
-        </para>
-       </note>
       </listitem>
      </varlistentry>
 
@@ -977,18 +973,14 @@ <title>TCP Settings</title>
         that has not been acknowledged by the client should be retransmitted.
         If this value is specified without units, it is taken as seconds.
         A value of 0 (the default) selects the operating system's default.
+        On Windows, setting a value of 0 will set this parameter to 1 second,
+        since Windows does not provide a way to read the system default value.
         This parameter is supported only on systems that support
         <symbol>TCP_KEEPINTVL</symbol> or an equivalent socket option, and on
         Windows; on other systems, it must be zero.
         In sessions connected via a Unix-domain socket, this parameter is
         ignored and always reads as zero.
        </para>
-       <note>
-        <para>
-         On Windows, setting a value of 0 will set this parameter to 1 second,
-         since Windows does not provide a way to read the system default value.
-        </para>
-       </note>
       </listitem>
      </varlistentry>
 
@@ -1004,16 +996,11 @@ <title>TCP Settings</title>
         the server's connection to the client is considered dead.
         A value of 0 (the default) selects the operating system's default.
         This parameter is supported only on systems that support
-        <symbol>TCP_KEEPCNT</symbol> or an equivalent socket option;
+        <symbol>TCP_KEEPCNT</symbol> or an equivalent socket option (which 
does not include Windows);
         on other systems, it must be zero.
         In sessions connected via a Unix-domain socket, this parameter is
         ignored and always reads as zero.
        </para>
-       <note>
-        <para>
-         This parameter is not supported on Windows, and must be zero.
-        </para>
-       </note>
       </listitem>
      </varlistentry>
 
@@ -1030,15 +1017,10 @@ <title>TCP Settings</title>
         If this value is specified without units, it is taken as milliseconds.
         A value of 0 (the default) selects the operating system's default.
         This parameter is supported only on systems that support
-        <symbol>TCP_USER_TIMEOUT</symbol>; on other systems, it must be zero.
+        <symbol>TCP_USER_TIMEOUT</symbol> (which does not include Windows); on 
other systems, it must be zero.
         In sessions connected via a Unix-domain socket, this parameter is
         ignored and always reads as zero.
        </para>
-       <note>
-        <para>
-         This parameter is not supported on Windows, and must be zero.
-        </para>
-       </note>
       </listitem>
      </varlistentry>
 
-- 
2.40.1

Reply via email to