Re: [HACKERS] psql: Activate pager only for height, not width

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема Re: [HACKERS] psql: Activate pager only for height, not width
Дата
Msg-id CAMkU=1wBpDrHdjSvABtFRB1TguC+LBJJwpV79kxyMOkeUi2B3Q@mail.gmail.com
обсуждение исходный текст
Ответ на [HACKERS] psql: Activate pager only for height, not width  (Brendan Jurd <direvus@gmail.com>)
Ответы Re: [HACKERS] psql: Activate pager only for height, not width  (Christoph Berg <myon@debian.org>)
Список pgsql-hackers
On Sun, May 28, 2017 at 10:09 PM, Brendan Jurd <direvus@gmail.com> wrote:
Hello hackers,

I am often frustrated by the default behaviour of the psql pager, which will activate a pager if the output is deemed to be "too wide" for the terminal, regardless of the number of lines output, and of the pager_min_lines setting.

This behaviour is sometimes desirable, but in my use patterns it is more often the case that I want the pager to activate for output longer than terminal height, whereas for output a little wider than the terminal, I am happy for there to be some wrapping.  This is especially the case with "\d" output for tables, where, at 80 columns, very often the only wrapping is in the table borders and constraint/trigger definitions.

Usually I turn the pager off completely, and only switch it on when I am about to execute something that will return many rows, but what I'd really like is some way to tell psql to activate the pager as normal for height, but to ignore width.  My first thought was an alternate mode to \pset pager -- to {'on' | 'off' | 'always'} we could add 'height'.

Another option is to add the ability to specify the number of columns which psql considers "too wide", analogous to pager_min_lines.  I could then set pager_min_cols to something around 150 which would work nicely for my situation.

I don't have strong opinions about how the options are constructed, as long as it is possible to obtain the behaviour.

I would be happy to produce a patch, if this seems like an acceptable feature add.

I'd like a feature like this.  I often run into the problem where one or two lines of an EXPLAIN plan are wide enough to wrap, which causes the pager to kick in.  Then when I exit the pager, it clears the contents so I can't see that plan vertically adjacent to the one I'm trying to compare it to.  I'd rather have the pager kick in if greater than some settable number of the lines are too wide, or if the wrapped lines would push the height above the height limit.  If just one line is too wide, I'd rather just deal with them being wrapped.

(You can configure the pager not to redraw the screen when exited, but I want it to redraw the screen after looking at 10,000 rows, just not after looking ten rows, one of which was 170 characters wide)
 
Cheers,

Jeff

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Claudio Freire
Дата:
Сообщение: Re: [HACKERS] Use of non-restart-safe storage by temp_tablespaces
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: [HACKERS] Use of non-restart-safe storage by temp_tablespaces