From: Greg Stark <stark@mit.edu>
Date: Mon, 18 Aug 2014 10:28:57 +0000 (+0100)
Subject: Revert psql changes to support wrapped expanded mode. That feature is
X-Git-Tag: REL9_4_BETA3~97
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7e81c4b2901d8a692cc4e8c839a5a6490fc345e4;p=postgresql

Revert psql changes to support wrapped expanded mode. That feature is
nice and we'll keep it in 9.5 but it'll take more time to iron out the
collateral damage on other queries and also on tools like
check_postgres.

revert dbe31616c9be7380b8a88cdfbeaa68dbdcdebc36
revert 6513633b94173fc1d9e2b213c43f9422ddbf5faa
---

diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
index 62850d8de5..df7c7bacc8 100644
--- a/src/bin/psql/print.c
+++ b/src/bin/psql/print.c
@@ -1161,7 +1161,6 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
 	struct lineptr *hlineptr,
 			   *dlineptr;
 	bool		is_pager = false;
-	int			output_columns = 0;		/* Width of interactive console */
 
 	if (cancel_pressed)
 		return;
@@ -1235,90 +1234,24 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
 			fprintf(fout, "%s\n", cont->title);
 	}
 
-	/*
-	 * Choose target output width: \pset columns, or $COLUMNS, or ioctl
-	 */
-	if (cont->opt->columns > 0)
-		output_columns = cont->opt->columns;
-	else if ((fout == stdout && isatty(fileno(stdout))) || is_pager)
-	{
-		if (cont->opt->env_columns > 0)
-			output_columns = cont->opt->env_columns;
-#ifdef TIOCGWINSZ
-		else
-		{
-			struct winsize screen_size;
-
-			if (ioctl(fileno(stdout), TIOCGWINSZ, &screen_size) != -1)
-				output_columns = screen_size.ws_col;
-		}
-#endif
-	}
-
-	if (cont->opt->format == PRINT_WRAPPED)
-	{
-		/*
-		 * Calculate the available width to wrap the columns to after
-		 * subtracting the maximum header width and separators. At a minimum
-		 * enough to print "[ RECORD N ]"
-		 */
-		unsigned int width,
-					swidth;
-
-		if (opt_border == 0)
-			swidth = 1;			/* "header data" */
-		else if (opt_border == 1)
-			swidth = 3;			/* "header | data" */
-		else
-			swidth = 7;			/* "| header | data |" */
-
-		/* Wrap to maximum width */
-		width = dwidth + swidth + hwidth;
-		if ((output_columns > 0) && (width > output_columns))
-		{
-			dwidth = output_columns - hwidth - swidth;
-			width = output_columns;
-		}
-
-		/* Wrap to minimum width */
-		if (!opt_tuples_only)
-		{
-			int			delta = 1 + log10(cont->nrows) - width;
-
-			if (opt_border == 0)
-				delta += 6;		/* "* RECORD " */
-			else if (opt_border == 1)
-				delta += 10;	/* "-[ RECORD  ]" */
-			else
-				delta += 15;	/* "+-[ RECORD  ]-+" */
-
-			if (delta > 0)
-				dwidth += delta;
-		}
-		else if (dwidth < 3)
-			dwidth = 3;
-	}
-
 	/* print records */
 	for (i = 0, ptr = cont->cells; *ptr; i++, ptr++)
 	{
 		printTextRule pos;
-		int			dline,
-					hline,
+		int			line_count,
 					dcomplete,
-					hcomplete,
-					offset,
-					chars_to_output;
+					hcomplete;
 
 		if (cancel_pressed)
 			break;
 
 		if (i == 0)
 			pos = PRINT_RULE_TOP;
+		else if (!(*(ptr + 1)))
+			pos = PRINT_RULE_BOTTOM;
 		else
 			pos = PRINT_RULE_MIDDLE;
 
-		/* Print record header (e.g. "[ RECORD N ]") above each record */
 		if (i % cont->ncolumns == 0)
 		{
 			if (!opt_tuples_only)
@@ -1337,126 +1270,48 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
 		pg_wcsformat((const unsigned char *) *ptr, strlen(*ptr), encoding,
 					 dlineptr, dheight);
 
-		/*
-		 * Loop through header and data in parallel dealing with newlines and
-		 * wrapped lines until they're both exhausted
-		 */
-		dline = hline = 0;
+		line_count = 0;
 		dcomplete = hcomplete = 0;
-		offset = 0;
-		chars_to_output = dlineptr[dline].width;
 		while (!dcomplete || !hcomplete)
 		{
-			/* Left border */
 			if (opt_border == 2)
-				fprintf(fout, "%s", dformat->leftvrule);
-
-			/* Header (never wrapped so just need to deal with newlines) */
+				fprintf(fout, "%s ", dformat->leftvrule);
 			if (!hcomplete)
 			{
-				int			swidth,
-							twidth = hwidth + 1;
-
-				fputs(hline ? format->header_nl_left : " ", fout);
-				strlen_max_width(hlineptr[hline].ptr, &twidth,
-								 encoding);
-				fprintf(fout, "%-s", hlineptr[hline].ptr);
-
-				swidth = hwidth - twidth;
-				if (swidth > 0) /* spacer */
-					fprintf(fout, "%*s", swidth, " ");
+				fprintf(fout, "%-s%*s", hlineptr[line_count].ptr,
+						hwidth - hlineptr[line_count].width, "");
 
-				if (hlineptr[hline + 1].ptr)
-				{
-					/* More lines after this one due to a newline */
-					fputs(format->header_nl_right, fout);
-					hline++;
-				}
-				else
-				{
-					/* This was the last line of the header */
-					fputs(" ", fout);
+				if (!hlineptr[line_count + 1].ptr)
 					hcomplete = 1;
-				}
 			}
 			else
-			{
-				/* Header exhausted but more data for column */
-				fprintf(fout, "%*s", hwidth + 2, "");
-			}
+				fprintf(fout, "%*s", hwidth, "");
 
-			/* Separator */
 			if (opt_border > 0)
-			{
-				if (offset)
-					fputs(format->midvrule_wrap, fout);
-				else if (!dline)
-					fputs(dformat->midvrule, fout);
-				else if (dline)
-					fputs(format->midvrule_nl, fout);
-				else
-					fputs(format->midvrule_blank, fout);
-			}
+				fprintf(fout, " %s ", dformat->midvrule);
+			else
+				fputc(' ', fout);
 
-			/* Data */
 			if (!dcomplete)
 			{
-				int			target_width,
-							bytes_to_output,
-							swidth;
-
-				fputs(!dcomplete && !offset ? " " : format->wrap_left, fout);
-
-				target_width = dwidth;
-				bytes_to_output = strlen_max_width(dlineptr[dline].ptr + offset,
-												   &target_width, encoding);
-				fputnbytes(fout, (char *) (dlineptr[dline].ptr + offset),
-						   bytes_to_output);
-
-				chars_to_output -= target_width;
-				offset += bytes_to_output;
-
-				/* spacer */
-				swidth = dwidth - target_width;
-				if (swidth > 0)
-					fprintf(fout, "%*s", swidth, "");
-
-				if (chars_to_output)
-				{
-					/* continuing a wrapped column */
-					fputs(format->wrap_right, fout);
-				}
-				else if (dlineptr[dline + 1].ptr)
-				{
-					/* reached a newline in the column */
-					fputs(format->nl_right, fout);
-					dline++;
-					offset = 0;
-					chars_to_output = dlineptr[dline].width;
-				}
+				if (opt_border < 2)
+					fprintf(fout, "%s\n", dlineptr[line_count].ptr);
 				else
-				{
-					/* reached the end of the cell */
-					fputs(" ", fout);
-					dcomplete = 1;
-				}
-
-				if (opt_border == 2)
-					fputs(dformat->rightvrule, fout);
+					fprintf(fout, "%-s%*s %s\n", dlineptr[line_count].ptr,
+							dwidth - dlineptr[line_count].width, "",
+							dformat->rightvrule);
 
-				fputs("\n", fout);
+				if (!dlineptr[line_count + 1].ptr)
+					dcomplete = 1;
 			}
 			else
 			{
-				/*
-				 * data exhausted (this can occur if header is longer than the
-				 * data due to newlines in the header)
-				 */
 				if (opt_border < 2)
-					fputs("\n", fout);
+					fputc('\n', fout);
 				else
-					fprintf(fout, "%*s  %s\n", dwidth, "", dformat->rightvrule);
+					fprintf(fout, "%*s %s\n", dwidth, "", dformat->rightvrule);
 			}
+			line_count++;
 		}
 	}
 
diff --git a/src/test/regress/expected/psql.out b/src/test/regress/expected/psql.out
index c7dbd54307..2bbee7df00 100644
--- a/src/test/regress/expected/psql.out
+++ b/src/test/regress/expected/psql.out
@@ -68,947 +68,3 @@ Record separator (recordsep) is <newline>.
 Table attributes (tableattr) unset.
 Title (title) unset.
 Tuples only (tuples_only) is off.
--- test multi-line headers, wrapping, and newline indicators
-prepare q as select array_to_string(array_agg(repeat('x',2*n)),E'\n') as "a
-
-b", array_to_string(array_agg(repeat('y',20-2*n)),E'\n') as "a
-b" from generate_series(1,10) as n(n) group by n>1 ;
-\pset linestyle ascii
-\pset expanded off
-\pset columns 40
-\pset border 0
-\pset format unaligned
-execute q;
-a
-
-b|a
-b
-xx|yyyyyyyyyyyyyyyyyy
-xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-(2 rows)
-\pset format aligned
-execute q;
-         a          +        a         +
-                    +        b          
-         b                              
--------------------- ------------------
-xx                   yyyyyyyyyyyyyyyyyy
-xxxx                +yyyyyyyyyyyyyyyy  +
-xxxxxx              +yyyyyyyyyyyyyy    +
-xxxxxxxx            +yyyyyyyyyyyy      +
-xxxxxxxxxx          +yyyyyyyyyy        +
-xxxxxxxxxxxx        +yyyyyyyy          +
-xxxxxxxxxxxxxx      +yyyyyy            +
-xxxxxxxxxxxxxxxx    +yyyy              +
-xxxxxxxxxxxxxxxxxx  +yy                +
-xxxxxxxxxxxxxxxxxxxx 
-(2 rows)
-
-\pset format wrapped
-execute q;
-         a          +        a         +
-                    +        b          
-         b                              
--------------------- ------------------
-xx                   yyyyyyyyyyyyyyyyyy
-xxxx                +yyyyyyyyyyyyyyyy  +
-xxxxxx              +yyyyyyyyyyyyyy    +
-xxxxxxxx            +yyyyyyyyyyyy      +
-xxxxxxxxxx          +yyyyyyyyyy        +
-xxxxxxxxxxxx        +yyyyyyyy          +
-xxxxxxxxxxxxxx      +yyyyyy            +
-xxxxxxxxxxxxxxxx    +yyyy              +
-xxxxxxxxxxxxxxxxxx  +yy                +
-xxxxxxxxxxxxxxxxxxxx 
-(2 rows)
-
-\pset border 1
-\pset format unaligned
-execute q;
-a
-
-b|a
-b
-xx|yyyyyyyyyyyyyyyyyy
-xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-(2 rows)
-\pset format aligned
-execute q;
-          a          +|         a         +
-                     +|         b          
-          b           |                    
-----------------------+--------------------
- xx                   | yyyyyyyyyyyyyyyyyy
- xxxx                +| yyyyyyyyyyyyyyyy  +
- xxxxxx              +| yyyyyyyyyyyyyy    +
- xxxxxxxx            +| yyyyyyyyyyyy      +
- xxxxxxxxxx          +| yyyyyyyyyy        +
- xxxxxxxxxxxx        +| yyyyyyyy          +
- xxxxxxxxxxxxxx      +| yyyyyy            +
- xxxxxxxxxxxxxxxx    +| yyyy              +
- xxxxxxxxxxxxxxxxxx  +| yy                +
- xxxxxxxxxxxxxxxxxxxx | 
-(2 rows)
-
-\pset format wrapped
-execute q;
-         a        +|         a         +
-                  +|         b          
-         b         |                    
--------------------+--------------------
- xx                | yyyyyyyyyyyyyyyyyy
- xxxx             +| yyyyyyyyyyyyyyyy  +
- xxxxxx           +| yyyyyyyyyyyyyy    +
- xxxxxxxx         +| yyyyyyyyyyyy      +
- xxxxxxxxxx       +| yyyyyyyyyy        +
- xxxxxxxxxxxx     +| yyyyyyyy          +
- xxxxxxxxxxxxxx   +| yyyyyy            +
- xxxxxxxxxxxxxxxx +| yyyy              +
- xxxxxxxxxxxxxxxxx.| yy                +
-.x                +| 
- xxxxxxxxxxxxxxxxx.| 
-.xxx               | 
-(2 rows)
-
-\pset border 2
-\pset format unaligned
-execute q;
-a
-
-b|a
-b
-xx|yyyyyyyyyyyyyyyyyy
-xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-(2 rows)
-\pset format aligned
-execute q;
-+----------------------+--------------------+
-|          a          +|         a         +|
-|                     +|         b          |
-|          b           |                    |
-+----------------------+--------------------+
-| xx                   | yyyyyyyyyyyyyyyyyy |
-| xxxx                +| yyyyyyyyyyyyyyyy  +|
-| xxxxxx              +| yyyyyyyyyyyyyy    +|
-| xxxxxxxx            +| yyyyyyyyyyyy      +|
-| xxxxxxxxxx          +| yyyyyyyyyy        +|
-| xxxxxxxxxxxx        +| yyyyyyyy          +|
-| xxxxxxxxxxxxxx      +| yyyyyy            +|
-| xxxxxxxxxxxxxxxx    +| yyyy              +|
-| xxxxxxxxxxxxxxxxxx  +| yy                +|
-| xxxxxxxxxxxxxxxxxxxx |                    |
-+----------------------+--------------------+
-(2 rows)
-
-\pset format wrapped
-execute q;
-+-----------------+--------------------+
-|        a       +|         a         +|
-|                +|         b          |
-|        b        |                    |
-+-----------------+--------------------+
-| xx              | yyyyyyyyyyyyyyyyyy |
-| xxxx           +| yyyyyyyyyyyyyyyy  +|
-| xxxxxx         +| yyyyyyyyyyyyyy    +|
-| xxxxxxxx       +| yyyyyyyyyyyy      +|
-| xxxxxxxxxx     +| yyyyyyyyyy        +|
-| xxxxxxxxxxxx   +| yyyyyyyy          +|
-| xxxxxxxxxxxxxx +| yyyyyy            +|
-| xxxxxxxxxxxxxxx.| yyyy              +|
-|.x              +| yy                +|
-| xxxxxxxxxxxxxxx.|                    |
-|.xxx            +|                    |
-| xxxxxxxxxxxxxxx.|                    |
-|.xxxxx           |                    |
-+-----------------+--------------------+
-(2 rows)
-
-\pset expanded on
-\pset columns 20
-\pset border 0
-\pset format unaligned
-execute q;
-a
-
-b|xx
-a
-b|yyyyyyyyyyyyyyyyyy
-
-a
-
-b|xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx
-a
-b|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-\pset format aligned
-execute q;
-* Record 1           
- a+ xx                   
-  +
- b 
- a+ yyyyyyyyyyyyyyyyyy   
- b 
-* Record 2           
- a+ xxxx                +
-  + xxxxxx              +
- b  xxxxxxxx            +
-    xxxxxxxxxx          +
-    xxxxxxxxxxxx        +
-    xxxxxxxxxxxxxx      +
-    xxxxxxxxxxxxxxxx    +
-    xxxxxxxxxxxxxxxxxx  +
-    xxxxxxxxxxxxxxxxxxxx 
- a+ yyyyyyyyyyyyyyyy    +
- b  yyyyyyyyyyyyyy      +
-    yyyyyyyyyyyy        +
-    yyyyyyyyyy          +
-    yyyyyyyy            +
-    yyyyyy              +
-    yyyy                +
-    yy                  +
-                         
-
-\pset format wrapped
-execute q;
-* Record 1         
- a+ xx                 
-  +
- b 
- a+ yyyyyyyyyyyyyyyyyy 
- b 
-* Record 2         
- a+ xxxx              +
-  + xxxxxx            +
- b  xxxxxxxx          +
-    xxxxxxxxxx        +
-    xxxxxxxxxxxx      +
-    xxxxxxxxxxxxxx    +
-    xxxxxxxxxxxxxxxx  +
-    xxxxxxxxxxxxxxxxxx+
-    xxxxxxxxxxxxxxxxxx.
-   .xx                 
- a+ yyyyyyyyyyyyyyyy  +
- b  yyyyyyyyyyyyyy    +
-    yyyyyyyyyyyy      +
-    yyyyyyyyyy        +
-    yyyyyyyy          +
-    yyyyyy            +
-    yyyy              +
-    yy                +
-                       
-
-\pset border 1
-\pset format unaligned
-execute q;
-a
-
-b|xx
-a
-b|yyyyyyyyyyyyyyyyyy
-
-a
-
-b|xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx
-a
-b|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-\pset format aligned
-execute q;
--[ RECORD 1 ]-----------
- a+| xx                   
-  +|
- b |
- a+| yyyyyyyyyyyyyyyyyy   
- b |
--[ RECORD 2 ]-----------
- a+| xxxx                +
-  +| xxxxxx              +
- b | xxxxxxxx            +
-   | xxxxxxxxxx          +
-   | xxxxxxxxxxxx        +
-   | xxxxxxxxxxxxxx      +
-   | xxxxxxxxxxxxxxxx    +
-   | xxxxxxxxxxxxxxxxxx  +
-   | xxxxxxxxxxxxxxxxxxxx 
- a+| yyyyyyyyyyyyyyyy    +
- b | yyyyyyyyyyyyyy      +
-   | yyyyyyyyyyyy        +
-   | yyyyyyyyyy          +
-   | yyyyyyyy            +
-   | yyyyyy              +
-   | yyyy                +
-   | yy                  +
-   |                      
-
-\pset format wrapped
-execute q;
--[ RECORD 1 ]-------
- a+| xx               
-  +|
- b |
- a+| yyyyyyyyyyyyyyyy.
- b |.yy               
--[ RECORD 2 ]-------
- a+| xxxx            +
-  +| xxxxxx          +
- b | xxxxxxxx        +
-   | xxxxxxxxxx      +
-   | xxxxxxxxxxxx    +
-   | xxxxxxxxxxxxxx  +
-   | xxxxxxxxxxxxxxxx+
-   | xxxxxxxxxxxxxxxx.
-   |.xx              +
-   | xxxxxxxxxxxxxxxx.
-   |.xxxx             
- a+| yyyyyyyyyyyyyyyy+
- b | yyyyyyyyyyyyyy  +
-   | yyyyyyyyyyyy    +
-   | yyyyyyyyyy      +
-   | yyyyyyyy        +
-   | yyyyyy          +
-   | yyyy            +
-   | yy              +
-   |                  
-
-\pset border 2
-\pset format unaligned
-execute q;
-a
-
-b|xx
-a
-b|yyyyyyyyyyyyyyyyyy
-
-a
-
-b|xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx
-a
-b|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-\pset format aligned
-execute q;
-+-[ RECORD 1 ]-------------+
-| a+| xx                   |
-|  +|                      |
-| b |                      |
-| a+| yyyyyyyyyyyyyyyyyy   |
-| b |                      |
-+-[ RECORD 2 ]-------------+
-| a+| xxxx                +|
-|  +| xxxxxx              +|
-| b | xxxxxxxx            +|
-|   | xxxxxxxxxx          +|
-|   | xxxxxxxxxxxx        +|
-|   | xxxxxxxxxxxxxx      +|
-|   | xxxxxxxxxxxxxxxx    +|
-|   | xxxxxxxxxxxxxxxxxx  +|
-|   | xxxxxxxxxxxxxxxxxxxx |
-| a+| yyyyyyyyyyyyyyyy    +|
-| b | yyyyyyyyyyyyyy      +|
-|   | yyyyyyyyyyyy        +|
-|   | yyyyyyyyyy          +|
-|   | yyyyyyyy            +|
-|   | yyyyyy              +|
-|   | yyyy                +|
-|   | yy                  +|
-|   |                      |
-+---+----------------------+
-
-\pset format wrapped
-execute q;
-+-[ RECORD 1 ]-----+
-| a+| xx           |
-|  +|              |
-| b |              |
-| a+| yyyyyyyyyyyy.|
-| b |.yyyyyy       |
-+-[ RECORD 2 ]-----+
-| a+| xxxx        +|
-|  +| xxxxxx      +|
-| b | xxxxxxxx    +|
-|   | xxxxxxxxxx  +|
-|   | xxxxxxxxxxxx+|
-|   | xxxxxxxxxxxx.|
-|   |.xx          +|
-|   | xxxxxxxxxxxx.|
-|   |.xxxx        +|
-|   | xxxxxxxxxxxx.|
-|   |.xxxxxx      +|
-|   | xxxxxxxxxxxx.|
-|   |.xxxxxxxx     |
-| a+| yyyyyyyyyyyy.|
-| b |.yyyy        +|
-|   | yyyyyyyyyyyy.|
-|   |.yy          +|
-|   | yyyyyyyyyyyy+|
-|   | yyyyyyyyyy  +|
-|   | yyyyyyyy    +|
-|   | yyyyyy      +|
-|   | yyyy        +|
-|   | yy          +|
-|   |              |
-+---+--------------+
-
-\pset linestyle old-ascii
-\pset expanded off
-\pset columns 40
-\pset border 0
-\pset format unaligned
-execute q;
-a
-
-b|a
-b
-xx|yyyyyyyyyyyyyyyyyy
-xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-(2 rows)
-\pset format aligned
-execute q;
-         a                   a         
-                    +        b         
-         b          +                  
--------------------- ------------------
-xx                   yyyyyyyyyyyyyyyyyy
-xxxx                 yyyyyyyyyyyyyyyy   
-xxxxxx               yyyyyyyyyyyyyy     
-xxxxxxxx             yyyyyyyyyyyy       
-xxxxxxxxxx           yyyyyyyyyy         
-xxxxxxxxxxxx         yyyyyyyy           
-xxxxxxxxxxxxxx       yyyyyy             
-xxxxxxxxxxxxxxxx     yyyy               
-xxxxxxxxxxxxxxxxxx   yy                 
-xxxxxxxxxxxxxxxxxxxx 
-(2 rows)
-
-\pset format wrapped
-execute q;
-         a                   a         
-                    +        b         
-         b          +                  
--------------------- ------------------
-xx                   yyyyyyyyyyyyyyyyyy
-xxxx                 yyyyyyyyyyyyyyyy   
-xxxxxx               yyyyyyyyyyyyyy     
-xxxxxxxx             yyyyyyyyyyyy       
-xxxxxxxxxx           yyyyyyyyyy         
-xxxxxxxxxxxx         yyyyyyyy           
-xxxxxxxxxxxxxx       yyyyyy             
-xxxxxxxxxxxxxxxx     yyyy               
-xxxxxxxxxxxxxxxxxx   yy                 
-xxxxxxxxxxxxxxxxxxxx 
-(2 rows)
-
-\pset border 1
-\pset format unaligned
-execute q;
-a
-
-b|a
-b
-xx|yyyyyyyyyyyyyyyyyy
-xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-(2 rows)
-\pset format aligned
-execute q;
-          a           |         a          
-+                     |+        b          
-+         b           |+                   
-----------------------+--------------------
- xx                   | yyyyyyyyyyyyyyyyyy
- xxxx                 | yyyyyyyyyyyyyyyy   
- xxxxxx               : yyyyyyyyyyyyyy     
- xxxxxxxx             : yyyyyyyyyyyy       
- xxxxxxxxxx           : yyyyyyyyyy         
- xxxxxxxxxxxx         : yyyyyyyy           
- xxxxxxxxxxxxxx       : yyyyyy             
- xxxxxxxxxxxxxxxx     : yyyy               
- xxxxxxxxxxxxxxxxxx   : yy                 
- xxxxxxxxxxxxxxxxxxxx : 
-(2 rows)
-
-\pset format wrapped
-execute q;
-         a         |         a          
-+                  |+        b          
-+        b         |+                   
--------------------+--------------------
- xx                | yyyyyyyyyyyyyyyyyy
- xxxx              | yyyyyyyyyyyyyyyy   
- xxxxxx            : yyyyyyyyyyyyyy     
- xxxxxxxx          : yyyyyyyyyyyy       
- xxxxxxxxxx        : yyyyyyyyyy         
- xxxxxxxxxxxx      : yyyyyyyy           
- xxxxxxxxxxxxxx    : yyyyyy             
- xxxxxxxxxxxxxxxx  : yyyy               
- xxxxxxxxxxxxxxxxx : yy                 
- x                 : 
- xxxxxxxxxxxxxxxxx   
- xxx                 
-(2 rows)
-
-\pset border 2
-\pset format unaligned
-execute q;
-a
-
-b|a
-b
-xx|yyyyyyyyyyyyyyyyyy
-xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-(2 rows)
-\pset format aligned
-execute q;
-+----------------------+--------------------+
-|          a           |         a          |
-|+                     |+        b          |
-|+         b           |+                   |
-+----------------------+--------------------+
-| xx                   | yyyyyyyyyyyyyyyyyy |
-| xxxx                 | yyyyyyyyyyyyyyyy   |
-| xxxxxx               : yyyyyyyyyyyyyy     |
-| xxxxxxxx             : yyyyyyyyyyyy       |
-| xxxxxxxxxx           : yyyyyyyyyy         |
-| xxxxxxxxxxxx         : yyyyyyyy           |
-| xxxxxxxxxxxxxx       : yyyyyy             |
-| xxxxxxxxxxxxxxxx     : yyyy               |
-| xxxxxxxxxxxxxxxxxx   : yy                 |
-| xxxxxxxxxxxxxxxxxxxx :                    |
-+----------------------+--------------------+
-(2 rows)
-
-\pset format wrapped
-execute q;
-+-----------------+--------------------+
-|        a        |         a          |
-|+                |+        b          |
-|+       b        |+                   |
-+-----------------+--------------------+
-| xx              | yyyyyyyyyyyyyyyyyy |
-| xxxx            | yyyyyyyyyyyyyyyy   |
-| xxxxxx          : yyyyyyyyyyyyyy     |
-| xxxxxxxx        : yyyyyyyyyyyy       |
-| xxxxxxxxxx      : yyyyyyyyyy         |
-| xxxxxxxxxxxx    : yyyyyyyy           |
-| xxxxxxxxxxxxxx  : yyyyyy             |
-| xxxxxxxxxxxxxxx : yyyy               |
-| x               : yy                 |
-| xxxxxxxxxxxxxxx :                    |
-| xxx                                  |
-| xxxxxxxxxxxxxxx                      |
-| xxxxx                                |
-+-----------------+--------------------+
-(2 rows)
-
-\pset expanded on
-\pset columns 20
-\pset border 0
-\pset format unaligned
-execute q;
-a
-
-b|xx
-a
-b|yyyyyyyyyyyyyyyyyy
-
-a
-
-b|xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx
-a
-b|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-\pset format aligned
-execute q;
-* Record 1           
- a  xx                   
-+  
-+b 
- a  yyyyyyyyyyyyyyyyyy   
-+b 
-* Record 2           
- a  xxxx                 
-+   xxxxxx               
-+b  xxxxxxxx             
-    xxxxxxxxxx           
-    xxxxxxxxxxxx         
-    xxxxxxxxxxxxxx       
-    xxxxxxxxxxxxxxxx     
-    xxxxxxxxxxxxxxxxxx   
-    xxxxxxxxxxxxxxxxxxxx 
- a  yyyyyyyyyyyyyyyy     
-+b  yyyyyyyyyyyyyy       
-    yyyyyyyyyyyy         
-    yyyyyyyyyy           
-    yyyyyyyy             
-    yyyyyy               
-    yyyy                 
-    yy                   
-                         
-
-\pset format wrapped
-execute q;
-* Record 1         
- a  xx                 
-+  
-+b 
- a  yyyyyyyyyyyyyyyyyy 
-+b 
-* Record 2         
- a  xxxx               
-+   xxxxxx             
-+b  xxxxxxxx           
-    xxxxxxxxxx         
-    xxxxxxxxxxxx       
-    xxxxxxxxxxxxxx     
-    xxxxxxxxxxxxxxxx   
-    xxxxxxxxxxxxxxxxxx 
-    xxxxxxxxxxxxxxxxxx 
-    xx                 
- a  yyyyyyyyyyyyyyyy   
-+b  yyyyyyyyyyyyyy     
-    yyyyyyyyyyyy       
-    yyyyyyyyyy         
-    yyyyyyyy           
-    yyyyyy             
-    yyyy               
-    yy                 
-                       
-
-\pset border 1
-\pset format unaligned
-execute q;
-a
-
-b|xx
-a
-b|yyyyyyyyyyyyyyyyyy
-
-a
-
-b|xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx
-a
-b|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-\pset format aligned
-execute q;
--[ RECORD 1 ]-----------
- a | xx                   
-+  ;
-+b ;
- a | yyyyyyyyyyyyyyyyyy   
-+b ;
--[ RECORD 2 ]-----------
- a | xxxx                 
-+  : xxxxxx               
-+b : xxxxxxxx             
-   : xxxxxxxxxx           
-   : xxxxxxxxxxxx         
-   : xxxxxxxxxxxxxx       
-   : xxxxxxxxxxxxxxxx     
-   : xxxxxxxxxxxxxxxxxx   
-   : xxxxxxxxxxxxxxxxxxxx 
- a | yyyyyyyyyyyyyyyy     
-+b : yyyyyyyyyyyyyy       
-   : yyyyyyyyyyyy         
-   : yyyyyyyyyy           
-   : yyyyyyyy             
-   : yyyyyy               
-   : yyyy                 
-   : yy                   
-   :                      
-
-\pset format wrapped
-execute q;
--[ RECORD 1 ]-------
- a | xx               
-+  ;
-+b ;
- a | yyyyyyyyyyyyyyyy 
-+b ; yy               
--[ RECORD 2 ]-------
- a | xxxx             
-+  : xxxxxx           
-+b : xxxxxxxx         
-   : xxxxxxxxxx       
-   : xxxxxxxxxxxx     
-   : xxxxxxxxxxxxxx   
-   : xxxxxxxxxxxxxxxx 
-   : xxxxxxxxxxxxxxxx 
-   ; xx               
-   : xxxxxxxxxxxxxxxx 
-   ; xxxx             
- a | yyyyyyyyyyyyyyyy 
-+b : yyyyyyyyyyyyyy   
-   : yyyyyyyyyyyy     
-   : yyyyyyyyyy       
-   : yyyyyyyy         
-   : yyyyyy           
-   : yyyy             
-   : yy               
-   :                  
-
-\pset border 2
-\pset format unaligned
-execute q;
-a
-
-b|xx
-a
-b|yyyyyyyyyyyyyyyyyy
-
-a
-
-b|xxxx
-xxxxxx
-xxxxxxxx
-xxxxxxxxxx
-xxxxxxxxxxxx
-xxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxx
-xxxxxxxxxxxxxxxxxxxx
-a
-b|yyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyy
-yyyyyyyyyyyy
-yyyyyyyyyy
-yyyyyyyy
-yyyyyy
-yyyy
-yy
-
-\pset format aligned
-execute q;
-+-[ RECORD 1 ]-------------+
-| a | xx                   |
-|+  ;                      |
-|+b ;                      |
-| a | yyyyyyyyyyyyyyyyyy   |
-|+b ;                      |
-+-[ RECORD 2 ]-------------+
-| a | xxxx                 |
-|+  : xxxxxx               |
-|+b : xxxxxxxx             |
-|   : xxxxxxxxxx           |
-|   : xxxxxxxxxxxx         |
-|   : xxxxxxxxxxxxxx       |
-|   : xxxxxxxxxxxxxxxx     |
-|   : xxxxxxxxxxxxxxxxxx   |
-|   : xxxxxxxxxxxxxxxxxxxx |
-| a | yyyyyyyyyyyyyyyy     |
-|+b : yyyyyyyyyyyyyy       |
-|   : yyyyyyyyyyyy         |
-|   : yyyyyyyyyy           |
-|   : yyyyyyyy             |
-|   : yyyyyy               |
-|   : yyyy                 |
-|   : yy                   |
-|   :                      |
-+---+----------------------+
-
-\pset format wrapped
-execute q;
-+-[ RECORD 1 ]-----+
-| a | xx           |
-|+  ;              |
-|+b ;              |
-| a | yyyyyyyyyyyy |
-|+b ; yyyyyy       |
-+-[ RECORD 2 ]-----+
-| a | xxxx         |
-|+  : xxxxxx       |
-|+b : xxxxxxxx     |
-|   : xxxxxxxxxx   |
-|   : xxxxxxxxxxxx |
-|   : xxxxxxxxxxxx |
-|   ; xx           |
-|   : xxxxxxxxxxxx |
-|   ; xxxx         |
-|   : xxxxxxxxxxxx |
-|   ; xxxxxx       |
-|   : xxxxxxxxxxxx |
-|   ; xxxxxxxx     |
-| a | yyyyyyyyyyyy |
-|+b ; yyyy         |
-|   : yyyyyyyyyyyy |
-|   ; yy           |
-|   : yyyyyyyyyyyy |
-|   : yyyyyyyyyy   |
-|   : yyyyyyyy     |
-|   : yyyyyy       |
-|   : yyyy         |
-|   : yy           |
-|   :              |
-+---+--------------+
-
-deallocate q;
diff --git a/src/test/regress/sql/psql.sql b/src/test/regress/sql/psql.sql
index a7d5eeb587..99ad5b4a70 100644
--- a/src/test/regress/sql/psql.sql
+++ b/src/test/regress/sql/psql.sql
@@ -40,123 +40,3 @@ select 10 as test01, 20 as test02 from generate_series(1,0) \gset
 
 -- show all pset options
 \pset
-
--- test multi-line headers, wrapping, and newline indicators
-prepare q as select array_to_string(array_agg(repeat('x',2*n)),E'\n') as "a
-
-b", array_to_string(array_agg(repeat('y',20-2*n)),E'\n') as "a
-b" from generate_series(1,10) as n(n) group by n>1 ;
-
-\pset linestyle ascii
-
-\pset expanded off
-\pset columns 40
-
-\pset border 0
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset border 1
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset border 2
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset expanded on
-\pset columns 20
-
-\pset border 0
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset border 1
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset border 2
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset linestyle old-ascii
-
-\pset expanded off
-\pset columns 40
-
-\pset border 0
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset border 1
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset border 2
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset expanded on
-\pset columns 20
-
-\pset border 0
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset border 1
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-\pset border 2
-\pset format unaligned
-execute q;
-\pset format aligned
-execute q;
-\pset format wrapped
-execute q;
-
-deallocate q;