Fujii Masao <masao.fujii@gmail.com> writes:
> On Wed, Jul 2, 2014 at 11:15 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp> writes:
>>> postgres=# alter user horiguti2 set local_preload_libraries='libname';
>>> ERROR: parameter "local_preload_libraries" cannot be set after connection start
>> Hm ... it's kind of annoying that that doesn't work; it's certainly not
>> hard to imagine use-cases for per-user or per-database settings of
>> local_preload_libraries. However, I'm not sure if we apply per-user or
>> per-database settings early enough in backend startup that they could
>> affect library loading. If we do, then the ALTER code needs to be
>> taught to allow this.
> ISTM that's what session_preload_libraries does.
No, the reason for the distinction is that session_preload_libraries is
superuser-only, and can load anything, while local_preload_libraries is
(supposed to be) settable by ordinary users, and therefore is restricted
to load only a subset of available libraries. But if you can't apply it
via ALTER USER that seems like it takes away a lot of the value of having
a non-SUSET GUC in this area.
regards, tom lane