Re: BUG #5616: psql Doesn't Change Log files on \c
| От | hubert depesz lubaczewski |
|---|---|
| Тема | Re: BUG #5616: psql Doesn't Change Log files on \c |
| Дата | |
| Msg-id | 20100813083806.GA9068@depesz.com обсуждение исходный текст |
| Ответ на | Re: BUG #5616: psql Doesn't Change Log files on \c (Tom Lane <tgl@sss.pgh.pa.us>) |
| Ответы |
Re: BUG #5616: psql Doesn't Change Log files on \c
|
| Список | pgsql-bugs |
On Thu, Aug 12, 2010 at 06:33:13PM -0400, Tom Lane wrote: > "David E. Wheeler" <david@kineticode.com> writes: > > I have this in my .psqlrc: > > \set HISTFILE ~/.psql_history- :DBNAME > > This is great, except when I change databases in a session: > > > % psql foo > > foo % \c bar > > You are now connected to database "bar". > > SELECT true; > > > The last statement will be logged to ~/.psql_history-foo when it should go > > to ~/.psql_history-bar. > > I don't think this is a bug. The history file is read at psql startup > and written out (to the same file name) at exit. Those operations are > quite expensive, so it would be insane to do them after every backslash > command on the off chance that somebody was expecting to have changed > the effective name of the history file. (Aside from the cost, this > would greatly increase the race condition hazards from concurrent psql > sessions trying to write the file at the same time.) I think it would be enough to track previous and current database name, and re-do the history code on change. depesz -- Linkedin: http://www.linkedin.com/in/depesz / blog: http://www.depesz.com/ jid/gtalk: depesz@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007
В списке pgsql-bugs по дате отправления: