Commit 584e35d1 authored by Peter Eisentraut's avatar Peter Eisentraut

Change local_preload_libraries to PGC_USERSET

This allows it to be used with ALTER ROLE SET.

Although the old setting of PGC_BACKEND prevented changes after session
start, after discussion it was more useful to allow ALTER ROLE SET
instead and just document that changes during a session have no effect.
This is similar to how session_preload_libraries works already.

An alternative would be to change things to allow PGC_BACKEND and
PGC_SU_BACKEND settings to be changed by ALTER ROLE SET.  But that might
need further research (e.g., log_connections would probably not work).

based on patch by Kyotaro Horiguchi
parent 2a3f2743
......@@ -6292,8 +6292,9 @@ SET XML OPTION { DOCUMENT | CONTENT };
<listitem>
<para>
This variable specifies one or more shared libraries that are to be
preloaded at connection start. This parameter cannot be changed after
the start of a particular session. If a specified library is not
preloaded at connection start.
The parameter value only takes effect at the start of the connection.
Subsequent changes have no effect. If a specified library is not
found, the connection attempt will fail.
</para>
......@@ -6311,7 +6312,17 @@ SET XML OPTION { DOCUMENT | CONTENT };
</para>
<para>
Unless a module is specifically designed to be used in this way by
The intent of this feature is to allow unprivileged users to load
debugging or performance-measurement libraries into specific sessions
without requiring an explicit <command>LOAD</> command. To that end,
it would be typical to set this parameter using
the <envar>PGOPTIONS</envar> environment variable on the client or by
using
<command>ALTER ROLE SET</>.
</para>
<para>
However, unless a module is specifically designed to be used in this way by
non-superusers, this is usually not the right setting to use. Look
at <xref linkend="guc-session-preload-libraries"> instead.
</para>
......
......@@ -2920,7 +2920,7 @@ static struct config_string ConfigureNamesString[] =
},
{
{"local_preload_libraries", PGC_BACKEND, CLIENT_CONN_PRELOAD,
{"local_preload_libraries", PGC_USERSET, CLIENT_CONN_PRELOAD,
gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
NULL,
GUC_LIST_INPUT | GUC_LIST_QUOTE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment