Change local_preload_libraries to PGC_USERSET
authorPeter Eisentraut
Tue, 23 Dec 2014 04:05:46 +0000 (23:05 -0500)
committerPeter Eisentraut
Tue, 23 Dec 2014 04:05:46 +0000 (23:05 -0500)
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

doc/src/sgml/config.sgml
src/backend/utils/misc/guc.c

index 48ae3e41f9c05f081115f134346efdca2b0c3a7e..6bcb106518e4eefe33c9b69129d737f93a1646be 100644 (file)
@@ -6292,8 +6292,9 @@ SET XML OPTION { DOCUMENT | CONTENT };
       
        
         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.
        
 
@@ -6311,7 +6312,17 @@ SET XML OPTION { DOCUMENT | CONTENT };
        
 
        
-        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 LOAD command.  To that end,
+        it would be typical to set this parameter using
+        the PGOPTIONS environment variable on the client or by
+        using
+        ALTER ROLE SET.
+       
+
+       
+        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  instead.
        
index b1bff7f35008c4eb8f5957bc0ef4b896a7ab37a6..77c34949d692184ae1e112fede814b37e25d23b6 100644 (file)
@@ -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