Don't downcase entries within shared_preload_libraries et al.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 20 Jun 2017 17:02:42 +0000 (13:02 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 20 Jun 2017 17:03:29 +0000 (13:03 -0400)
commita69dfe5f40f77d586e8d4d9ecfc39d81612c7dda
treeb1d5320ca500fd4c6ee730b6c7455f8c534970f2
parenta2141c42f9ebc51b4501a4fafea9dd3fb7eda23d
Don't downcase entries within shared_preload_libraries et al.

load_libraries(), which processes the various xxx_preload_libraries GUCs,
was parsing them using SplitIdentifierString() which isn't really
appropriate for values that could be path names: it downcases unquoted
text, and it doesn't allow embedded whitespace unless quoted.
Use SplitDirectoriesString() instead.  That also allows us to simplify
load_libraries() a bit, since canonicalize_path() is now done for it.

While this definitely seems like a bug fix, it has the potential to
break configuration settings that accidentally worked before because
of the downcasing behavior.  Also, there's an easy workaround for the
bug, namely to double-quote troublesome text.  Hence, no back-patch.

QL Zhuo, tweaked a bit by me

Discussion: https://postgr.es/m/CAB-oJtxHVDc3H+Km3CjB9mY1VDzuyaVH_ZYSz7iXcRqCtb93Ew@mail.gmail.com
src/backend/utils/adt/varlena.c
src/backend/utils/init/miscinit.c