public inbox for [email protected]  
help / color / mirror / Atom feed
From: Pavel Stehule <[email protected]>
To: getiancheng <[email protected]>
Cc: Chao Li <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: bugfix - fix broken output in expanded aligned format, when data are too short
Date: Sun, 7 Jun 2026 10:39:21 +0200
Message-ID: <CAFj8pRB4L8J-hpzK25hLBfdbZGsfaBgD=cBtatnaJewHYpxLYQ@mail.gmail.com> (raw)
In-Reply-To: <CAFj8pRBhAvcU1Lqbx+s2oYzy-Y9FCK8F3MGeedh54ouDo1nOKA@mail.gmail.com>
References: <CAFj8pRCzGpsr9zTHbtTd4mGh2YPJqOEgLgt8JLiopuYA9_1xGw@mail.gmail.com>
	<CAFj8pRAf1jYo8Nfz=sbfpMfaUBDsb77qGxdR+8JBxTH3_6MnBw@mail.gmail.com>
	<[email protected]>
	<CAFj8pRA_mSfE2bsvyHn-wyZMAQ1Oo35Hm5vXwhKHLF5dQ8pEAw@mail.gmail.com>
	<[email protected]>
	<[email protected]>
	<CAFj8pRB9S3kESHbux0smuXoDA9Z1cMTLYUmL3J3YN3O7mALyKA@mail.gmail.com>
	<CAFj8pRBhAvcU1Lqbx+s2oYzy-Y9FCK8F3MGeedh54ouDo1nOKA@mail.gmail.com>

Hi

only rebase

Regards

Pavel


Attachments:

  [text/x-patch] v20260607-0001-The-output-of-narrow-table-is-broken-in-expanded-mod.patch (2.9K, 3-v20260607-0001-The-output-of-narrow-table-is-broken-in-expanded-mod.patch)
  download | inline diff:
From 38b7d7d4eeed977e66b9f1ee7e8a3150f6bf6f3e 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



view thread (10+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected]
  Subject: Re: bugfix - fix broken output in expanded aligned format, when data are too short
  In-Reply-To: <CAFj8pRB4L8J-hpzK25hLBfdbZGsfaBgD=cBtatnaJewHYpxLYQ@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox