pgsql: Fix psql's pager selection for wrapped expanded output.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix psql's pager selection for wrapped expanded output.
Date: 2026-07-05 22:11:54
Message-ID: E1wgV46-001V2Z-1E@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix psql's pager selection for wrapped expanded output.

psql decided whether to use the pager in expanded output without
accounting for possible wrapping of column values. This could
allow it to not use the pager in cases where it should do so.

To fix, move the IsPagerNeeded decision in print_aligned_vertical()
down until after the wrapped data width is known. Then, if we're in
wrapped mode, prepare a width_wrap array specifying that width (which,
in vertical mode, is the same for all columns).

This is fixing an omission in 27da1a796, so back-patch to v19
where that came in.

Author: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
Reviewed-by: Erik Wienhold <ewie(at)ewie(dot)name>
Reviewed-by: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Discussion: https://postgr.es/m/A44110E7-6A03-4C67-95AD-527192A6C768@gmail.com
Backpatch-through: 19

Branch
------
REL_19_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/56e892a49439ad361d8610bd859f4c7a29ec336e

Modified Files
--------------
src/bin/psql/t/030_pager.pl | 5 +++++
src/fe_utils/print.c | 53 ++++++++++++++++++++++++++++++---------------
2 files changed, 40 insertions(+), 18 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2026-07-06 00:32:46 pgsql: amcheck: Fix memory leak with gin_index_check()
Previous Message Tom Lane 2026-07-05 20:22:48 pgsql: Simplify dxsyn_lexize().