We just found out that the problem was that our own ~/.psqlrc contained the SET statement, overriding the global setting.
From: kong_mansatiansin@hotmail.com To: tgl@sss.pgh.pa.us CC: pgsql-general@postgresql.org Subject: RE: [GENERAL] search_path not reloaded via unix socket connections Date: Fri, 18 Sep 2015 08:19:30 -0700
Tom,
I have made sure that the per-user and per-database settings are reset. The old search_path setting still persists whenever I reconnect via local connections no matter what user I log in as.
> From: tgl@sss.pgh.pa.us > To: kong_mansatiansin@hotmail.com > CC: pgsql-general@postgresql.org > Subject: Re: [GENERAL] search_path not reloaded via unix socket connections > Date: Thu, 17 Sep 2015 22:29:04 -0400 > > Kong Man <kong_mansatiansin@hotmail.com> writes: > > Can anybody explain why the search_path setting, with several config reloads, would not change via local connections? We struggled with our production settings on Postgres 9.3 today, only to realize, after a while, that the search_path change actually took effect via TCP/IP, but not unix socket, connections ever since the first reload. > > That's, um, pretty hard to believe. Less magical interpretations would > involve something like a per-user or per-database setting overriding > what's in the config file in some sessions but not others. But I really > really doubt that TCP vs unix socket is the determining factor. > > regards, tom lane