Commit 458ef6ba authored by Greg Stark's avatar Greg Stark

Fix further concerns about psql wrapping in expanded mode having

collateral damage on other formats, by Sergey Muraviov.
parent 48d50840
...@@ -1160,7 +1160,9 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout) ...@@ -1160,7 +1160,9 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
dformatsize = 0; dformatsize = 0;
struct lineptr *hlineptr, struct lineptr *hlineptr,
*dlineptr; *dlineptr;
bool is_pager = false; bool is_pager = false,
hmultiline = false,
dmultiline = false;
int output_columns = 0; /* Width of interactive console */ int output_columns = 0; /* Width of interactive console */
if (cancel_pressed) if (cancel_pressed)
...@@ -1196,7 +1198,10 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout) ...@@ -1196,7 +1198,10 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
if (width > hwidth) if (width > hwidth)
hwidth = width; hwidth = width;
if (height > hheight) if (height > hheight)
{
hheight = height; hheight = height;
hmultiline = true;
}
if (fs > hformatsize) if (fs > hformatsize)
hformatsize = fs; hformatsize = fs;
} }
...@@ -1213,7 +1218,10 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout) ...@@ -1213,7 +1218,10 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
if (width > dwidth) if (width > dwidth)
dwidth = width; dwidth = width;
if (height > dheight) if (height > dheight)
{
dheight = height; dheight = height;
dmultiline = true;
}
if (fs > dformatsize) if (fs > dformatsize)
dformatsize = fs; dformatsize = fs;
} }
...@@ -1258,45 +1266,82 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout) ...@@ -1258,45 +1266,82 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
if (cont->opt->format == PRINT_WRAPPED) if (cont->opt->format == PRINT_WRAPPED)
{ {
/* /*
* Calculate the available width to wrap the columns to after * Separators width
* subtracting the maximum header width and separators. At a minimum
* enough to print "[ RECORD N ]"
*/ */
unsigned int width, unsigned int width,
swidth; min_width,
swidth,
iwidth = 0;
if (opt_border == 0) if (opt_border == 0)
swidth = 1; /* "header data" */ {
/*
* For border = 0, one space in the middle.
*/
swidth = 1;
}
else if (opt_border == 1) 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; * For border = 1, one for the pipe (|) in the middle
* between the two spaces.
*/
swidth = 3;
} }
else
/*
* For border = 2, two more for the pipes (|) at the begging and
* at the end of the lines.
*/
swidth = 7;
/* Wrap to minimum width */ if ((opt_border < 2) &&
((hmultiline &&
(format == &pg_asciiformat_old)) ||
(dmultiline &&
(format != &pg_asciiformat_old))))
iwidth++; /* for newline indicators */
min_width = hwidth + iwidth + swidth + 3;
/*
* Record header width
*/
if (!opt_tuples_only) if (!opt_tuples_only)
{ {
int delta = 1 + log10(cont->nrows) - width; /*
* Record number
*/
unsigned int rwidth = 1 + log10(cont->nrows);
if (opt_border == 0) if (opt_border == 0)
delta += 6; /* "* RECORD " */ rwidth += 9; /* "* RECORD " */
else if (opt_border == 1) else if (opt_border == 1)
delta += 10; /* "-[ RECORD ]" */ rwidth += 12; /* "-[ RECORD ]" */
else else
delta += 15; /* "+-[ RECORD ]-+" */ rwidth += 15; /* "+-[ RECORD ]-+" */
if (rwidth > min_width)
min_width = rwidth;
}
/* Wrap to minimum width */
width = hwidth + iwidth + swidth + dwidth;
if ((width < min_width) || (output_columns < min_width))
width = min_width - hwidth - iwidth - swidth;
else if (output_columns > 0)
/*
* Wrap to maximum width
*/
width = output_columns - hwidth - iwidth - swidth;
if (delta > 0) if ((width < dwidth) || (dheight > 1))
dwidth += delta; {
dmultiline = true;
if ((opt_border == 0) &&
(format != &pg_asciiformat_old))
width--; /* for wrap indicators */
} }
else if (dwidth < 3) dwidth = width;
dwidth = 3;
} }
/* print records */ /* print records */
...@@ -1321,11 +1366,17 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout) ...@@ -1321,11 +1366,17 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
/* Print record header (e.g. "[ RECORD N ]") above each record */ /* Print record header (e.g. "[ RECORD N ]") above each record */
if (i % cont->ncolumns == 0) if (i % cont->ncolumns == 0)
{ {
unsigned int lhwidth = hwidth;
if ((opt_border < 2) &&
(hmultiline) &&
(format == &pg_asciiformat_old))
lhwidth++; /* for newline indicators */
if (!opt_tuples_only) if (!opt_tuples_only)
print_aligned_vertical_line(cont, record++, hwidth, dwidth, print_aligned_vertical_line(cont, record++, lhwidth,
pos, fout); dwidth, pos, fout);
else if (i != 0 || !cont->opt->start_table || opt_border == 2) else if (i != 0 || !cont->opt->start_table || opt_border == 2)
print_aligned_vertical_line(cont, 0, hwidth, dwidth, print_aligned_vertical_line(cont, 0, lhwidth, dwidth,
pos, fout); pos, fout);
} }
...@@ -1354,35 +1405,62 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout) ...@@ -1354,35 +1405,62 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
/* Header (never wrapped so just need to deal with newlines) */ /* Header (never wrapped so just need to deal with newlines) */
if (!hcomplete) if (!hcomplete)
{ {
int swidth, int swidth = hwidth,
twidth = hwidth + 1; target_width = hwidth;
/*
* Left spacer or new line indicator
*/
if ((opt_border == 2) ||
(hmultiline && (format == &pg_asciiformat_old)))
fputs(hline ? format->header_nl_left : " ", fout); fputs(hline ? format->header_nl_left : " ", fout);
strlen_max_width(hlineptr[hline].ptr, &twidth, /*
* Header text
*/
strlen_max_width(hlineptr[hline].ptr, &target_width,
encoding); encoding);
fprintf(fout, "%-s", hlineptr[hline].ptr); fprintf(fout, "%-s", hlineptr[hline].ptr);
swidth = hwidth - twidth; /*
if (swidth > 0) /* spacer */ * Spacer
*/
swidth -= target_width;
if (swidth > 0)
fprintf(fout, "%*s", swidth, " "); fprintf(fout, "%*s", swidth, " ");
/*
* New line indicator or separator's space
*/
if (hlineptr[hline + 1].ptr) if (hlineptr[hline + 1].ptr)
{ {
/* More lines after this one due to a newline */ /* More lines after this one due to a newline */
if ((opt_border > 0) ||
(hmultiline && (format != &pg_asciiformat_old)))
fputs(format->header_nl_right, fout); fputs(format->header_nl_right, fout);
hline++; hline++;
} }
else else
{ {
/* This was the last line of the header */ /* This was the last line of the header */
if ((opt_border > 0) ||
(hmultiline && (format != &pg_asciiformat_old)))
fputs(" ", fout); fputs(" ", fout);
hcomplete = 1; hcomplete = 1;
} }
} }
else else
{ {
/* Header exhausted but more data for column */ unsigned int swidth = hwidth + opt_border;
fprintf(fout, "%*s", hwidth + 2, ""); if ((opt_border < 2) &&
(hmultiline) &&
(format == &pg_asciiformat_old))
swidth++;
if ((opt_border == 0) &&
(format != &pg_asciiformat_old) &&
(hmultiline))
swidth++;
fprintf(fout, "%*s", swidth, " ");
} }
/* Separator */ /* Separator */
...@@ -1401,13 +1479,18 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout) ...@@ -1401,13 +1479,18 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
/* Data */ /* Data */
if (!dcomplete) if (!dcomplete)
{ {
int target_width, int target_width = dwidth,
bytes_to_output, bytes_to_output,
swidth; swidth = dwidth;
/*
* Left spacer on wrap indicator
*/
fputs(!dcomplete && !offset ? " " : format->wrap_left, fout); fputs(!dcomplete && !offset ? " " : format->wrap_left, fout);
target_width = dwidth; /*
* Data text
*/
bytes_to_output = strlen_max_width(dlineptr[dline].ptr + offset, bytes_to_output = strlen_max_width(dlineptr[dline].ptr + offset,
&target_width, encoding); &target_width, encoding);
fputnbytes(fout, (char *) (dlineptr[dline].ptr + offset), fputnbytes(fout, (char *) (dlineptr[dline].ptr + offset),
...@@ -1416,20 +1499,30 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout) ...@@ -1416,20 +1499,30 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
chars_to_output -= target_width; chars_to_output -= target_width;
offset += bytes_to_output; offset += bytes_to_output;
/* spacer */ /* Spacer */
swidth = dwidth - target_width; swidth -= target_width;
if (swidth > 0)
fprintf(fout, "%*s", swidth, "");
if (chars_to_output) if (chars_to_output)
{ {
/* continuing a wrapped column */ /* continuing a wrapped column */
if ((opt_border > 1) ||
(dmultiline && (format != &pg_asciiformat_old)))
{
if (swidth > 0)
fprintf(fout, "%*s", swidth, " ");
fputs(format->wrap_right, fout); fputs(format->wrap_right, fout);
} }
}
else if (dlineptr[dline + 1].ptr) else if (dlineptr[dline + 1].ptr)
{ {
/* reached a newline in the column */ /* reached a newline in the column */
if ((opt_border > 1) ||
(dmultiline && (format != &pg_asciiformat_old)))
{
if (swidth > 0)
fprintf(fout, "%*s", swidth, " ");
fputs(format->nl_right, fout); fputs(format->nl_right, fout);
}
dline++; dline++;
offset = 0; offset = 0;
chars_to_output = dlineptr[dline].width; chars_to_output = dlineptr[dline].width;
...@@ -1437,10 +1530,16 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout) ...@@ -1437,10 +1530,16 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
else else
{ {
/* reached the end of the cell */ /* reached the end of the cell */
if (opt_border > 1)
{
if (swidth > 0)
fprintf(fout, "%*s", swidth, " ");
fputs(" ", fout); fputs(" ", fout);
}
dcomplete = 1; dcomplete = 1;
} }
/* Right border */
if (opt_border == 2) if (opt_border == 2)
fputs(dformat->rightvrule, fout); fputs(dformat->rightvrule, fout);
......
...@@ -69,20 +69,20 @@ Table attributes (tableattr) unset. ...@@ -69,20 +69,20 @@ Table attributes (tableattr) unset.
Title (title) unset. Title (title) unset.
Tuples only (tuples_only) is off. Tuples only (tuples_only) is off.
-- test multi-line headers, wrapping, and newline indicators -- 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 prepare q as select array_to_string(array_agg(repeat('x',2*n)),E'\n') as "ab
b", array_to_string(array_agg(repeat('y',20-2*n)),E'\n') as "a c", 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 ; bc" from generate_series(1,10) as n(n) group by n>1 ;
\pset linestyle ascii \pset linestyle ascii
\pset expanded off \pset expanded off
\pset columns 40 \pset columns 40
\pset border 0 \pset border 0
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|a c|a
b bc
xx|yyyyyyyyyyyyyyyyyy xx|yyyyyyyyyyyyyyyyyy
xxxx xxxx
xxxxxx xxxxxx
...@@ -104,9 +104,9 @@ yy ...@@ -104,9 +104,9 @@ yy
(2 rows) (2 rows)
\pset format aligned \pset format aligned
execute q; execute q;
a + a + ab + a +
+ b + bc
b c
-------------------- ------------------ -------------------- ------------------
xx yyyyyyyyyyyyyyyyyy xx yyyyyyyyyyyyyyyyyy
xxxx +yyyyyyyyyyyyyyyy + xxxx +yyyyyyyyyyyyyyyy +
...@@ -122,9 +122,9 @@ xxxxxxxxxxxxxxxxxxxx ...@@ -122,9 +122,9 @@ xxxxxxxxxxxxxxxxxxxx
\pset format wrapped \pset format wrapped
execute q; execute q;
a + a + ab + a +
+ b + bc
b c
-------------------- ------------------ -------------------- ------------------
xx yyyyyyyyyyyyyyyyyy xx yyyyyyyyyyyyyyyyyy
xxxx +yyyyyyyyyyyyyyyy + xxxx +yyyyyyyyyyyyyyyy +
...@@ -141,10 +141,10 @@ xxxxxxxxxxxxxxxxxxxx ...@@ -141,10 +141,10 @@ xxxxxxxxxxxxxxxxxxxx
\pset border 1 \pset border 1
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|a c|a
b bc
xx|yyyyyyyyyyyyyyyyyy xx|yyyyyyyyyyyyyyyyyy
xxxx xxxx
xxxxxx xxxxxx
...@@ -166,9 +166,9 @@ yy ...@@ -166,9 +166,9 @@ yy
(2 rows) (2 rows)
\pset format aligned \pset format aligned
execute q; execute q;
a +| a + ab +| a +
+| b +| bc
b | c |
----------------------+-------------------- ----------------------+--------------------
xx | yyyyyyyyyyyyyyyyyy xx | yyyyyyyyyyyyyyyyyy
xxxx +| yyyyyyyyyyyyyyyy + xxxx +| yyyyyyyyyyyyyyyy +
...@@ -184,9 +184,9 @@ execute q; ...@@ -184,9 +184,9 @@ execute q;
\pset format wrapped \pset format wrapped
execute q; execute q;
a +| a + ab +| a +
+| b +| bc
b | c |
-------------------+-------------------- -------------------+--------------------
xx | yyyyyyyyyyyyyyyyyy xx | yyyyyyyyyyyyyyyyyy
xxxx +| yyyyyyyyyyyyyyyy + xxxx +| yyyyyyyyyyyyyyyy +
...@@ -205,10 +205,10 @@ execute q; ...@@ -205,10 +205,10 @@ execute q;
\pset border 2 \pset border 2
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|a c|a
b bc
xx|yyyyyyyyyyyyyyyyyy xx|yyyyyyyyyyyyyyyyyy
xxxx xxxx
xxxxxx xxxxxx
...@@ -231,9 +231,9 @@ yy ...@@ -231,9 +231,9 @@ yy
\pset format aligned \pset format aligned
execute q; execute q;
+----------------------+--------------------+ +----------------------+--------------------+
| a +| a +| | ab +| a +|
| +| b | | +| bc |
| b | | | c | |
+----------------------+--------------------+ +----------------------+--------------------+
| xx | yyyyyyyyyyyyyyyyyy | | xx | yyyyyyyyyyyyyyyyyy |
| xxxx +| yyyyyyyyyyyyyyyy +| | xxxx +| yyyyyyyyyyyyyyyy +|
...@@ -251,9 +251,9 @@ execute q; ...@@ -251,9 +251,9 @@ execute q;
\pset format wrapped \pset format wrapped
execute q; execute q;
+-----------------+--------------------+ +-----------------+--------------------+
| a +| a +| | ab +| a +|
| +| b | | +| bc |
| b | | | c | |
+-----------------+--------------------+ +-----------------+--------------------+
| xx | yyyyyyyyyyyyyyyyyy | | xx | yyyyyyyyyyyyyyyyyy |
| xxxx +| yyyyyyyyyyyyyyyy +| | xxxx +| yyyyyyyyyyyyyyyy +|
...@@ -276,15 +276,15 @@ execute q; ...@@ -276,15 +276,15 @@ execute q;
\pset border 0 \pset border 0
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|xx c|xx
a a
b|yyyyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyyyy
a ab
b|xxxx c|xxxx
xxxxxx xxxxxx
xxxxxxxx xxxxxxxx
xxxxxxxxxx xxxxxxxxxx
...@@ -294,7 +294,7 @@ xxxxxxxxxxxxxxxx ...@@ -294,7 +294,7 @@ xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx
a a
b|yyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyy
yyyyyyyyyyyyyy yyyyyyyyyyyyyy
yyyyyyyyyyyy yyyyyyyyyyyy
yyyyyyyyyy yyyyyyyyyy
...@@ -306,23 +306,23 @@ yy ...@@ -306,23 +306,23 @@ yy
\pset format aligned \pset format aligned
execute q; execute q;
* Record 1 * Record 1
a+ xx ab+ xx
+ +
b c
a+ yyyyyyyyyyyyyyyyyy a + yyyyyyyyyyyyyyyyyy
b bc
* Record 2 * Record 2
a+ xxxx + ab+ xxxx +
+ xxxxxx + + xxxxxx +
b xxxxxxxx + c xxxxxxxx +
xxxxxxxxxx + xxxxxxxxxx +
xxxxxxxxxxxx + xxxxxxxxxxxx +
xxxxxxxxxxxxxx + xxxxxxxxxxxxxx +
xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxx +
xxxxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxxxxx +
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx
a+ yyyyyyyyyyyyyyyy + a + yyyyyyyyyyyyyyyy +
b yyyyyyyyyyyyyy + bc yyyyyyyyyyyyyy +
yyyyyyyyyyyy + yyyyyyyyyyyy +
yyyyyyyyyy + yyyyyyyyyy +
yyyyyyyy + yyyyyyyy +
...@@ -334,24 +334,27 @@ execute q; ...@@ -334,24 +334,27 @@ execute q;
\pset format wrapped \pset format wrapped
execute q; execute q;
* Record 1 * Record 1
a+ xx ab+ xx
+ +
b c
a+ yyyyyyyyyyyyyyyyyy a + yyyyyyyyyyyyyyy.
b bc .yyy
* Record 2 * Record 2
a+ xxxx + ab+ xxxx +
+ xxxxxx + + xxxxxx +
b xxxxxxxx + c xxxxxxxx +
xxxxxxxxxx + xxxxxxxxxx +
xxxxxxxxxxxx + xxxxxxxxxxxx +
xxxxxxxxxxxxxx + xxxxxxxxxxxxxx +
xxxxxxxxxxxxxxxx + xxxxxxxxxxxxxxx.
xxxxxxxxxxxxxxxxxx+ .x +
xxxxxxxxxxxxxxxxxx. xxxxxxxxxxxxxxx.
.xx .xxx +
a+ yyyyyyyyyyyyyyyy + xxxxxxxxxxxxxxx.
b yyyyyyyyyyyyyy + .xxxxx
a + yyyyyyyyyyyyyyy.
bc .y +
yyyyyyyyyyyyyy +
yyyyyyyyyyyy + yyyyyyyyyyyy +
yyyyyyyyyy + yyyyyyyyyy +
yyyyyyyy + yyyyyyyy +
...@@ -363,15 +366,15 @@ execute q; ...@@ -363,15 +366,15 @@ execute q;
\pset border 1 \pset border 1
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|xx c|xx
a a
b|yyyyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyyyy
a ab
b|xxxx c|xxxx
xxxxxx xxxxxx
xxxxxxxx xxxxxxxx
xxxxxxxxxx xxxxxxxxxx
...@@ -381,7 +384,7 @@ xxxxxxxxxxxxxxxx ...@@ -381,7 +384,7 @@ xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx
a a
b|yyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyy
yyyyyyyyyyyyyy yyyyyyyyyyyyyy
yyyyyyyyyyyy yyyyyyyyyyyy
yyyyyyyyyy yyyyyyyyyy
...@@ -392,24 +395,24 @@ yy ...@@ -392,24 +395,24 @@ yy
\pset format aligned \pset format aligned
execute q; execute q;
-[ RECORD 1 ]----------- -[ RECORD 1 ]------------
a+| xx ab+| xx
+| +|
b | c |
a+| yyyyyyyyyyyyyyyyyy a +| yyyyyyyyyyyyyyyyyy
b | bc |
-[ RECORD 2 ]----------- -[ RECORD 2 ]------------
a+| xxxx + ab+| xxxx +
+| xxxxxx + +| xxxxxx +
b | xxxxxxxx + c | xxxxxxxx +
| xxxxxxxxxx + | xxxxxxxxxx +
| xxxxxxxxxxxx + | xxxxxxxxxxxx +
| xxxxxxxxxxxxxx + | xxxxxxxxxxxxxx +
| xxxxxxxxxxxxxxxx + | xxxxxxxxxxxxxxxx +
| xxxxxxxxxxxxxxxxxx + | xxxxxxxxxxxxxxxxxx +
| xxxxxxxxxxxxxxxxxxxx | xxxxxxxxxxxxxxxxxxxx
a+| yyyyyyyyyyyyyyyy + a +| yyyyyyyyyyyyyyyy +
b | yyyyyyyyyyyyyy + bc | yyyyyyyyyyyyyy +
| yyyyyyyyyyyy + | yyyyyyyyyyyy +
| yyyyyyyyyy + | yyyyyyyyyy +
| yyyyyyyy + | yyyyyyyy +
...@@ -420,26 +423,28 @@ execute q; ...@@ -420,26 +423,28 @@ execute q;
\pset format wrapped \pset format wrapped
execute q; execute q;
-[ RECORD 1 ]------- -[ RECORD 1 ]------
a+| xx ab+| xx
+| +|
b | c |
a+| yyyyyyyyyyyyyyyy. a +| yyyyyyyyyyyyyy.
b |.yy bc |.yyyy
-[ RECORD 2 ]------- -[ RECORD 2 ]------
a+| xxxx + ab+| xxxx +
+| xxxxxx + +| xxxxxx +
b | xxxxxxxx + c | xxxxxxxx +
| xxxxxxxxxx + | xxxxxxxxxx +
| xxxxxxxxxxxx + | xxxxxxxxxxxx +
| xxxxxxxxxxxxxx + | xxxxxxxxxxxxxx+
| xxxxxxxxxxxxxxxx+ | xxxxxxxxxxxxxx.
| xxxxxxxxxxxxxxxx.
|.xx + |.xx +
| xxxxxxxxxxxxxxxx. | xxxxxxxxxxxxxx.
|.xxxx |.xxxx +
a+| yyyyyyyyyyyyyyyy+ | xxxxxxxxxxxxxx.
b | yyyyyyyyyyyyyy + |.xxxxxx
a +| yyyyyyyyyyyyyy.
bc |.yy +
| yyyyyyyyyyyyyy+
| yyyyyyyyyyyy + | yyyyyyyyyyyy +
| yyyyyyyyyy + | yyyyyyyyyy +
| yyyyyyyy + | yyyyyyyy +
...@@ -451,15 +456,15 @@ execute q; ...@@ -451,15 +456,15 @@ execute q;
\pset border 2 \pset border 2
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|xx c|xx
a a
b|yyyyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyyyy
a ab
b|xxxx c|xxxx
xxxxxx xxxxxx
xxxxxxxx xxxxxxxx
xxxxxxxxxx xxxxxxxxxx
...@@ -469,7 +474,7 @@ xxxxxxxxxxxxxxxx ...@@ -469,7 +474,7 @@ xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx
a a
b|yyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyy
yyyyyyyyyyyyyy yyyyyyyyyyyyyy
yyyyyyyyyyyy yyyyyyyyyyyy
yyyyyyyyyy yyyyyyyyyy
...@@ -480,24 +485,24 @@ yy ...@@ -480,24 +485,24 @@ yy
\pset format aligned \pset format aligned
execute q; execute q;
+-[ RECORD 1 ]-------------+ +-[ RECORD 1 ]--------------+
| a+| xx | | ab+| xx |
| +| | | +| |
| b | | | c | |
| a+| yyyyyyyyyyyyyyyyyy | | a +| yyyyyyyyyyyyyyyyyy |
| b | | | bc | |
+-[ RECORD 2 ]-------------+ +-[ RECORD 2 ]--------------+
| a+| xxxx +| | ab+| xxxx +|
| +| xxxxxx +| | +| xxxxxx +|
| b | xxxxxxxx +| | c | xxxxxxxx +|
| | xxxxxxxxxx +| | | xxxxxxxxxx +|
| | xxxxxxxxxxxx +| | | xxxxxxxxxxxx +|
| | xxxxxxxxxxxxxx +| | | xxxxxxxxxxxxxx +|
| | xxxxxxxxxxxxxxxx +| | | xxxxxxxxxxxxxxxx +|
| | xxxxxxxxxxxxxxxxxx +| | | xxxxxxxxxxxxxxxxxx +|
| | xxxxxxxxxxxxxxxxxxxx | | | xxxxxxxxxxxxxxxxxxxx |
| a+| yyyyyyyyyyyyyyyy +| | a +| yyyyyyyyyyyyyyyy +|
| b | yyyyyyyyyyyyyy +| | bc | yyyyyyyyyyyyyy +|
| | yyyyyyyyyyyy +| | | yyyyyyyyyyyy +|
| | yyyyyyyyyy +| | | yyyyyyyyyy +|
| | yyyyyyyy +| | | yyyyyyyy +|
...@@ -505,42 +510,44 @@ execute q; ...@@ -505,42 +510,44 @@ execute q;
| | yyyy +| | | yyyy +|
| | yy +| | | yy +|
| | | | | |
+---+----------------------+ +----+----------------------+
\pset format wrapped \pset format wrapped
execute q; execute q;
+-[ RECORD 1 ]-----+ +-[ RECORD 1 ]-----+
| a+| xx | | ab+| xx |
| +| | | +| |
| b | | | c | |
| a+| yyyyyyyyyyyy.| | a +| yyyyyyyyyyy.|
| b |.yyyyyy | | bc |.yyyyyyy |
+-[ RECORD 2 ]-----+ +-[ RECORD 2 ]-----+
| a+| xxxx +| | ab+| xxxx +|
| +| xxxxxx +| | +| xxxxxx +|
| b | xxxxxxxx +| | c | xxxxxxxx +|
| | xxxxxxxxxx +| | | xxxxxxxxxx +|
| | xxxxxxxxxxxx+| | | xxxxxxxxxxx.|
| | xxxxxxxxxxxx.| | |.x +|
| |.xx +| | | xxxxxxxxxxx.|
| | xxxxxxxxxxxx.| | |.xxx +|
| |.xxxx +| | | xxxxxxxxxxx.|
| | xxxxxxxxxxxx.| | |.xxxxx +|
| |.xxxxxx +| | | xxxxxxxxxxx.|
| | xxxxxxxxxxxx.| | |.xxxxxxx +|
| |.xxxxxxxx | | | xxxxxxxxxxx.|
| a+| yyyyyyyyyyyy.| | |.xxxxxxxxx |
| b |.yyyy +| | a +| yyyyyyyyyyy.|
| | yyyyyyyyyyyy.| | bc |.yyyyy +|
| |.yy +| | | yyyyyyyyyyy.|
| | yyyyyyyyyyyy+| | |.yyy +|
| | yyyyyyyyyyy.|
| |.y +|
| | yyyyyyyyyy +| | | yyyyyyyyyy +|
| | yyyyyyyy +| | | yyyyyyyy +|
| | yyyyyy +| | | yyyyyy +|
| | yyyy +| | | yyyy +|
| | yy +| | | yy +|
| | | | | |
+---+--------------+ +----+-------------+
\pset linestyle old-ascii \pset linestyle old-ascii
\pset expanded off \pset expanded off
...@@ -548,10 +555,10 @@ execute q; ...@@ -548,10 +555,10 @@ execute q;
\pset border 0 \pset border 0
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|a c|a
b bc
xx|yyyyyyyyyyyyyyyyyy xx|yyyyyyyyyyyyyyyyyy
xxxx xxxx
xxxxxx xxxxxx
...@@ -573,9 +580,9 @@ yy ...@@ -573,9 +580,9 @@ yy
(2 rows) (2 rows)
\pset format aligned \pset format aligned
execute q; execute q;
a a ab a
+ b + bc
b + c +
-------------------- ------------------ -------------------- ------------------
xx yyyyyyyyyyyyyyyyyy xx yyyyyyyyyyyyyyyyyy
xxxx yyyyyyyyyyyyyyyy xxxx yyyyyyyyyyyyyyyy
...@@ -591,9 +598,9 @@ xxxxxxxxxxxxxxxxxxxx ...@@ -591,9 +598,9 @@ xxxxxxxxxxxxxxxxxxxx
\pset format wrapped \pset format wrapped
execute q; execute q;
a a ab a
+ b + bc
b + c +
-------------------- ------------------ -------------------- ------------------
xx yyyyyyyyyyyyyyyyyy xx yyyyyyyyyyyyyyyyyy
xxxx yyyyyyyyyyyyyyyy xxxx yyyyyyyyyyyyyyyy
...@@ -610,10 +617,10 @@ xxxxxxxxxxxxxxxxxxxx ...@@ -610,10 +617,10 @@ xxxxxxxxxxxxxxxxxxxx
\pset border 1 \pset border 1
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|a c|a
b bc
xx|yyyyyyyyyyyyyyyyyy xx|yyyyyyyyyyyyyyyyyy
xxxx xxxx
xxxxxx xxxxxx
...@@ -635,9 +642,9 @@ yy ...@@ -635,9 +642,9 @@ yy
(2 rows) (2 rows)
\pset format aligned \pset format aligned
execute q; execute q;
a | a ab | a
+ |+ b + |+ bc
+ b |+ + c |+
----------------------+-------------------- ----------------------+--------------------
xx | yyyyyyyyyyyyyyyyyy xx | yyyyyyyyyyyyyyyyyy
xxxx | yyyyyyyyyyyyyyyy xxxx | yyyyyyyyyyyyyyyy
...@@ -653,9 +660,9 @@ execute q; ...@@ -653,9 +660,9 @@ execute q;
\pset format wrapped \pset format wrapped
execute q; execute q;
a | a ab | a
+ |+ b + |+ bc
+ b |+ + c |+
-------------------+-------------------- -------------------+--------------------
xx | yyyyyyyyyyyyyyyyyy xx | yyyyyyyyyyyyyyyyyy
xxxx | yyyyyyyyyyyyyyyy xxxx | yyyyyyyyyyyyyyyy
...@@ -674,10 +681,10 @@ execute q; ...@@ -674,10 +681,10 @@ execute q;
\pset border 2 \pset border 2
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|a c|a
b bc
xx|yyyyyyyyyyyyyyyyyy xx|yyyyyyyyyyyyyyyyyy
xxxx xxxx
xxxxxx xxxxxx
...@@ -700,9 +707,9 @@ yy ...@@ -700,9 +707,9 @@ yy
\pset format aligned \pset format aligned
execute q; execute q;
+----------------------+--------------------+ +----------------------+--------------------+
| a | a | | ab | a |
|+ |+ b | |+ |+ bc |
|+ b |+ | |+ c |+ |
+----------------------+--------------------+ +----------------------+--------------------+
| xx | yyyyyyyyyyyyyyyyyy | | xx | yyyyyyyyyyyyyyyyyy |
| xxxx | yyyyyyyyyyyyyyyy | | xxxx | yyyyyyyyyyyyyyyy |
...@@ -720,9 +727,9 @@ execute q; ...@@ -720,9 +727,9 @@ execute q;
\pset format wrapped \pset format wrapped
execute q; execute q;
+-----------------+--------------------+ +-----------------+--------------------+
| a | a | | ab | a |
|+ |+ b | |+ |+ bc |
|+ b |+ | |+ c |+ |
+-----------------+--------------------+ +-----------------+--------------------+
| xx | yyyyyyyyyyyyyyyyyy | | xx | yyyyyyyyyyyyyyyyyy |
| xxxx | yyyyyyyyyyyyyyyy | | xxxx | yyyyyyyyyyyyyyyy |
...@@ -745,15 +752,15 @@ execute q; ...@@ -745,15 +752,15 @@ execute q;
\pset border 0 \pset border 0
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|xx c|xx
a a
b|yyyyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyyyy
a ab
b|xxxx c|xxxx
xxxxxx xxxxxx
xxxxxxxx xxxxxxxx
xxxxxxxxxx xxxxxxxxxx
...@@ -763,7 +770,7 @@ xxxxxxxxxxxxxxxx ...@@ -763,7 +770,7 @@ xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx
a a
b|yyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyy
yyyyyyyyyyyyyy yyyyyyyyyyyyyy
yyyyyyyyyyyy yyyyyyyyyyyy
yyyyyyyyyy yyyyyyyyyy
...@@ -775,15 +782,15 @@ yy ...@@ -775,15 +782,15 @@ yy
\pset format aligned \pset format aligned
execute q; execute q;
* Record 1 * Record 1
a xx ab xx
+ +
+b +c
a yyyyyyyyyyyyyyyyyy a yyyyyyyyyyyyyyyyyy
+b +bc
* Record 2 * Record 2
a xxxx ab xxxx
+ xxxxxx + xxxxxx
+b xxxxxxxx +c xxxxxxxx
xxxxxxxxxx xxxxxxxxxx
xxxxxxxxxxxx xxxxxxxxxxxx
xxxxxxxxxxxxxx xxxxxxxxxxxxxx
...@@ -791,7 +798,7 @@ execute q; ...@@ -791,7 +798,7 @@ execute q;
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx
a yyyyyyyyyyyyyyyy a yyyyyyyyyyyyyyyy
+b yyyyyyyyyyyyyy +bc yyyyyyyyyyyyyy
yyyyyyyyyyyy yyyyyyyyyyyy
yyyyyyyyyy yyyyyyyyyy
yyyyyyyy yyyyyyyy
...@@ -803,24 +810,25 @@ execute q; ...@@ -803,24 +810,25 @@ execute q;
\pset format wrapped \pset format wrapped
execute q; execute q;
* Record 1 * Record 1
a xx ab xx
+ +
+b +c
a yyyyyyyyyyyyyyyyyy a yyyyyyyyyyyyyyyy
+b +bc yy
* Record 2 * Record 2
a xxxx ab xxxx
+ xxxxxx + xxxxxx
+b xxxxxxxx +c xxxxxxxx
xxxxxxxxxx xxxxxxxxxx
xxxxxxxxxxxx xxxxxxxxxxxx
xxxxxxxxxxxxxx xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
xx xx
xxxxxxxxxxxxxxxx
xxxx
a yyyyyyyyyyyyyyyy a yyyyyyyyyyyyyyyy
+b yyyyyyyyyyyyyy +bc yyyyyyyyyyyyyy
yyyyyyyyyyyy yyyyyyyyyyyy
yyyyyyyyyy yyyyyyyyyy
yyyyyyyy yyyyyyyy
...@@ -832,15 +840,15 @@ execute q; ...@@ -832,15 +840,15 @@ execute q;
\pset border 1 \pset border 1
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|xx c|xx
a a
b|yyyyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyyyy
a ab
b|xxxx c|xxxx
xxxxxx xxxxxx
xxxxxxxx xxxxxxxx
xxxxxxxxxx xxxxxxxxxx
...@@ -850,7 +858,7 @@ xxxxxxxxxxxxxxxx ...@@ -850,7 +858,7 @@ xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx
a a
b|yyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyy
yyyyyyyyyyyyyy yyyyyyyyyyyyyy
yyyyyyyyyyyy yyyyyyyyyyyy
yyyyyyyyyy yyyyyyyyyy
...@@ -861,16 +869,16 @@ yy ...@@ -861,16 +869,16 @@ yy
\pset format aligned \pset format aligned
execute q; execute q;
-[ RECORD 1 ]----------- -[ RECORD 1 ]-------------
a | xx ab | xx
+ ; + ;
+b ; +c ;
a | yyyyyyyyyyyyyyyyyy a | yyyyyyyyyyyyyyyyyy
+b ; +bc ;
-[ RECORD 2 ]----------- -[ RECORD 2 ]-------------
a | xxxx ab | xxxx
+ : xxxxxx + : xxxxxx
+b : xxxxxxxx +c : xxxxxxxx
: xxxxxxxxxx : xxxxxxxxxx
: xxxxxxxxxxxx : xxxxxxxxxxxx
: xxxxxxxxxxxxxx : xxxxxxxxxxxxxx
...@@ -878,7 +886,7 @@ execute q; ...@@ -878,7 +886,7 @@ execute q;
: xxxxxxxxxxxxxxxxxx : xxxxxxxxxxxxxxxxxx
: xxxxxxxxxxxxxxxxxxxx : xxxxxxxxxxxxxxxxxxxx
a | yyyyyyyyyyyyyyyy a | yyyyyyyyyyyyyyyy
+b : yyyyyyyyyyyyyy +bc : yyyyyyyyyyyyyy
: yyyyyyyyyyyy : yyyyyyyyyyyy
: yyyyyyyyyy : yyyyyyyyyy
: yyyyyyyy : yyyyyyyy
...@@ -890,25 +898,27 @@ execute q; ...@@ -890,25 +898,27 @@ execute q;
\pset format wrapped \pset format wrapped
execute q; execute q;
-[ RECORD 1 ]------- -[ RECORD 1 ]-------
a | xx ab | xx
+ ; + ;
+b ; +c ;
a | yyyyyyyyyyyyyyyy a | yyyyyyyyyyyyyy
+b ; yy +bc ; yyyy
-[ RECORD 2 ]------- -[ RECORD 2 ]-------
a | xxxx ab | xxxx
+ : xxxxxx + : xxxxxx
+b : xxxxxxxx +c : xxxxxxxx
: xxxxxxxxxx : xxxxxxxxxx
: xxxxxxxxxxxx : xxxxxxxxxxxx
: xxxxxxxxxxxxxx : xxxxxxxxxxxxxx
: xxxxxxxxxxxxxxxx : xxxxxxxxxxxxxx
: xxxxxxxxxxxxxxxx
; xx ; xx
: xxxxxxxxxxxxxxxx : xxxxxxxxxxxxxx
; xxxx ; xxxx
a | yyyyyyyyyyyyyyyy : xxxxxxxxxxxxxx
+b : yyyyyyyyyyyyyy ; xxxxxx
a | yyyyyyyyyyyyyy
+bc ; yy
: yyyyyyyyyyyyyy
: yyyyyyyyyyyy : yyyyyyyyyyyy
: yyyyyyyyyy : yyyyyyyyyy
: yyyyyyyy : yyyyyyyy
...@@ -920,15 +930,15 @@ execute q; ...@@ -920,15 +930,15 @@ execute q;
\pset border 2 \pset border 2
\pset format unaligned \pset format unaligned
execute q; execute q;
a ab
b|xx c|xx
a a
b|yyyyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyyyy
a ab
b|xxxx c|xxxx
xxxxxx xxxxxx
xxxxxxxx xxxxxxxx
xxxxxxxxxx xxxxxxxxxx
...@@ -938,7 +948,7 @@ xxxxxxxxxxxxxxxx ...@@ -938,7 +948,7 @@ xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx
a a
b|yyyyyyyyyyyyyyyy bc|yyyyyyyyyyyyyyyy
yyyyyyyyyyyyyy yyyyyyyyyyyyyy
yyyyyyyyyyyy yyyyyyyyyyyy
yyyyyyyyyy yyyyyyyyyy
...@@ -949,16 +959,16 @@ yy ...@@ -949,16 +959,16 @@ yy
\pset format aligned \pset format aligned
execute q; execute q;
+-[ RECORD 1 ]-------------+ +-[ RECORD 1 ]--------------+
| a | xx | | ab | xx |
|+ ; | |+ ; |
|+b ; | |+c ; |
| a | yyyyyyyyyyyyyyyyyy | | a | yyyyyyyyyyyyyyyyyy |
|+b ; | |+bc ; |
+-[ RECORD 2 ]-------------+ +-[ RECORD 2 ]--------------+
| a | xxxx | | ab | xxxx |
|+ : xxxxxx | |+ : xxxxxx |
|+b : xxxxxxxx | |+c : xxxxxxxx |
| : xxxxxxxxxx | | : xxxxxxxxxx |
| : xxxxxxxxxxxx | | : xxxxxxxxxxxx |
| : xxxxxxxxxxxxxx | | : xxxxxxxxxxxxxx |
...@@ -966,7 +976,7 @@ execute q; ...@@ -966,7 +976,7 @@ execute q;
| : xxxxxxxxxxxxxxxxxx | | : xxxxxxxxxxxxxxxxxx |
| : xxxxxxxxxxxxxxxxxxxx | | : xxxxxxxxxxxxxxxxxxxx |
| a | yyyyyyyyyyyyyyyy | | a | yyyyyyyyyyyyyyyy |
|+b : yyyyyyyyyyyyyy | |+bc : yyyyyyyyyyyyyy |
| : yyyyyyyyyyyy | | : yyyyyyyyyyyy |
| : yyyyyyyyyy | | : yyyyyyyyyy |
| : yyyyyyyy | | : yyyyyyyy |
...@@ -974,41 +984,1139 @@ execute q; ...@@ -974,41 +984,1139 @@ execute q;
| : yyyy | | : yyyy |
| : yy | | : yy |
| : | | : |
+---+----------------------+ +----+----------------------+
\pset format wrapped \pset format wrapped
execute q; execute q;
+-[ RECORD 1 ]-----+ +-[ RECORD 1 ]-----+
| a | xx | | ab | xx |
|+ ; | |+ ; |
|+b ; | |+c ; |
| a | yyyyyyyyyyyy | | a | yyyyyyyyyyy |
|+b ; yyyyyy | |+bc ; yyyyyyy |
+-[ RECORD 2 ]-----+ +-[ RECORD 2 ]-----+
| a | xxxx | | ab | xxxx |
|+ : xxxxxx | |+ : xxxxxx |
|+b : xxxxxxxx | |+c : xxxxxxxx |
| : xxxxxxxxxx | | : xxxxxxxxxx |
| : xxxxxxxxxxxx | | : xxxxxxxxxxx |
| : xxxxxxxxxxxx | | ; x |
| ; xx | | : xxxxxxxxxxx |
| : xxxxxxxxxxxx | | ; xxx |
| ; xxxx | | : xxxxxxxxxxx |
| : xxxxxxxxxxxx | | ; xxxxx |
| ; xxxxxx | | : xxxxxxxxxxx |
| : xxxxxxxxxxxx | | ; xxxxxxx |
| ; xxxxxxxx | | : xxxxxxxxxxx |
| a | yyyyyyyyyyyy | | ; xxxxxxxxx |
|+b ; yyyy | | a | yyyyyyyyyyy |
| : yyyyyyyyyyyy | |+bc ; yyyyy |
| ; yy | | : yyyyyyyyyyy |
| : yyyyyyyyyyyy | | ; yyy |
| : yyyyyyyyyyy |
| ; y |
| : yyyyyyyyyy | | : yyyyyyyyyy |
| : yyyyyyyy | | : yyyyyyyy |
| : yyyyyy | | : yyyyyy |
| : yyyy | | : yyyy |
| : yy | | : yy |
| : | | : |
+---+--------------+ +----+-------------+
deallocate q;
-- test single-line header and data
prepare q as select repeat('x',2*n) as "0123456789abcdef", repeat('y',20-2*n) as "0123456789" from generate_series(1,10) as n;
\pset linestyle ascii
\pset expanded off
\pset columns 40
\pset border 0
\pset format unaligned
execute q;
0123456789abcdef|0123456789
xx|yyyyyyyyyyyyyyyyyy
xxxx|yyyyyyyyyyyyyyyy
xxxxxx|yyyyyyyyyyyyyy
xxxxxxxx|yyyyyyyyyyyy
xxxxxxxxxx|yyyyyyyyyy
xxxxxxxxxxxx|yyyyyyyy
xxxxxxxxxxxxxx|yyyyyy
xxxxxxxxxxxxxxxx|yyyy
xxxxxxxxxxxxxxxxxx|yy
xxxxxxxxxxxxxxxxxxxx|
(10 rows)
\pset format aligned
execute q;
0123456789abcdef 0123456789
-------------------- ------------------
xx yyyyyyyyyyyyyyyyyy
xxxx yyyyyyyyyyyyyyyy
xxxxxx yyyyyyyyyyyyyy
xxxxxxxx yyyyyyyyyyyy
xxxxxxxxxx yyyyyyyyyy
xxxxxxxxxxxx yyyyyyyy
xxxxxxxxxxxxxx yyyyyy
xxxxxxxxxxxxxxxx yyyy
xxxxxxxxxxxxxxxxxx yy
xxxxxxxxxxxxxxxxxxxx
(10 rows)
\pset format wrapped
execute q;
0123456789abcdef 0123456789
-------------------- ------------------
xx yyyyyyyyyyyyyyyyyy
xxxx yyyyyyyyyyyyyyyy
xxxxxx yyyyyyyyyyyyyy
xxxxxxxx yyyyyyyyyyyy
xxxxxxxxxx yyyyyyyyyy
xxxxxxxxxxxx yyyyyyyy
xxxxxxxxxxxxxx yyyyyy
xxxxxxxxxxxxxxxx yyyy
xxxxxxxxxxxxxxxxxx yy
xxxxxxxxxxxxxxxxxxxx
(10 rows)
\pset border 1
\pset format unaligned
execute q;
0123456789abcdef|0123456789
xx|yyyyyyyyyyyyyyyyyy
xxxx|yyyyyyyyyyyyyyyy
xxxxxx|yyyyyyyyyyyyyy
xxxxxxxx|yyyyyyyyyyyy
xxxxxxxxxx|yyyyyyyyyy
xxxxxxxxxxxx|yyyyyyyy
xxxxxxxxxxxxxx|yyyyyy
xxxxxxxxxxxxxxxx|yyyy
xxxxxxxxxxxxxxxxxx|yy
xxxxxxxxxxxxxxxxxxxx|
(10 rows)
\pset format aligned
execute q;
0123456789abcdef | 0123456789
----------------------+--------------------
xx | yyyyyyyyyyyyyyyyyy
xxxx | yyyyyyyyyyyyyyyy
xxxxxx | yyyyyyyyyyyyyy
xxxxxxxx | yyyyyyyyyyyy
xxxxxxxxxx | yyyyyyyyyy
xxxxxxxxxxxx | yyyyyyyy
xxxxxxxxxxxxxx | yyyyyy
xxxxxxxxxxxxxxxx | yyyy
xxxxxxxxxxxxxxxxxx | yy
xxxxxxxxxxxxxxxxxxxx |
(10 rows)
\pset format wrapped
execute q;
0123456789abcdef | 0123456789
---------------------+------------------
xx | yyyyyyyyyyyyyyyy.
|.yy
xxxx | yyyyyyyyyyyyyyyy
xxxxxx | yyyyyyyyyyyyyy
xxxxxxxx | yyyyyyyyyyyy
xxxxxxxxxx | yyyyyyyyyy
xxxxxxxxxxxx | yyyyyyyy
xxxxxxxxxxxxxx | yyyyyy
xxxxxxxxxxxxxxxx | yyyy
xxxxxxxxxxxxxxxxxx | yy
xxxxxxxxxxxxxxxxxxx.|
.x |
(10 rows)
\pset border 2
\pset format unaligned
execute q;
0123456789abcdef|0123456789
xx|yyyyyyyyyyyyyyyyyy
xxxx|yyyyyyyyyyyyyyyy
xxxxxx|yyyyyyyyyyyyyy
xxxxxxxx|yyyyyyyyyyyy
xxxxxxxxxx|yyyyyyyyyy
xxxxxxxxxxxx|yyyyyyyy
xxxxxxxxxxxxxx|yyyyyy
xxxxxxxxxxxxxxxx|yyyy
xxxxxxxxxxxxxxxxxx|yy
xxxxxxxxxxxxxxxxxxxx|
(10 rows)
\pset format aligned
execute q;
+----------------------+--------------------+
| 0123456789abcdef | 0123456789 |
+----------------------+--------------------+
| xx | yyyyyyyyyyyyyyyyyy |
| xxxx | yyyyyyyyyyyyyyyy |
| xxxxxx | yyyyyyyyyyyyyy |
| xxxxxxxx | yyyyyyyyyyyy |
| xxxxxxxxxx | yyyyyyyyyy |
| xxxxxxxxxxxx | yyyyyyyy |
| xxxxxxxxxxxxxx | yyyyyy |
| xxxxxxxxxxxxxxxx | yyyy |
| xxxxxxxxxxxxxxxxxx | yy |
| xxxxxxxxxxxxxxxxxxxx | |
+----------------------+--------------------+
(10 rows)
\pset format wrapped
execute q;
+--------------------+-----------------+
| 0123456789abcdef | 0123456789 |
+--------------------+-----------------+
| xx | yyyyyyyyyyyyyyy.|
| |.yyy |
| xxxx | yyyyyyyyyyyyyyy.|
| |.y |
| xxxxxx | yyyyyyyyyyyyyy |
| xxxxxxxx | yyyyyyyyyyyy |
| xxxxxxxxxx | yyyyyyyyyy |
| xxxxxxxxxxxx | yyyyyyyy |
| xxxxxxxxxxxxxx | yyyyyy |
| xxxxxxxxxxxxxxxx | yyyy |
| xxxxxxxxxxxxxxxxxx | yy |
| xxxxxxxxxxxxxxxxxx.| |
|.xx | |
+--------------------+-----------------+
(10 rows)
\pset expanded on
\pset columns 20
\pset border 0
\pset format unaligned
execute q;
0123456789abcdef|xx
0123456789|yyyyyyyyyyyyyyyyyy
0123456789abcdef|xxxx
0123456789|yyyyyyyyyyyyyyyy
0123456789abcdef|xxxxxx
0123456789|yyyyyyyyyyyyyy
0123456789abcdef|xxxxxxxx
0123456789|yyyyyyyyyyyy
0123456789abcdef|xxxxxxxxxx
0123456789|yyyyyyyyyy
0123456789abcdef|xxxxxxxxxxxx
0123456789|yyyyyyyy
0123456789abcdef|xxxxxxxxxxxxxx
0123456789|yyyyyy
0123456789abcdef|xxxxxxxxxxxxxxxx
0123456789|yyyy
0123456789abcdef|xxxxxxxxxxxxxxxxxx
0123456789|yy
0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
0123456789|
\pset format aligned
execute q;
* Record 1
0123456789abcdef xx
0123456789 yyyyyyyyyyyyyyyyyy
* Record 2
0123456789abcdef xxxx
0123456789 yyyyyyyyyyyyyyyy
* Record 3
0123456789abcdef xxxxxx
0123456789 yyyyyyyyyyyyyy
* Record 4
0123456789abcdef xxxxxxxx
0123456789 yyyyyyyyyyyy
* Record 5
0123456789abcdef xxxxxxxxxx
0123456789 yyyyyyyyyy
* Record 6
0123456789abcdef xxxxxxxxxxxx
0123456789 yyyyyyyy
* Record 7
0123456789abcdef xxxxxxxxxxxxxx
0123456789 yyyyyy
* Record 8
0123456789abcdef xxxxxxxxxxxxxxxx
0123456789 yyyy
* Record 9
0123456789abcdef xxxxxxxxxxxxxxxxxx
0123456789 yy
* Record 10
0123456789abcdef xxxxxxxxxxxxxxxxxxxx
0123456789
\pset format wrapped
execute q;
* Record 1
0123456789abcdef xx
0123456789 yy.
.yy.
.yy.
.yy.
.yy.
.yy.
.yy.
.yy.
.yy
* Record 2
0123456789abcdef xx.
.xx
0123456789 yy.
.yy.
.yy.
.yy.
.yy.
.yy.
.yy.
.yy
* Record 3
0123456789abcdef xx.
.xx.
.xx
0123456789 yy.
.yy.
.yy.
.yy.
.yy.
.yy.
.yy
* Record 4
0123456789abcdef xx.
.xx.
.xx.
.xx
0123456789 yy.
.yy.
.yy.
.yy.
.yy.
.yy
* Record 5
0123456789abcdef xx.
.xx.
.xx.
.xx.
.xx
0123456789 yy.
.yy.
.yy.
.yy.
.yy
* Record 6
0123456789abcdef xx.
.xx.
.xx.
.xx.
.xx.
.xx
0123456789 yy.
.yy.
.yy.
.yy
* Record 7
0123456789abcdef xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx
0123456789 yy.
.yy.
.yy
* Record 8
0123456789abcdef xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx
0123456789 yy.
.yy
* Record 9
0123456789abcdef xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx
0123456789 yy
* Record 10
0123456789abcdef xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx.
.xx
0123456789
\pset border 1
\pset format unaligned
execute q;
0123456789abcdef|xx
0123456789|yyyyyyyyyyyyyyyyyy
0123456789abcdef|xxxx
0123456789|yyyyyyyyyyyyyyyy
0123456789abcdef|xxxxxx
0123456789|yyyyyyyyyyyyyy
0123456789abcdef|xxxxxxxx
0123456789|yyyyyyyyyyyy
0123456789abcdef|xxxxxxxxxx
0123456789|yyyyyyyyyy
0123456789abcdef|xxxxxxxxxxxx
0123456789|yyyyyyyy
0123456789abcdef|xxxxxxxxxxxxxx
0123456789|yyyyyy
0123456789abcdef|xxxxxxxxxxxxxxxx
0123456789|yyyy
0123456789abcdef|xxxxxxxxxxxxxxxxxx
0123456789|yy
0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
0123456789|
\pset format aligned
execute q;
-[ RECORD 1 ]----+---------------------
0123456789abcdef | xx
0123456789 | yyyyyyyyyyyyyyyyyy
-[ RECORD 2 ]----+---------------------
0123456789abcdef | xxxx
0123456789 | yyyyyyyyyyyyyyyy
-[ RECORD 3 ]----+---------------------
0123456789abcdef | xxxxxx
0123456789 | yyyyyyyyyyyyyy
-[ RECORD 4 ]----+---------------------
0123456789abcdef | xxxxxxxx
0123456789 | yyyyyyyyyyyy
-[ RECORD 5 ]----+---------------------
0123456789abcdef | xxxxxxxxxx
0123456789 | yyyyyyyyyy
-[ RECORD 6 ]----+---------------------
0123456789abcdef | xxxxxxxxxxxx
0123456789 | yyyyyyyy
-[ RECORD 7 ]----+---------------------
0123456789abcdef | xxxxxxxxxxxxxx
0123456789 | yyyyyy
-[ RECORD 8 ]----+---------------------
0123456789abcdef | xxxxxxxxxxxxxxxx
0123456789 | yyyy
-[ RECORD 9 ]----+---------------------
0123456789abcdef | xxxxxxxxxxxxxxxxxx
0123456789 | yy
-[ RECORD 10 ]---+---------------------
0123456789abcdef | xxxxxxxxxxxxxxxxxxxx
0123456789 |
\pset format wrapped
execute q;
-[ RECORD 1 ]----+----
0123456789abcdef | xx
0123456789 | yyy.
|.yyy.
|.yyy.
|.yyy.
|.yyy.
|.yyy
-[ RECORD 2 ]----+----
0123456789abcdef | xxx.
|.x
0123456789 | yyy.
|.yyy.
|.yyy.
|.yyy.
|.yyy.
|.y
-[ RECORD 3 ]----+----
0123456789abcdef | xxx.
|.xxx
0123456789 | yyy.
|.yyy.
|.yyy.
|.yyy.
|.yy
-[ RECORD 4 ]----+----
0123456789abcdef | xxx.
|.xxx.
|.xx
0123456789 | yyy.
|.yyy.
|.yyy.
|.yyy
-[ RECORD 5 ]----+----
0123456789abcdef | xxx.
|.xxx.
|.xxx.
|.x
0123456789 | yyy.
|.yyy.
|.yyy.
|.y
-[ RECORD 6 ]----+----
0123456789abcdef | xxx.
|.xxx.
|.xxx.
|.xxx
0123456789 | yyy.
|.yyy.
|.yy
-[ RECORD 7 ]----+----
0123456789abcdef | xxx.
|.xxx.
|.xxx.
|.xxx.
|.xx
0123456789 | yyy.
|.yyy
-[ RECORD 8 ]----+----
0123456789abcdef | xxx.
|.xxx.
|.xxx.
|.xxx.
|.xxx.
|.x
0123456789 | yyy.
|.y
-[ RECORD 9 ]----+----
0123456789abcdef | xxx.
|.xxx.
|.xxx.
|.xxx.
|.xxx.
|.xxx
0123456789 | yy
-[ RECORD 10 ]---+----
0123456789abcdef | xxx.
|.xxx.
|.xxx.
|.xxx.
|.xxx.
|.xxx.
|.xx
0123456789 |
\pset border 2
\pset format unaligned
execute q;
0123456789abcdef|xx
0123456789|yyyyyyyyyyyyyyyyyy
0123456789abcdef|xxxx
0123456789|yyyyyyyyyyyyyyyy
0123456789abcdef|xxxxxx
0123456789|yyyyyyyyyyyyyy
0123456789abcdef|xxxxxxxx
0123456789|yyyyyyyyyyyy
0123456789abcdef|xxxxxxxxxx
0123456789|yyyyyyyyyy
0123456789abcdef|xxxxxxxxxxxx
0123456789|yyyyyyyy
0123456789abcdef|xxxxxxxxxxxxxx
0123456789|yyyyyy
0123456789abcdef|xxxxxxxxxxxxxxxx
0123456789|yyyy
0123456789abcdef|xxxxxxxxxxxxxxxxxx
0123456789|yy
0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
0123456789|
\pset format aligned
execute q;
+-[ RECORD 1 ]-----+----------------------+
| 0123456789abcdef | xx |
| 0123456789 | yyyyyyyyyyyyyyyyyy |
+-[ RECORD 2 ]-----+----------------------+
| 0123456789abcdef | xxxx |
| 0123456789 | yyyyyyyyyyyyyyyy |
+-[ RECORD 3 ]-----+----------------------+
| 0123456789abcdef | xxxxxx |
| 0123456789 | yyyyyyyyyyyyyy |
+-[ RECORD 4 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxx |
| 0123456789 | yyyyyyyyyyyy |
+-[ RECORD 5 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxx |
| 0123456789 | yyyyyyyyyy |
+-[ RECORD 6 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxx |
| 0123456789 | yyyyyyyy |
+-[ RECORD 7 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxxxx |
| 0123456789 | yyyyyy |
+-[ RECORD 8 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxxxxxx |
| 0123456789 | yyyy |
+-[ RECORD 9 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxxxxxxxx |
| 0123456789 | yy |
+-[ RECORD 10 ]----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxxxxxxxxxx |
| 0123456789 | |
+------------------+----------------------+
\pset format wrapped
execute q;
+-[ RECORD 1 ]-----+-----+
| 0123456789abcdef | xx |
| 0123456789 | yyy.|
| |.yyy.|
| |.yyy.|
| |.yyy.|
| |.yyy.|
| |.yyy |
+-[ RECORD 2 ]-----+-----+
| 0123456789abcdef | xxx.|
| |.x |
| 0123456789 | yyy.|
| |.yyy.|
| |.yyy.|
| |.yyy.|
| |.yyy.|
| |.y |
+-[ RECORD 3 ]-----+-----+
| 0123456789abcdef | xxx.|
| |.xxx |
| 0123456789 | yyy.|
| |.yyy.|
| |.yyy.|
| |.yyy.|
| |.yy |
+-[ RECORD 4 ]-----+-----+
| 0123456789abcdef | xxx.|
| |.xxx.|
| |.xx |
| 0123456789 | yyy.|
| |.yyy.|
| |.yyy.|
| |.yyy |
+-[ RECORD 5 ]-----+-----+
| 0123456789abcdef | xxx.|
| |.xxx.|
| |.xxx.|
| |.x |
| 0123456789 | yyy.|
| |.yyy.|
| |.yyy.|
| |.y |
+-[ RECORD 6 ]-----+-----+
| 0123456789abcdef | xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx |
| 0123456789 | yyy.|
| |.yyy.|
| |.yy |
+-[ RECORD 7 ]-----+-----+
| 0123456789abcdef | xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx.|
| |.xx |
| 0123456789 | yyy.|
| |.yyy |
+-[ RECORD 8 ]-----+-----+
| 0123456789abcdef | xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx.|
| |.x |
| 0123456789 | yyy.|
| |.y |
+-[ RECORD 9 ]-----+-----+
| 0123456789abcdef | xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx |
| 0123456789 | yy |
+-[ RECORD 10 ]----+-----+
| 0123456789abcdef | xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx.|
| |.xxx.|
| |.xx |
| 0123456789 | |
+------------------+-----+
\pset linestyle old-ascii
\pset expanded off
\pset columns 40
\pset border 0
\pset format unaligned
execute q;
0123456789abcdef|0123456789
xx|yyyyyyyyyyyyyyyyyy
xxxx|yyyyyyyyyyyyyyyy
xxxxxx|yyyyyyyyyyyyyy
xxxxxxxx|yyyyyyyyyyyy
xxxxxxxxxx|yyyyyyyyyy
xxxxxxxxxxxx|yyyyyyyy
xxxxxxxxxxxxxx|yyyyyy
xxxxxxxxxxxxxxxx|yyyy
xxxxxxxxxxxxxxxxxx|yy
xxxxxxxxxxxxxxxxxxxx|
(10 rows)
\pset format aligned
execute q;
0123456789abcdef 0123456789
-------------------- ------------------
xx yyyyyyyyyyyyyyyyyy
xxxx yyyyyyyyyyyyyyyy
xxxxxx yyyyyyyyyyyyyy
xxxxxxxx yyyyyyyyyyyy
xxxxxxxxxx yyyyyyyyyy
xxxxxxxxxxxx yyyyyyyy
xxxxxxxxxxxxxx yyyyyy
xxxxxxxxxxxxxxxx yyyy
xxxxxxxxxxxxxxxxxx yy
xxxxxxxxxxxxxxxxxxxx
(10 rows)
\pset format wrapped
execute q;
0123456789abcdef 0123456789
-------------------- ------------------
xx yyyyyyyyyyyyyyyyyy
xxxx yyyyyyyyyyyyyyyy
xxxxxx yyyyyyyyyyyyyy
xxxxxxxx yyyyyyyyyyyy
xxxxxxxxxx yyyyyyyyyy
xxxxxxxxxxxx yyyyyyyy
xxxxxxxxxxxxxx yyyyyy
xxxxxxxxxxxxxxxx yyyy
xxxxxxxxxxxxxxxxxx yy
xxxxxxxxxxxxxxxxxxxx
(10 rows)
\pset border 1
\pset format unaligned
execute q;
0123456789abcdef|0123456789
xx|yyyyyyyyyyyyyyyyyy
xxxx|yyyyyyyyyyyyyyyy
xxxxxx|yyyyyyyyyyyyyy
xxxxxxxx|yyyyyyyyyyyy
xxxxxxxxxx|yyyyyyyyyy
xxxxxxxxxxxx|yyyyyyyy
xxxxxxxxxxxxxx|yyyyyy
xxxxxxxxxxxxxxxx|yyyy
xxxxxxxxxxxxxxxxxx|yy
xxxxxxxxxxxxxxxxxxxx|
(10 rows)
\pset format aligned
execute q;
0123456789abcdef | 0123456789
----------------------+--------------------
xx | yyyyyyyyyyyyyyyyyy
xxxx | yyyyyyyyyyyyyyyy
xxxxxx | yyyyyyyyyyyyyy
xxxxxxxx | yyyyyyyyyyyy
xxxxxxxxxx | yyyyyyyyyy
xxxxxxxxxxxx | yyyyyyyy
xxxxxxxxxxxxxx | yyyyyy
xxxxxxxxxxxxxxxx | yyyy
xxxxxxxxxxxxxxxxxx | yy
xxxxxxxxxxxxxxxxxxxx |
(10 rows)
\pset format wrapped
execute q;
0123456789abcdef | 0123456789
---------------------+------------------
xx | yyyyyyyyyyyyyyyy
; yy
xxxx | yyyyyyyyyyyyyyyy
xxxxxx | yyyyyyyyyyyyyy
xxxxxxxx | yyyyyyyyyyyy
xxxxxxxxxx | yyyyyyyyyy
xxxxxxxxxxxx | yyyyyyyy
xxxxxxxxxxxxxx | yyyyyy
xxxxxxxxxxxxxxxx | yyyy
xxxxxxxxxxxxxxxxxx | yy
xxxxxxxxxxxxxxxxxxx |
x
(10 rows)
\pset border 2
\pset format unaligned
execute q;
0123456789abcdef|0123456789
xx|yyyyyyyyyyyyyyyyyy
xxxx|yyyyyyyyyyyyyyyy
xxxxxx|yyyyyyyyyyyyyy
xxxxxxxx|yyyyyyyyyyyy
xxxxxxxxxx|yyyyyyyyyy
xxxxxxxxxxxx|yyyyyyyy
xxxxxxxxxxxxxx|yyyyyy
xxxxxxxxxxxxxxxx|yyyy
xxxxxxxxxxxxxxxxxx|yy
xxxxxxxxxxxxxxxxxxxx|
(10 rows)
\pset format aligned
execute q;
+----------------------+--------------------+
| 0123456789abcdef | 0123456789 |
+----------------------+--------------------+
| xx | yyyyyyyyyyyyyyyyyy |
| xxxx | yyyyyyyyyyyyyyyy |
| xxxxxx | yyyyyyyyyyyyyy |
| xxxxxxxx | yyyyyyyyyyyy |
| xxxxxxxxxx | yyyyyyyyyy |
| xxxxxxxxxxxx | yyyyyyyy |
| xxxxxxxxxxxxxx | yyyyyy |
| xxxxxxxxxxxxxxxx | yyyy |
| xxxxxxxxxxxxxxxxxx | yy |
| xxxxxxxxxxxxxxxxxxxx | |
+----------------------+--------------------+
(10 rows)
\pset format wrapped
execute q;
+--------------------+-----------------+
| 0123456789abcdef | 0123456789 |
+--------------------+-----------------+
| xx | yyyyyyyyyyyyyyy |
| ; yyy |
| xxxx | yyyyyyyyyyyyyyy |
| ; y |
| xxxxxx | yyyyyyyyyyyyyy |
| xxxxxxxx | yyyyyyyyyyyy |
| xxxxxxxxxx | yyyyyyyyyy |
| xxxxxxxxxxxx | yyyyyyyy |
| xxxxxxxxxxxxxx | yyyyyy |
| xxxxxxxxxxxxxxxx | yyyy |
| xxxxxxxxxxxxxxxxxx | yy |
| xxxxxxxxxxxxxxxxxx | |
| xx |
+--------------------+-----------------+
(10 rows)
\pset expanded on
\pset border 0
\pset format unaligned
execute q;
0123456789abcdef|xx
0123456789|yyyyyyyyyyyyyyyyyy
0123456789abcdef|xxxx
0123456789|yyyyyyyyyyyyyyyy
0123456789abcdef|xxxxxx
0123456789|yyyyyyyyyyyyyy
0123456789abcdef|xxxxxxxx
0123456789|yyyyyyyyyyyy
0123456789abcdef|xxxxxxxxxx
0123456789|yyyyyyyyyy
0123456789abcdef|xxxxxxxxxxxx
0123456789|yyyyyyyy
0123456789abcdef|xxxxxxxxxxxxxx
0123456789|yyyyyy
0123456789abcdef|xxxxxxxxxxxxxxxx
0123456789|yyyy
0123456789abcdef|xxxxxxxxxxxxxxxxxx
0123456789|yy
0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
0123456789|
\pset format aligned
execute q;
* Record 1
0123456789abcdef xx
0123456789 yyyyyyyyyyyyyyyyyy
* Record 2
0123456789abcdef xxxx
0123456789 yyyyyyyyyyyyyyyy
* Record 3
0123456789abcdef xxxxxx
0123456789 yyyyyyyyyyyyyy
* Record 4
0123456789abcdef xxxxxxxx
0123456789 yyyyyyyyyyyy
* Record 5
0123456789abcdef xxxxxxxxxx
0123456789 yyyyyyyyyy
* Record 6
0123456789abcdef xxxxxxxxxxxx
0123456789 yyyyyyyy
* Record 7
0123456789abcdef xxxxxxxxxxxxxx
0123456789 yyyyyy
* Record 8
0123456789abcdef xxxxxxxxxxxxxxxx
0123456789 yyyy
* Record 9
0123456789abcdef xxxxxxxxxxxxxxxxxx
0123456789 yy
* Record 10
0123456789abcdef xxxxxxxxxxxxxxxxxxxx
0123456789
\pset format wrapped
execute q;
* Record 1
0123456789abcdef xx
0123456789 yyyyyyyyyyyyyyyyyy
* Record 2
0123456789abcdef xxxx
0123456789 yyyyyyyyyyyyyyyy
* Record 3
0123456789abcdef xxxxxx
0123456789 yyyyyyyyyyyyyy
* Record 4
0123456789abcdef xxxxxxxx
0123456789 yyyyyyyyyyyy
* Record 5
0123456789abcdef xxxxxxxxxx
0123456789 yyyyyyyyyy
* Record 6
0123456789abcdef xxxxxxxxxxxx
0123456789 yyyyyyyy
* Record 7
0123456789abcdef xxxxxxxxxxxxxx
0123456789 yyyyyy
* Record 8
0123456789abcdef xxxxxxxxxxxxxxxx
0123456789 yyyy
* Record 9
0123456789abcdef xxxxxxxxxxxxxxxxxx
0123456789 yy
* Record 10
0123456789abcdef xxxxxxxxxxxxxxxxxxxx
0123456789
\pset border 1
\pset format unaligned
execute q;
0123456789abcdef|xx
0123456789|yyyyyyyyyyyyyyyyyy
0123456789abcdef|xxxx
0123456789|yyyyyyyyyyyyyyyy
0123456789abcdef|xxxxxx
0123456789|yyyyyyyyyyyyyy
0123456789abcdef|xxxxxxxx
0123456789|yyyyyyyyyyyy
0123456789abcdef|xxxxxxxxxx
0123456789|yyyyyyyyyy
0123456789abcdef|xxxxxxxxxxxx
0123456789|yyyyyyyy
0123456789abcdef|xxxxxxxxxxxxxx
0123456789|yyyyyy
0123456789abcdef|xxxxxxxxxxxxxxxx
0123456789|yyyy
0123456789abcdef|xxxxxxxxxxxxxxxxxx
0123456789|yy
0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
0123456789|
\pset format aligned
execute q;
-[ RECORD 1 ]----+---------------------
0123456789abcdef | xx
0123456789 | yyyyyyyyyyyyyyyyyy
-[ RECORD 2 ]----+---------------------
0123456789abcdef | xxxx
0123456789 | yyyyyyyyyyyyyyyy
-[ RECORD 3 ]----+---------------------
0123456789abcdef | xxxxxx
0123456789 | yyyyyyyyyyyyyy
-[ RECORD 4 ]----+---------------------
0123456789abcdef | xxxxxxxx
0123456789 | yyyyyyyyyyyy
-[ RECORD 5 ]----+---------------------
0123456789abcdef | xxxxxxxxxx
0123456789 | yyyyyyyyyy
-[ RECORD 6 ]----+---------------------
0123456789abcdef | xxxxxxxxxxxx
0123456789 | yyyyyyyy
-[ RECORD 7 ]----+---------------------
0123456789abcdef | xxxxxxxxxxxxxx
0123456789 | yyyyyy
-[ RECORD 8 ]----+---------------------
0123456789abcdef | xxxxxxxxxxxxxxxx
0123456789 | yyyy
-[ RECORD 9 ]----+---------------------
0123456789abcdef | xxxxxxxxxxxxxxxxxx
0123456789 | yy
-[ RECORD 10 ]---+---------------------
0123456789abcdef | xxxxxxxxxxxxxxxxxxxx
0123456789 |
\pset format wrapped
execute q;
-[ RECORD 1 ]----+----------------------
0123456789abcdef | xx
0123456789 | yyyyyyyyyyyyyyyyyy
-[ RECORD 2 ]----+----------------------
0123456789abcdef | xxxx
0123456789 | yyyyyyyyyyyyyyyy
-[ RECORD 3 ]----+----------------------
0123456789abcdef | xxxxxx
0123456789 | yyyyyyyyyyyyyy
-[ RECORD 4 ]----+----------------------
0123456789abcdef | xxxxxxxx
0123456789 | yyyyyyyyyyyy
-[ RECORD 5 ]----+----------------------
0123456789abcdef | xxxxxxxxxx
0123456789 | yyyyyyyyyy
-[ RECORD 6 ]----+----------------------
0123456789abcdef | xxxxxxxxxxxx
0123456789 | yyyyyyyy
-[ RECORD 7 ]----+----------------------
0123456789abcdef | xxxxxxxxxxxxxx
0123456789 | yyyyyy
-[ RECORD 8 ]----+----------------------
0123456789abcdef | xxxxxxxxxxxxxxxx
0123456789 | yyyy
-[ RECORD 9 ]----+----------------------
0123456789abcdef | xxxxxxxxxxxxxxxxxx
0123456789 | yy
-[ RECORD 10 ]---+----------------------
0123456789abcdef | xxxxxxxxxxxxxxxxxxxx
0123456789 |
\pset border 2
\pset format unaligned
execute q;
0123456789abcdef|xx
0123456789|yyyyyyyyyyyyyyyyyy
0123456789abcdef|xxxx
0123456789|yyyyyyyyyyyyyyyy
0123456789abcdef|xxxxxx
0123456789|yyyyyyyyyyyyyy
0123456789abcdef|xxxxxxxx
0123456789|yyyyyyyyyyyy
0123456789abcdef|xxxxxxxxxx
0123456789|yyyyyyyyyy
0123456789abcdef|xxxxxxxxxxxx
0123456789|yyyyyyyy
0123456789abcdef|xxxxxxxxxxxxxx
0123456789|yyyyyy
0123456789abcdef|xxxxxxxxxxxxxxxx
0123456789|yyyy
0123456789abcdef|xxxxxxxxxxxxxxxxxx
0123456789|yy
0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
0123456789|
\pset format aligned
execute q;
+-[ RECORD 1 ]-----+----------------------+
| 0123456789abcdef | xx |
| 0123456789 | yyyyyyyyyyyyyyyyyy |
+-[ RECORD 2 ]-----+----------------------+
| 0123456789abcdef | xxxx |
| 0123456789 | yyyyyyyyyyyyyyyy |
+-[ RECORD 3 ]-----+----------------------+
| 0123456789abcdef | xxxxxx |
| 0123456789 | yyyyyyyyyyyyyy |
+-[ RECORD 4 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxx |
| 0123456789 | yyyyyyyyyyyy |
+-[ RECORD 5 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxx |
| 0123456789 | yyyyyyyyyy |
+-[ RECORD 6 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxx |
| 0123456789 | yyyyyyyy |
+-[ RECORD 7 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxxxx |
| 0123456789 | yyyyyy |
+-[ RECORD 8 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxxxxxx |
| 0123456789 | yyyy |
+-[ RECORD 9 ]-----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxxxxxxxx |
| 0123456789 | yy |
+-[ RECORD 10 ]----+----------------------+
| 0123456789abcdef | xxxxxxxxxxxxxxxxxxxx |
| 0123456789 | |
+------------------+----------------------+
\pset format wrapped
execute q;
+-[ RECORD 1 ]-----+-------------------+
| 0123456789abcdef | xx |
| 0123456789 | yyyyyyyyyyyyyyyyy |
| ; y |
+-[ RECORD 2 ]-----+-------------------+
| 0123456789abcdef | xxxx |
| 0123456789 | yyyyyyyyyyyyyyyy |
+-[ RECORD 3 ]-----+-------------------+
| 0123456789abcdef | xxxxxx |
| 0123456789 | yyyyyyyyyyyyyy |
+-[ RECORD 4 ]-----+-------------------+
| 0123456789abcdef | xxxxxxxx |
| 0123456789 | yyyyyyyyyyyy |
+-[ RECORD 5 ]-----+-------------------+
| 0123456789abcdef | xxxxxxxxxx |
| 0123456789 | yyyyyyyyyy |
+-[ RECORD 6 ]-----+-------------------+
| 0123456789abcdef | xxxxxxxxxxxx |
| 0123456789 | yyyyyyyy |
+-[ RECORD 7 ]-----+-------------------+
| 0123456789abcdef | xxxxxxxxxxxxxx |
| 0123456789 | yyyyyy |
+-[ RECORD 8 ]-----+-------------------+
| 0123456789abcdef | xxxxxxxxxxxxxxxx |
| 0123456789 | yyyy |
+-[ RECORD 9 ]-----+-------------------+
| 0123456789abcdef | xxxxxxxxxxxxxxxxx |
| ; x |
| 0123456789 | yy |
+-[ RECORD 10 ]----+-------------------+
| 0123456789abcdef | xxxxxxxxxxxxxxxxx |
| ; xxx |
| 0123456789 | |
+------------------+-------------------+
deallocate q; deallocate q;
...@@ -42,10 +42,10 @@ select 10 as test01, 20 as test02 from generate_series(1,0) \gset ...@@ -42,10 +42,10 @@ select 10 as test01, 20 as test02 from generate_series(1,0) \gset
\pset \pset
-- test multi-line headers, wrapping, and newline indicators -- 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 prepare q as select array_to_string(array_agg(repeat('x',2*n)),E'\n') as "ab
b", array_to_string(array_agg(repeat('y',20-2*n)),E'\n') as "a c", 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 ; bc" from generate_series(1,10) as n(n) group by n>1 ;
\pset linestyle ascii \pset linestyle ascii
...@@ -160,3 +160,119 @@ execute q; ...@@ -160,3 +160,119 @@ execute q;
execute q; execute q;
deallocate q; deallocate q;
-- test single-line header and data
prepare q as select repeat('x',2*n) as "0123456789abcdef", repeat('y',20-2*n) as "0123456789" from generate_series(1,10) as n;
\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 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;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment