Re: very long record lines in expanded psql output
Platon Pronko <platon7pronko@gmail.com>
From: Platon Pronko <platon7pronko@gmail.com>
To: Pavel Stehule <pavel.stehule@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-08-05T13:30:48Z
Lists: pgsql-hackers
Hi! > a) with line cursor Tried in different configurations, seems that line cursor works fine. > b) format detection - I try to detect the header line - and I expect this > line has the most length of all lines. I use a line with the same length as > the column's type info (data, border). I looked at pspg source, and here's what I found (please correct me if some/all of my assumptions are wrong): 1. Input handling and format detection happens in table.c readfile(). 2. There's some variables in DataDesc - maxx and maxbytes - that store the longest line seen so far. But they are re-updated on each new row, so the fact that header is shorter shouldn't affect them. 3. Expanded header detection is handled by is_expanded_header function. It has ei_minx and ei_maxx return pointers, but when it is used from readfile() these pointers are set to NULL in both cases - so header length is simply ignored. > Did you test the wrapped format? It is working > > \pset format wrapped > \x > select * from pg_class; There's no difference in outputs in wrapped format, so pspg behavior is also unaffected. By the way, it seems that pspg recommends setting \pset border 2 anyway, so in vast majority of cases there should be no possibility of difference at all - proposed patch doesn't change output for \pset border 2 (because there's no sane way of making it look okay in presence of long fields anyway). Best regards, Platon Pronko
Commits
-
psql: Tweak xheader_width and pager_min_lines input parsing
- ed7e686a031e 16.0 landed
-
Add xheader_width pset option to psql
- a45388d6e098 16.0 landed