Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
458ef6ba
Commit
458ef6ba
authored
Aug 18, 2014
by
Greg Stark
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix further concerns about psql wrapping in expanded mode having
collateral damage on other formats, by Sergey Muraviov.
parent
48d50840
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1752 additions
and
429 deletions
+1752
-429
src/bin/psql/print.c
src/bin/psql/print.c
+148
-49
src/test/regress/expected/psql.out
src/test/regress/expected/psql.out
+1485
-377
src/test/regress/sql/psql.sql
src/test/regress/sql/psql.sql
+119
-3
No files found.
src/bin/psql/print.c
View file @
458ef6ba
...
@@ -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
,
d
width
,
print_aligned_vertical_line
(
cont
,
record
++
,
lh
width
,
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
,
l
hwidth
,
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
);
...
...
src/test/regress/expected/psql.out
View file @
458ef6ba
...
@@ -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 "a
b
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 ;
b
c
" 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
a
b
b
|a
c
|a
b
b
c
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 +
a
b
+ a +
+ b
+ b
c
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 +
a
b
+ a +
+ b
+ b
c
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
a
b
b
|a
c
|a
b
b
c
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 +
a
b
+| a +
+| b
+| b
c
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
+| b
c
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
a
b
b
|a
c
|a
b
b
c
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 +|
| a
b
+| a +|
| +| b
|
| +| b
c
|
|
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
|
| +| b
c
|
|
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
a
b
b
|xx
c
|xx
a
a
b|yyyyyyyyyyyyyyyyyy
b
c
|yyyyyyyyyyyyyyyyyy
a
a
b
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
b
c
|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
a
b
b
|xx
c
|xx
a
a
b|yyyyyyyyyyyyyyyyyy
b
c
|yyyyyyyyyyyyyyyyyy
a
a
b
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
b
c
|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+| yy
yyyyyyyyyyyyyy.
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
a
b
b
|xx
c
|xx
a
a
b|yyyyyyyyyyyyyyyyyy
b
c
|yyyyyyyyyyyyyyyyyy
a
a
b
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
b
c
|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 |
| a
b
+| xx |
| +| |
| +| |
|
b
| |
|
c
| |
| a+| yyyyyyyyyyyyyyyyyy |
| a
+| yyyyyyyyyyyyyyyyyy |
| b | |
| b
c
| |
+-[ RECORD 2 ]-------------+
+-[ RECORD 2 ]-------------
-
+
| a+| xxxx +|
| a
b
+| 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 +|
| b
c
| 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
|
| a
b+| xx
|
| +| |
| +| |
|
b |
|
|
c |
|
| a
+| y
yyyyyyyyyyy.|
| a
+|
yyyyyyyyyyy.|
| b
|.yyyyyy
|
| b
c |.yyyyyyy
|
+-[ RECORD 2 ]-----+
+-[ RECORD 2 ]-----+
| a
+| xxxx
+|
| a
b+| 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
a
b
b
|a
c
|a
b
b
c
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
a
b
a
+ b
+ b
c
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
a
b
a
+ b
+ b
c
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
a
b
b
|a
c
|a
b
b
c
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
a
b
| a
+ |+ b
+ |+ b
c
+
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
+ |+ b
c
+
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
a
b
b
|a
c
|a
b
b
c
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 |
| a
b
| a |
|+ |+ b
|
|+ |+ b
c
|
|+
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
|
|+ |+ b
c
|
|+
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
a
b
b
|xx
c
|xx
a
a
b|yyyyyyyyyyyyyyyyyy
b
c
|yyyyyyyyyyyyyyyyyy
a
a
b
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
b
c
|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
a
b xx
+
+
+
b
+
c
a yyyyyyyyyyyyyyyyyy
a yyyyyyyyyyyyyyyyyy
+b
+b
c
* Record 2
* Record 2
a
xxxx
a
b 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
+b
c 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
a
b xx
+
+
+
b
+
c
a yyyyyyyyyyyyyyyy
yy
a yyyyyyyyyyyyyyyy
+b
+b
c yy
* Record 2
* Record 2
a
xxxx
a
b 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
+b
c 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
a
b
b
|xx
c
|xx
a
a
b|yyyyyyyyyyyyyyyyyy
b
c
|yyyyyyyyyyyyyyyyyy
a
a
b
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
b
c
|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
a
b | xx
+ ;
+ ;
+
b
;
+
c
;
a | yyyyyyyyyyyyyyyyyy
a | yyyyyyyyyyyyyyyyyy
+b ;
+b
c
;
-[ RECORD 2 ]-----------
-[ RECORD 2 ]-----------
--
a
| xxxx
a
b | 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
+b
c : 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
a
b | xx
+ ;
+ ;
+
b
;
+
c
;
a
| yyyyyyyyyyyyyyyy
a
| yyyyyyyyyyyyyy
+b
; yy
+b
c ; yyyy
-[ RECORD 2 ]-------
-[ RECORD 2 ]-------
a
| xxxx
a
b | 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
a
b
b
|xx
c
|xx
a
a
b|yyyyyyyyyyyyyyyyyy
b
c
|yyyyyyyyyyyyyyyyyy
a
a
b
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
b
c
|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 |
| a
b
| xx |
|+ ; |
|+ ; |
|+
b
; |
|+
c
; |
| a | yyyyyyyyyyyyyyyyyy |
| a | yyyyyyyyyyyyyyyyyy |
|+b ; |
|+b
c
; |
+-[ RECORD 2 ]-------------+
+-[ RECORD 2 ]-------------
-
+
| a | xxxx |
| a
b
| 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 |
|+b
c
: 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
|
| a
b | xx
|
|+ ; |
|+ ; |
|+
b ;
|
|+
c ;
|
| a
| y
yyyyyyyyyyy |
| a
|
yyyyyyyyyyy |
|+b
; yyyyyy
|
|+b
c ; yyyyyyy
|
+-[ RECORD 2 ]-----+
+-[ RECORD 2 ]-----+
| a
| xxxx
|
| a
b | 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;
src/test/regress/sql/psql.sql
View file @
458ef6ba
...
@@ -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
"a
b
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
;
b
c
"
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
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment