Re: Not so happy with psql's new multiline behavior - Mailing list pgsql-hackers
From | Sergey E. Koposov |
---|---|
Subject | Re: Not so happy with psql's new multiline behavior |
Date | |
Msg-id | Pine.LNX.4.44.0603050527180.16830-100000@lnfm1.sai.msu.ru Whole thread Raw |
In response to | Not so happy with psql's new multiline behavior (Tom Lane <tgl@sss.pgh.pa.us>) |
List | pgsql-hackers |
On Sat, 4 Mar 2006, Tom Lane wrote: > Has anyone else been finding the recent behavior of CVS-tip psql > to be a disimprovement? I've gotten sufficiently annoyed with it > that I'm ready to propose reverting this patch: > > 2006-02-11 16:55 momjian > > * src/bin/psql/: help.c, input.c, input.h, mainloop.c, prompt.c, > tab-complete.c: o Improve psql's handling of multi-line statements > > Currently, while \e saves a single statement as one entry, > interactive > statements are saved one line at a time. Ideally all > statements > would be saved like \e does. > > Sergey E. Koposov > > > Maybe it's just that I'm too used to the old behavior, but I don't like > anything about the way it works now. As an example, the new behavior is > extremely unfriendly to backslash commands. I just got done typing a > long command and then deciding that I would like to have \timing on, so > I hit return (which in prior versions would have entered the line into > the history buffer), typed \timing, hit return again, hit control-P, and > found that I'd lost my long command. I don't understand really this point. For example (in 8.1.3): wsdb=# select 'your long query here ' || wsdb-# \timing Timing is on. wsdb-# 'plus something additional (also long)'; ?column? ------------------------------------------------------------your long query here plus something additional (also long) (1 row) Time: 3,644 ms (all the time in that example I hit only return button) Example in 8.2devel: wsdb=# select 'your long query here ' || wsdb-# \timing Timing is on. wsdb-# 'something additional (also long)'; ?column? -------------------------------------------------------your long query here something additional (also long) (1 row) Time: 0,760 ms (again I hit only return button) Yes, in the second example \timing WILL go to the history. And I think that IS ok(even for example in 8.1.3 case the backslash commands are also NOT stripped away from the SQL commands) Like this: wsdb=# select 'your long query here ' \timing Timing is on. wsdb-# 'plus something additional (also long)'; ?column? ------------------------------------------------------------your long query here plus something additional (also long) (1 row) Time: 0,287 ms The history will contain "select 'your long query here ' \timing" So, do you think, that stripping away the \backslash commands from multiline history entry is logical and is needed often? I certainly don't. --------- Second issue: In your example you probably forgot to say about pressing Ctrl+C. In that case in 8.1.3 wsdb=# select 'your long query here ' wsdb-# \timing Timing is on. wsdb-# (after pressing Ctrl+C in last line, the "select ..." will be in the history), and in 8.2devel it will NOT. I fixed that issue. I've send the patch to -patches. So, except that, I do not really see any problems with multiline queries. Yes, I agree that for longterm PG hackers, the behaviour can seem a bit unusual, but it is better ... (my opinion). Regards,Sergey ***************************************************** Sergey E. Koposov Max Planck Institute for Astronomy Web: http://lnfm1.sai.msu.ru/~math E-mail: math@sai.msu.ru
pgsql-hackers by date: