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: [EMAIL PROTECTED]



---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to