| From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
|---|---|
| To: | Platon Pronko <platon7pronko(at)gmail(dot)com> |
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: very long record lines in expanded psql output |
| Date: | 2021-08-05 10:56:17 |
| Message-ID: | CAFj8pRBJ8bcTga9qTYG_v25BfeCB=4+GNc1rbf94qex_3C_e-A@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi
čt 5. 8. 2021 v 12:36 odesílatel Platon Pronko <platon7pronko(at)gmail(dot)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
It can be separate option, but it should not be default
Pavel
Best regards,
> Platon Pronko
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Platon Pronko | 2021-08-05 11:14:18 | Re: very long record lines in expanded psql output |
| Previous Message | Platon Pronko | 2021-08-05 10:36:45 | very long record lines in expanded psql output |