Hi fresh rebase
Regards Pavel
From d99d82117f294329947240be4023943370220ca0 Mon Sep 17 00:00:00 2001 From: "[email protected]" <[email protected]> Date: Tue, 24 Mar 2026 06:42:18 +0100 Subject: [PATCH] The output of narrow table is broken in expanded mode (when header is wider than row) and when aligned mode is used. The wrapped mode is ok. This patch fixes this issue. --- src/fe_utils/print.c | 7 ++++--- src/test/regress/expected/psql.out | 26 ++++++++++++++++++++++++++ src/test/regress/sql/psql.sql | 11 +++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/fe_utils/print.c b/src/fe_utils/print.c index f2dd52003c1..a5e64cb18fb 100644 --- a/src/fe_utils/print.c +++ b/src/fe_utils/print.c @@ -1443,9 +1443,10 @@ print_aligned_vertical(const printTableContent *cont, } /* - * Calculate available width for data in wrapped mode + * Calculate available width for data in wrapped mode or minimal width + * in aligned mode */ - if (cont->opt->format == PRINT_WRAPPED) + if (cont->opt->format == PRINT_WRAPPED || cont->opt->format == PRINT_ALIGNED) { unsigned int swidth, rwidth = 0, @@ -1517,7 +1518,7 @@ print_aligned_vertical(const printTableContent *cont, if (width < rwidth) width = rwidth; - if (output_columns > 0) + if (cont->opt->format == PRINT_WRAPPED && output_columns > 0) { unsigned int min_width; diff --git a/src/test/regress/expected/psql.out b/src/test/regress/expected/psql.out index c8f3932edf0..dc44219631e 100644 --- a/src/test/regress/expected/psql.out +++ b/src/test/regress/expected/psql.out @@ -2854,6 +2854,32 @@ execute q; +------------------+-------------------+ deallocate q; +-- the output in expanded mode is shorter than header +\pset border 2 +\pset expanded on +create table psql_short_tab(a int, b int); +insert into psql_short_tab values(10,20),(30,40); +\pset format aligned +select * from psql_short_tab; ++-[ RECORD 1 ]-+ +| a | 10 | +| b | 20 | ++-[ RECORD 2 ]-+ +| a | 30 | +| b | 40 | ++---+----------+ + +\pset format wrapped +select * from psql_short_tab; ++-[ RECORD 1 ]-+ +| a | 10 | +| b | 20 | ++-[ RECORD 2 ]-+ +| a | 30 | +| b | 40 | ++---+----------+ + +drop table psql_short_tab; \pset linestyle ascii \pset border 1 -- support table for output-format tests (useful to create a footer) diff --git a/src/test/regress/sql/psql.sql b/src/test/regress/sql/psql.sql index dcdbd4fc020..b03a61f8656 100644 --- a/src/test/regress/sql/psql.sql +++ b/src/test/regress/sql/psql.sql @@ -499,6 +499,17 @@ execute q; deallocate q; +-- the output in expanded mode is shorter than header +\pset border 2 +\pset expanded on +create table psql_short_tab(a int, b int); +insert into psql_short_tab values(10,20),(30,40); +\pset format aligned +select * from psql_short_tab; +\pset format wrapped +select * from psql_short_tab; +drop table psql_short_tab; + \pset linestyle ascii \pset border 1 -- 2.54.0
