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 }; ...@@ -6292,8 +6292,9 @@ SET XML OPTION { DOCUMENT | CONTENT };
<listitem> <listitem>
<para> <para>
This variable specifies one or more shared libraries that are to be This variable specifies one or more shared libraries that are to be
preloaded at connection start. This parameter cannot be changed after preloaded at connection start.
the start of a particular session. If a specified library is not 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. found, the connection attempt will fail.
</para> </para>
...@@ -6311,7 +6312,17 @@ SET XML OPTION { DOCUMENT | CONTENT }; ...@@ -6311,7 +6312,17 @@ SET XML OPTION { DOCUMENT | CONTENT };
</para> </para>
<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 non-superusers, this is usually not the right setting to use. Look
at <xref linkend="guc-session-preload-libraries"> instead. at <xref linkend="guc-session-preload-libraries"> instead.
</para> </para>
......
...@@ -2920,7 +2920,7 @@ static struct config_string ConfigureNamesString[] = ...@@ -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."), gettext_noop("Lists unprivileged shared libraries to preload into each backend."),
NULL, NULL,
GUC_LIST_INPUT | GUC_LIST_QUOTE 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