Re: [HACKERS] double counting of lines in psql

2014-11-18 Thread Andrew Dunstan


On 11/18/2014 10:43 AM, David Fetter wrote:

On Mon, Nov 17, 2014 at 11:13:15AM -0500, Andrew Dunstan wrote:

This tiny change fixes what I think is a longstanding bug in psql. I causes
the first line of every cell to be counted twice, whereas it should in fact
be excluded from extra_lines / extra_row_output_lines. The bug appears to
date back to commit 43ee2282 in 2008. Changing it appears to make my
proposed pager_min_lines feature work as expected.

So, should it be backpatched? It's a behaviour change, albeit that the
existing behaviour is a bug, and will cause the pager to be invoked on
output that is way too short (by about half a screen's height, I think).

+1

It's a bug fix that changes behavior no reasonable script could count on.



Actually, I think I'm coming down on the side of not changing it in the 
back branches. As Andres noted elsewhere, you can overcome most of the 
bad effects of this by using the less pager with the -F option.


cheers

andrew



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] double counting of lines in psql

2014-11-18 Thread David Fetter
On Mon, Nov 17, 2014 at 11:13:15AM -0500, Andrew Dunstan wrote:
> 
> This tiny change fixes what I think is a longstanding bug in psql. I causes
> the first line of every cell to be counted twice, whereas it should in fact
> be excluded from extra_lines / extra_row_output_lines. The bug appears to
> date back to commit 43ee2282 in 2008. Changing it appears to make my
> proposed pager_min_lines feature work as expected.
> 
> So, should it be backpatched? It's a behaviour change, albeit that the
> existing behaviour is a bug, and will cause the pager to be invoked on
> output that is way too short (by about half a screen's height, I think).

+1 

It's a bug fix that changes behavior no reasonable script could count on.

Cheers,
David.
-- 
David Fetter  http://fetter.org/
Phone: +1 415 235 3778  AIM: dfetter666  Yahoo!: dfetter
Skype: davidfetter  XMPP: david.fet...@gmail.com

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] double counting of lines in psql

2014-11-17 Thread Andrew Dunstan


This tiny change fixes what I think is a longstanding bug in psql. I 
causes the first line of every cell to be counted twice, whereas it 
should in fact be excluded from extra_lines / extra_row_output_lines. 
The bug appears to date back to commit 43ee2282 in 2008. Changing it 
appears to make my proposed pager_min_lines feature work as expected.


So, should it be backpatched? It's a behaviour change, albeit that the 
existing behaviour is a bug, and will cause the pager to be invoked on 
output that is way too short (by about half a screen's height, I think).


cheers

andrew



diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
index 2e158b8..c93f744 100644
--- a/src/bin/psql/print.c
+++ b/src/bin/psql/print.c
@@ -837,7 +837,7 @@ print_aligned_text(const printTableContent *cont, 
FILE *fout)

{
unsigned int extra_lines;

-   extra_lines = (width - 1) / width_wrap[i] + nl_lines;
+   extra_lines = ((width - 1) / width_wrap[i]) + (nl_lines 
- 1);

if (extra_lines > extra_row_output_lines)
extra_row_output_lines = extra_lines;
}




--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers