| From: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> |
|---|---|
| To: | PostgreSQL-development <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, ewie(at)ewie(dot)name |
| Subject: | Fix psql pager selection for wrapped expanded output |
| Date: | 2026-06-12 10:01:17 |
| Message-ID: | A44110E7-6A03-4C67-95AD-527192A6C768@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
While testing “[27da1a796] Improve psql's ability to select pager mode accurately”, I found that the pager doesn’t work for expanded wrapped mode. However, I realized that this is not a new problem introduced by 27da1a796, it didn’t work before 27da1a796 either. Instead, with 27da1a796, we are almost there to make it work.
27da1a796 introduces a new helper count_table_lines(), that takes a per-column-width array. For expanded mode (vertical mode), all columns use the same data width. So we can simply build such a width_wrap array, and move IsPagerNeeded() to after dwidth is computed. Then the pager works in expanded wrapped mode.
I tested with this procedure (making the terminal small with ~30 rows):
```
\pset pager on
\pset columns 25
\pset expanded on
\pset format wrapped
select g AS id, 'name_' || g AS name, repeat('x', g * 5) AS payload from generate_series(1, 10) AS g;
```
See the attached patch for details. I’m not going to add this to the v19 open items, as it’s not a v19-new bug.
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/
| Attachment | Content-Type | Size |
|---|---|---|
| v1-0001-Fix-psql-pager-selection-for-wrapped-expanded-out.patch | application/octet-stream | 4.1 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Matthias van de Meent | 2026-06-12 10:03:55 | Re: Commit Sequence Numbers and Visibility |
| Previous Message | Álvaro Herrera | 2026-06-12 10:00:52 | Re: Why our Valgrind reports suck |