PG 17 and GUC variables

Started by Bruce Momjianover 1 year ago5 messages
#1Bruce Momjian
bruce@momjian.us

FYI, looking at the release notes, I see 15 GUC variables added in this
release, and two removed. That 15 number seemed unusually high so I
thought I would report it.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Only you can decide what is important to you.

#2Michael Paquier
michael@paquier.xyz
In reply to: Bruce Momjian (#1)
Re: PG 17 and GUC variables

On Thu, Jun 20, 2024 at 08:01:19PM -0400, Bruce Momjian wrote:

FYI, looking at the release notes, I see 15 GUC variables added in this
release, and two removed. That 15 number seemed unusually high so I
thought I would report it.

Scanning pg_settings across the two versions, I'm seeing:
- Removed GUCs between 16 and 17:
db_user_namespace
old_snapshot_threshold
trace_recovery_messages

- Added GUCs between 16 and 17:
allow_alter_system
commit_timestamp_buffers
enable_group_by_reordering
event_triggers
huge_pages_status
io_combine_limit
max_notify_queue_pages
multixact_member_buffers
multixact_offset_buffers
notify_buffers
serializable_buffers
standby_slot_names
subtransaction_buffers
summarize_wal
sync_replication_slots
trace_connection_negotiation
transaction_buffers
transaction_timeout
wal_summary_keep_time

So that makes for 3 removed, 19 additions and a +16.
--
Michael

#3Robert Treat
rob@xzilla.net
In reply to: Michael Paquier (#2)
Re: PG 17 and GUC variables

On Thu, Jun 20, 2024 at 10:03 PM Michael Paquier <michael@paquier.xyz> wrote:

On Thu, Jun 20, 2024 at 08:01:19PM -0400, Bruce Momjian wrote:

FYI, looking at the release notes, I see 15 GUC variables added in this
release, and two removed. That 15 number seemed unusually high so I
thought I would report it.

Scanning pg_settings across the two versions, I'm seeing:
- Removed GUCs between 16 and 17:
db_user_namespace
old_snapshot_threshold
trace_recovery_messages

- Added GUCs between 16 and 17:
allow_alter_system
commit_timestamp_buffers
enable_group_by_reordering
event_triggers
huge_pages_status
io_combine_limit
max_notify_queue_pages
multixact_member_buffers
multixact_offset_buffers
notify_buffers
serializable_buffers
standby_slot_names
subtransaction_buffers
summarize_wal
sync_replication_slots
trace_connection_negotiation
transaction_buffers
transaction_timeout
wal_summary_keep_time

I was looking at trace_connection_negotiation and ran across this
commit removing it's mention from the release notes because it is
undocumented: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=95cabf542f04b634303f899600ea62fb256a08c2

Why is the right solution to remove it from the release notes rather
than to document it properly? It's not like people won't notice a new
GUC has popped up in their configs. Also, presumaing I'm unerstanding
it's purpose correctly, ISTM it would fit along side other trace_*
gucs in https://www.postgresql.org/docs/current/runtime-config-developer.html#RUNTIME-CONFIG-DEVELOPER.

Robert Treat
https://xzilla.net

#4Heikki Linnakangas
hlinnaka@iki.fi
In reply to: Robert Treat (#3)
1 attachment(s)
Re: PG 17 and GUC variables

On 04/08/2024 06:29, Robert Treat wrote:

I was looking at trace_connection_negotiation and ran across this
commit removing it's mention from the release notes because it is
undocumented: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=95cabf542f04b634303f899600ea62fb256a08c2

Why is the right solution to remove it from the release notes rather
than to document it properly? It's not like people won't notice a new
GUC has popped up in their configs. Also, presumaing I'm unerstanding
it's purpose correctly, ISTM it would fit along side other trace_*
gucs in https://www.postgresql.org/docs/current/runtime-config-developer.html#RUNTIME-CONFIG-DEVELOPER.

Not sure whether it's worth mentioning in release notes, but I think
you're right that it should be listed in that docs section. How about
the attached description?

I see that there are two more developer-only GUCs that are not listed in
the docs:

trace_syncscan
optimize_bounded_sort

There's a comment on them that says "/* this is undocumented because not
exposed in a standard build */", but that seems like a weak reason,
given that many of the other options in that docs section also require
additional build-time options. I think we should add those to the docs
too for the sake of completeness.

--
Heikki Linnakangas
Neon (https://neon.tech)

Attachments:

document-trace_connection_negotiation.patchtext/x-patch; charset=UTF-8; name=document-trace_connection_negotiation.patchDownload
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index a65839a6709..2f0ba3858a4 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -11667,6 +11667,26 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
       </listitem>
      </varlistentry>
 
+     <varlistentry id="guc-trace-connection-negotiation" xreflabel="trace_connection_negotiation">
+      <term><varname>trace_connection_negotiation</varname> (<type>boolean</type>)
+      <indexterm>
+       <primary><varname>trace_connection_negotiation</varname> configuration parameter</primary>
+      </indexterm>
+      </term>
+      <listitem>
+       <para>
+        If on, write information to the log about encryption negotiation
+        packets on each client connection.  This can be useful for debugging
+        client connectivity issues from the server side.  The log messages do
+        not contain sensitive information like encryption keys.
+       </para>
+       <para>
+        This parameter can only be set in the
+        <filename>postgresql.conf</filename> file or on the server command line.
+       </para>
+      </listitem>
+     </varlistentry>
+
      <varlistentry id="guc-trace-notify" xreflabel="trace_notify">
       <term><varname>trace_notify</varname> (<type>boolean</type>)
       <indexterm>
#5Robert Treat
rob@xzilla.net
In reply to: Heikki Linnakangas (#4)
1 attachment(s)
Re: PG 17 and GUC variables

On Sun, Aug 4, 2024 at 4:45 AM Heikki Linnakangas <hlinnaka@iki.fi> wrote:

On 04/08/2024 06:29, Robert Treat wrote:

I was looking at trace_connection_negotiation and ran across this
commit removing it's mention from the release notes because it is
undocumented: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=95cabf542f04b634303f899600ea62fb256a08c2

Why is the right solution to remove it from the release notes rather
than to document it properly? It's not like people won't notice a new
GUC has popped up in their configs. Also, presumaing I'm unerstanding
it's purpose correctly, ISTM it would fit along side other trace_*
gucs in https://www.postgresql.org/docs/current/runtime-config-developer.html#RUNTIME-CONFIG-DEVELOPER.

Not sure whether it's worth mentioning in release notes, but I think
you're right that it should be listed in that docs section. How about
the attached description?

Slightly modified version attached which I think is a little more succinct.

I see that there are two more developer-only GUCs that are not listed in
the docs:

trace_syncscan
optimize_bounded_sort

There's a comment on them that says "/* this is undocumented because not
exposed in a standard build */", but that seems like a weak reason,
given that many of the other options in that docs section also require
additional build-time options. I think we should add those to the docs
too for the sake of completeness.

Agreed.

Robert Treat
https://xzilla.net

Attachments:

document-trace_connection_negotiation-2.patchapplication/octet-stream; name=document-trace_connection_negotiation-2.patchDownload
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index a65839a6709..2f0ba3858a4 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -11667,6 +11667,26 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
       </listitem>
      </varlistentry>
 
+     <varlistentry id="guc-trace-connection-negotiation" xreflabel="trace_connection_negotiation">
+      <term><varname>trace_connection_negotiation</varname> (<type>boolean</type>)
+      <indexterm>
+       <primary><varname>trace_connection_negotiation</varname> configuration parameter</primary>
+      </indexterm>
+      </term>
+      <listitem>
+       <para>
+        If on, log information about encryption negotiation packets for
+        each client connection.  This can be useful for debugging
+        client connectivity issues from the server side.  The log messages do
+        not contain sensitive information like encryption keys.
+       </para>
+       <para>
+        This parameter can only be set in the
+        <filename>postgresql.conf</filename> file or on the server command line.
+       </para>
+      </listitem>
+     </varlistentry>
+
      <varlistentry id="guc-trace-notify" xreflabel="trace_notify">
       <term><varname>trace_notify</varname> (<type>boolean</type>)
       <indexterm>