Re: controlling psql's use of the pager a bit more - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: controlling psql's use of the pager a bit more
Date
Msg-id 5467DA28.7020606@dunslane.net
Whole thread Raw
In response to Re: controlling psql's use of the pager a bit more  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: controlling psql's use of the pager a bit more  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Re: controlling psql's use of the pager a bit more  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-hackers
On 11/13/2014 11:41 AM, Andrew Dunstan wrote:
>
> On 11/13/2014 11:09 AM, Tom Lane wrote:
>> Andrew Dunstan <andrew@dunslane.net> writes:
>>> I often get annoyed because psql is a bit too aggressive when it
>>> decides
>>> whether to put output through the pager, and the only way to avoid this
>>> is to turn the pager off (in which case your next query might dump many
>>> thousands of lines to the screen). I'd like a way to be able to specify
>>> a minumum number of lines of output before psql would invoke the pager,
>>> rather than just always using the terminal window size.
>> Are you saying you'd want to set the threshold to *more* than the window
>> height?  Why?
>
>
> Because I might be quite happy with 100 or 200 lines I can just scroll
> in my terminal's scroll buffer, but want to use the pager for more
> than that. This is useful especially if I want to scroll back and see
> the results from a query or two ago.
>
>
>
>


This patch shows more or less what I had in mind.

However, there is more work to do. As Tom noted upthread, psql's
calculation of the number of lines is pretty bad. For example, if I do:

    \pset pager_min_lines 100
    select * from generate_series(1,50);

the pager still gets invoked, which is unfortunate to say the least.

So I'm going to take a peek at that.

cheers

andrew


Attachment

pgsql-hackers by date:

Previous
From: David Rowley
Date:
Subject: PgBench's \setrandom could be better
Next
From: David Rowley
Date:
Subject: Re: Patch to support SEMI and ANTI join removal