Re: very long record lines in expanded psql output - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: very long record lines in expanded psql output
Date
Msg-id 998a8549-f808-a349-bae6-9f44d07e050d@dunslane.net
Whole thread Raw
In response to Re: very long record lines in expanded psql output  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: very long record lines in expanded psql output  (Platon Pronko <platon7pronko@gmail.com>)
List pgsql-hackers
On 8/5/21 6:56 AM, Pavel Stehule wrote:
> Hi
>
> čt 5. 8. 2021 v 12:36 odesílatel Platon Pronko
> <platon7pronko@gmail.com <mailto:platon7pronko@gmail.com>> napsal:
>
>     In expanded mode psql calculates the width of the longest field in
>     all the output rows,
>     and prints the header line according to it. This often results in
>     record header wrapping
>     over several lines (see example below).
>
>     This huge record header is printed the same way before each
>     record, even if all the fields
>     in current record are small and fit into terminal width. This
>     often leads to situations
>     when record header occupies the entirety of the screen, for all
>     records, even though there are
>     only a few records with huge fields in a record set.
>
>     Maybe we can avoid making the header line longer than terminal
>     width for \pset border 0
>     and \pset border 1? We already have terminal width calculated.
>     Please see attached a patch
>     with the proposed implementation.
>
>     Example output before the modification, in a terminal with a
>     100-column width:
>
>     $ psql template1 -c "\x on" -c "\pset border 1;" -c "select n,
>     repeat('x', n) as long_column_name from unnest(array[42,210]) as n"
>     Expanded display is on.
>     Border style is 1.
>     ─[ RECORD 1
>     ]────┬──────────────────────────────────────────────────────────────────────────────────
>     ────────────────────────────────────────────────────────────────────────────────────────────────────
>     ─────────────────────────────
>     n                │ 42
>     long_column_name │ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>     ─[ RECORD 2
>     ]────┼──────────────────────────────────────────────────────────────────────────────────
>     ────────────────────────────────────────────────────────────────────────────────────────────────────
>     ─────────────────────────────
>     n                │ 210
>     long_column_name │
>     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>     xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
>     And here's the same command after the patch:
>
>     $ psql template1 -c "\x on" -c "\pset border 1;" -c "select n,
>     repeat('x', n) as long_column_name from unnest(array[42,210]) as n"
>     Expanded display is on.
>     Border style is 1.
>     ─[ RECORD 1
>     ]────┬──────────────────────────────────────────────────────────────────────────────────
>     n                │ 42
>     long_column_name │ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>     ─[ RECORD 2
>     ]────┼──────────────────────────────────────────────────────────────────────────────────
>     n                │ 210
>     long_column_name │
>     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>     xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
>
> the length of lines should be consistent.
>
> Your proposal breaks pspg
>
> https://github.com/okbob/pspg <https://github.com/okbob/pspg>
>
> It can be separate option, but it should not be default
>
>


I also find this annoying and would be happy to be rid of it.  I could
see setting an option like


\pset xheader_width column|page|nnn


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com




pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: Another regexp performance improvement: skip useless paren-captures
Next
From: Platon Pronko
Date:
Subject: Re: very long record lines in expanded psql output