2 -- Tests for psql features that aren't closely connected to any
3 -- specific server features
8 invalid variable name: "invalid/name"
9 -- fail: invalid value for special variable
11 unrecognized value "foo" for "AUTOCOMMIT": Boolean expected
13 invalid value "foo" for "FETCH_COUNT": integer expected
14 -- check handling of built-in boolean variable
15 \echo :ON_ERROR_ROLLBACK
17 \set ON_ERROR_ROLLBACK
18 \echo :ON_ERROR_ROLLBACK
20 \set ON_ERROR_ROLLBACK foo
21 unrecognized value "foo" for "ON_ERROR_ROLLBACK"
22 Available values are: on, off, interactive.
23 \echo :ON_ERROR_ROLLBACK
25 \set ON_ERROR_ROLLBACK on
26 \echo :ON_ERROR_ROLLBACK
28 \unset ON_ERROR_ROLLBACK
29 \echo :ON_ERROR_ROLLBACK
32 SELECT 1 as one, 2 as two \g
43 SELECT 3 as three, 4 as four \gx
54 -- \gx should work in FETCH_COUNT mode too
56 SELECT 1 as one, 2 as two \g
67 SELECT 3 as three, 4 as four \gx
79 -- \g/\gx with pset options
80 SELECT 1 as one, 2 as two \g (format=csv csv_fieldsep='\t')
89 SELECT 1 as one, 2 as two \gx (title='foo bar')
101 -- \parse (extended query protocol)
103 \parse: missing required argument
105 SELECT 2 \parse stmt1
106 SELECT $1 \parse stmt2
107 SELECT $1, $2 \parse stmt3
108 -- \bind_named (extended query protocol)
110 \bind_named: missing required argument
123 \bind_named stmt2 'foo' \g
129 \bind_named stmt3 'foo' 'bar' \g
131 ----------+----------
135 -- Repeated calls. The second call generates an error, cleaning up the
136 -- statement name set by the first call.
139 \bind_named: missing required argument
141 ERROR: there is no parameter $1
142 LINE 1: SELECT $1, $2
144 -- Last \bind_named wins
145 \bind_named stmt2 'foo' \bind_named stmt3 'foo2' 'bar2' \g
147 ----------+----------
151 -- Multiple \g calls mean multiple executions
152 \bind_named stmt2 'foo3' \g \bind_named stmt3 'foo4' 'bar4' \g
159 ----------+----------
163 -- \close (extended query protocol)
165 \close: missing required argument
169 SELECT name, statement FROM pg_prepared_statements ORDER BY name;
171 -------+----------------
173 stmt3 | SELECT $1, $2
176 -- \bind (extended query protocol)
183 SELECT $1 \bind 'foo' \g
189 SELECT $1, $2 \bind 'foo' 'bar' \g
191 ----------+----------
196 select $1::int as col \bind 'foo' \bind 2 \g
202 -- Multiple \g calls mean multiple executions
203 select $1::int as col \bind 1 \g \bind 2 \g
217 ERROR: column "foo" does not exist
221 SELECT 1 \; SELECT 2 \bind \g
222 ERROR: cannot insert multiple commands into a prepared statement
224 SELECT $1, $2 \bind 'foo' \g
225 ERROR: bind message supplies 1 parameters, but prepared statement "" requires 2
227 \bind_named stmt2 'baz' \g
228 ERROR: prepared statement "stmt2" does not exist
229 \bind_named stmt3 'baz' \g
230 ERROR: bind message supplies 1 parameters, but prepared statement "stmt3" requires 2
232 select 10 as test01, 20 as test02, 'Hello' as test03 \gset pref01_
233 \echo :pref01_test01 :pref01_test02 :pref01_test03
235 -- should fail: bad variable name
236 select 10 as "bad name"
238 invalid variable name: "bad name"
239 select 97 as "EOF", 'ok' as _foo \gset IGNORE
240 attempt to \gset into specially treated variable "IGNOREEOF" ignored
241 \echo :IGNORE_foo :IGNOREEOF
243 -- multiple backslash commands in one line
244 select 1 as x, 2 as y \gset pref01_ \\ \echo :pref01_x
246 select 3 as x, 4 as y \gset pref01_ \echo :pref01_x \echo :pref01_y
249 select 5 as x, 6 as y \gset pref01_ \\ \g \echo :pref01_x :pref01_y
256 select 7 as x, 8 as y \g \gset pref01_ \echo :pref01_x :pref01_y
263 -- NULL should unset the variable
265 select 1 as var1, NULL as var2, 3 as var3 \gset
266 \echo :var1 :var2 :var3
268 -- \gset requires just one tuple
269 select 10 as test01, 20 as test02 from generate_series(1,3) \gset
270 more than one row returned for \gset
271 select 10 as test01, 20 as test02 from generate_series(1,0) \gset
272 no rows returned for \gset
273 -- \gset returns no tuples
274 select a from generate_series(1, 10) as a where a = 11 \gset
275 no rows returned for \gset
278 -- \gset should work in FETCH_COUNT mode too
280 select 1 as x, 2 as y \gset pref01_ \\ \echo :pref01_x
282 select 3 as x, 4 as y \gset pref01_ \echo :pref01_x \echo :pref01_y
285 select 10 as test01, 20 as test02 from generate_series(1,3) \gset
286 more than one row returned for \gset
287 select 10 as test01, 20 as test02 from generate_series(1,0) \gset
288 no rows returned for \gset
298 'foo'::varchar(4) as six,
302 --------+----------------------
308 five | double precision
309 six | character varying(4)
313 -- should work with tuple-returning utilities, such as EXECUTE
314 PREPARE test AS SELECT 1 AS first, 2 AS second;
322 EXPLAIN EXECUTE test \gdesc
328 -- should fail cleanly - syntax error
330 ERROR: syntax error at end of input
333 -- check behavior with empty results
335 The command has no result, or the result has no columns.
336 CREATE TABLE bububu(a int) \gdesc
337 The command has no result, or the result has no columns.
338 -- subject command should not have executed
339 TABLE bububu; -- fail
340 ERROR: relation "bububu" does not exist
341 LINE 1: TABLE bububu;
343 -- query buffer should remain unchanged
344 SELECT 1 AS x, 'Hello', 2 AS y, true AS "dirty\name"
347 ------------+---------
355 x | ?column? | y | dirty\name
356 ---+----------+---+------------
361 SELECT 3 AS x, 'Hello', 4 AS y, true AS "dirty\name" \gdesc \g
363 ------------+---------
370 x | ?column? | y | dirty\name
371 ---+----------+---+------------
375 -- test for server bug #17983 with empty statement in aborted transaction
376 set search_path = default;
379 ERROR: syntax error at or near "bogus"
384 The command has no result, or the result has no columns.
387 create temporary table gexec_test(a int, b text, c date, d float);
388 select format('create index on gexec_test(%I)', attname)
390 where attrelid = 'gexec_test'::regclass and attnum > 0
393 create index on gexec_test(a)
394 create index on gexec_test(b)
395 create index on gexec_test(c)
396 create index on gexec_test(d)
397 -- \gexec should work in FETCH_COUNT mode too
398 -- (though the fetch limit applies to the executed queries not the meta query)
400 select 'select 1 as ones', 'select x.y, x.y*2 as double from generate_series(1,4) as x(y)'
402 select 'drop table gexec_test', NULL
404 select 'drop table gexec_test', 'select ''2000-01-01''::date as party_over'
412 select x.y, x.y*2 as double from generate_series(1,4) as x(y)
421 drop table gexec_test
422 drop table gexec_test
423 ERROR: table "gexec_test" does not exist
424 select '2000-01-01'::date as party_over
432 -- ensure MYVAR isn't set
434 -- in which case, reading it doesn't change the target
439 \setenv MYVAR 'environment value'
443 -- show all pset options
463 unicode_border_linestyle single
464 unicode_column_linestyle single
465 unicode_header_linestyle single
467 -- test multi-line headers, wrapping, and newline indicators
468 -- in aligned, unaligned, and wrapped formats
469 prepare q as select array_to_string(array_agg(repeat('x',2*n)),E'\n') as "ab
471 c", array_to_string(array_agg(repeat('y',20-2*n)),E'\n') as "a
472 bc" from generate_series(1,10) as n(n) group by n>1 order by n>1;
473 \pset linestyle ascii
477 \pset format unaligned
483 xx|yyyyyyyyyyyyyyyyyy
492 xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
507 -------------------- ------------------
508 xx yyyyyyyyyyyyyyyyyy
509 xxxx +yyyyyyyyyyyyyyyy +
510 xxxxxx +yyyyyyyyyyyyyy +
511 xxxxxxxx +yyyyyyyyyyyy +
512 xxxxxxxxxx +yyyyyyyyyy +
513 xxxxxxxxxxxx +yyyyyyyy +
514 xxxxxxxxxxxxxx +yyyyyy +
515 xxxxxxxxxxxxxxxx +yyyy +
516 xxxxxxxxxxxxxxxxxx +yy +
525 -------------------- ------------------
526 xx yyyyyyyyyyyyyyyyyy
527 xxxx +yyyyyyyyyyyyyyyy +
528 xxxxxx +yyyyyyyyyyyyyy +
529 xxxxxxxx +yyyyyyyyyyyy +
530 xxxxxxxxxx +yyyyyyyyyy +
531 xxxxxxxxxxxx +yyyyyyyy +
532 xxxxxxxxxxxxxx +yyyyyy +
533 xxxxxxxxxxxxxxxx +yyyy +
534 xxxxxxxxxxxxxxxxxx +yy +
539 \pset format unaligned
545 xx|yyyyyyyyyyyyyyyyyy
554 xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
569 ----------------------+--------------------
570 xx | yyyyyyyyyyyyyyyyyy
571 xxxx +| yyyyyyyyyyyyyyyy +
572 xxxxxx +| yyyyyyyyyyyyyy +
573 xxxxxxxx +| yyyyyyyyyyyy +
574 xxxxxxxxxx +| yyyyyyyyyy +
575 xxxxxxxxxxxx +| yyyyyyyy +
576 xxxxxxxxxxxxxx +| yyyyyy +
577 xxxxxxxxxxxxxxxx +| yyyy +
578 xxxxxxxxxxxxxxxxxx +| yy +
579 xxxxxxxxxxxxxxxxxxxx |
587 -------------------+--------------------
588 xx | yyyyyyyyyyyyyyyyyy
589 xxxx +| yyyyyyyyyyyyyyyy +
590 xxxxxx +| yyyyyyyyyyyyyy +
591 xxxxxxxx +| yyyyyyyyyyyy +
592 xxxxxxxxxx +| yyyyyyyyyy +
593 xxxxxxxxxxxx +| yyyyyyyy +
594 xxxxxxxxxxxxxx +| yyyyyy +
595 xxxxxxxxxxxxxxxx +| yyyy +
596 xxxxxxxxxxxxxxxxx.| yy +
603 \pset format unaligned
609 xx|yyyyyyyyyyyyyyyyyy
618 xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
630 +----------------------+--------------------+
634 +----------------------+--------------------+
635 | xx | yyyyyyyyyyyyyyyyyy |
636 | xxxx +| yyyyyyyyyyyyyyyy +|
637 | xxxxxx +| yyyyyyyyyyyyyy +|
638 | xxxxxxxx +| yyyyyyyyyyyy +|
639 | xxxxxxxxxx +| yyyyyyyyyy +|
640 | xxxxxxxxxxxx +| yyyyyyyy +|
641 | xxxxxxxxxxxxxx +| yyyyyy +|
642 | xxxxxxxxxxxxxxxx +| yyyy +|
643 | xxxxxxxxxxxxxxxxxx +| yy +|
644 | xxxxxxxxxxxxxxxxxxxx | |
645 +----------------------+--------------------+
650 +-----------------+--------------------+
654 +-----------------+--------------------+
655 | xx | yyyyyyyyyyyyyyyyyy |
656 | xxxx +| yyyyyyyyyyyyyyyy +|
657 | xxxxxx +| yyyyyyyyyyyyyy +|
658 | xxxxxxxx +| yyyyyyyyyyyy +|
659 | xxxxxxxxxx +| yyyyyyyyyy +|
660 | xxxxxxxxxxxx +| yyyyyyyy +|
661 | xxxxxxxxxxxxxx +| yyyyyy +|
662 | xxxxxxxxxxxxxxx.| yyyy +|
664 | xxxxxxxxxxxxxxx.| |
666 | xxxxxxxxxxxxxxx.| |
668 +-----------------+--------------------+
674 \pset format unaligned
680 bc|yyyyyyyyyyyyyyyyyy
709 a + yyyyyyyyyyyyyyyyyy
721 a + yyyyyyyyyyyyyyyy +
764 \pset format unaligned
770 bc|yyyyyyyyyyyyyyyyyy
795 -[ RECORD 1 ]------------
799 a +| yyyyyyyyyyyyyyyyyy
801 -[ RECORD 2 ]------------
809 | xxxxxxxxxxxxxxxxxx +
810 | xxxxxxxxxxxxxxxxxxxx
811 a +| yyyyyyyyyyyyyyyy +
812 bc | yyyyyyyyyyyyyy +
854 \pset format unaligned
860 bc|yyyyyyyyyyyyyyyyyy
885 +-[ RECORD 1 ]--------------+
889 | a +| yyyyyyyyyyyyyyyyyy |
891 +-[ RECORD 2 ]--------------+
897 | | xxxxxxxxxxxxxx +|
898 | | xxxxxxxxxxxxxxxx +|
899 | | xxxxxxxxxxxxxxxxxx +|
900 | | xxxxxxxxxxxxxxxxxxxx |
901 | a +| yyyyyyyyyyyyyyyy +|
902 | bc | yyyyyyyyyyyyyy +|
910 +----+----------------------+
949 \pset linestyle old-ascii
953 \pset format unaligned
959 xx|yyyyyyyyyyyyyyyyyy
968 xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
983 -------------------- ------------------
984 xx yyyyyyyyyyyyyyyyyy
985 xxxx yyyyyyyyyyyyyyyy
986 xxxxxx yyyyyyyyyyyyyy
987 xxxxxxxx yyyyyyyyyyyy
988 xxxxxxxxxx yyyyyyyyyy
989 xxxxxxxxxxxx yyyyyyyy
990 xxxxxxxxxxxxxx yyyyyy
991 xxxxxxxxxxxxxxxx yyyy
992 xxxxxxxxxxxxxxxxxx yy
1001 -------------------- ------------------
1002 xx yyyyyyyyyyyyyyyyyy
1003 xxxx yyyyyyyyyyyyyyyy
1004 xxxxxx yyyyyyyyyyyyyy
1005 xxxxxxxx yyyyyyyyyyyy
1006 xxxxxxxxxx yyyyyyyyyy
1007 xxxxxxxxxxxx yyyyyyyy
1008 xxxxxxxxxxxxxx yyyyyy
1009 xxxxxxxxxxxxxxxx yyyy
1010 xxxxxxxxxxxxxxxxxx yy
1011 xxxxxxxxxxxxxxxxxxxx
1015 \pset format unaligned
1021 xx|yyyyyyyyyyyyyyyyyy
1030 xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
1040 \pset format aligned
1045 ----------------------+--------------------
1046 xx | yyyyyyyyyyyyyyyyyy
1047 xxxx | yyyyyyyyyyyyyyyy
1048 xxxxxx : yyyyyyyyyyyyyy
1049 xxxxxxxx : yyyyyyyyyyyy
1050 xxxxxxxxxx : yyyyyyyyyy
1051 xxxxxxxxxxxx : yyyyyyyy
1052 xxxxxxxxxxxxxx : yyyyyy
1053 xxxxxxxxxxxxxxxx : yyyy
1054 xxxxxxxxxxxxxxxxxx : yy
1055 xxxxxxxxxxxxxxxxxxxx :
1058 \pset format wrapped
1063 -------------------+--------------------
1064 xx | yyyyyyyyyyyyyyyyyy
1065 xxxx | yyyyyyyyyyyyyyyy
1066 xxxxxx : yyyyyyyyyyyyyy
1067 xxxxxxxx : yyyyyyyyyyyy
1068 xxxxxxxxxx : yyyyyyyyyy
1069 xxxxxxxxxxxx : yyyyyyyy
1070 xxxxxxxxxxxxxx : yyyyyy
1071 xxxxxxxxxxxxxxxx : yyyy
1072 xxxxxxxxxxxxxxxxx : yy
1079 \pset format unaligned
1085 xx|yyyyyyyyyyyyyyyyyy
1094 xxxxxxxxxxxxxxxxxxxx|yyyyyyyyyyyyyyyy
1104 \pset format aligned
1106 +----------------------+--------------------+
1110 +----------------------+--------------------+
1111 | xx | yyyyyyyyyyyyyyyyyy |
1112 | xxxx | yyyyyyyyyyyyyyyy |
1113 | xxxxxx : yyyyyyyyyyyyyy |
1114 | xxxxxxxx : yyyyyyyyyyyy |
1115 | xxxxxxxxxx : yyyyyyyyyy |
1116 | xxxxxxxxxxxx : yyyyyyyy |
1117 | xxxxxxxxxxxxxx : yyyyyy |
1118 | xxxxxxxxxxxxxxxx : yyyy |
1119 | xxxxxxxxxxxxxxxxxx : yy |
1120 | xxxxxxxxxxxxxxxxxxxx : |
1121 +----------------------+--------------------+
1124 \pset format wrapped
1126 +-----------------+--------------------+
1130 +-----------------+--------------------+
1131 | xx | yyyyyyyyyyyyyyyyyy |
1132 | xxxx | yyyyyyyyyyyyyyyy |
1133 | xxxxxx : yyyyyyyyyyyyyy |
1134 | xxxxxxxx : yyyyyyyyyyyy |
1135 | xxxxxxxxxx : yyyyyyyyyy |
1136 | xxxxxxxxxxxx : yyyyyyyy |
1137 | xxxxxxxxxxxxxx : yyyyyy |
1138 | xxxxxxxxxxxxxxx : yyyy |
1140 | xxxxxxxxxxxxxxx : |
1144 +-----------------+--------------------+
1150 \pset format unaligned
1156 bc|yyyyyyyyyyyyyyyyyy
1168 xxxxxxxxxxxxxxxxxxxx
1179 \pset format aligned
1185 a yyyyyyyyyyyyyyyyyy
1196 xxxxxxxxxxxxxxxxxxxx
1207 \pset format wrapped
1238 \pset format unaligned
1244 bc|yyyyyyyyyyyyyyyyyy
1256 xxxxxxxxxxxxxxxxxxxx
1267 \pset format aligned
1269 -[ RECORD 1 ]-------------
1273 a | yyyyyyyyyyyyyyyyyy
1275 -[ RECORD 2 ]-------------
1283 : xxxxxxxxxxxxxxxxxx
1284 : xxxxxxxxxxxxxxxxxxxx
1285 a | yyyyyyyyyyyyyyyy
1286 +bc : yyyyyyyyyyyyyy
1295 \pset format wrapped
1297 -[ RECORD 1 ]-------
1303 -[ RECORD 2 ]-------
1328 \pset format unaligned
1334 bc|yyyyyyyyyyyyyyyyyy
1346 xxxxxxxxxxxxxxxxxxxx
1357 \pset format aligned
1359 +-[ RECORD 1 ]--------------+
1363 | a | yyyyyyyyyyyyyyyyyy |
1365 +-[ RECORD 2 ]--------------+
1371 | : xxxxxxxxxxxxxx |
1372 | : xxxxxxxxxxxxxxxx |
1373 | : xxxxxxxxxxxxxxxxxx |
1374 | : xxxxxxxxxxxxxxxxxxxx |
1375 | a | yyyyyyyyyyyyyyyy |
1376 |+bc : yyyyyyyyyyyyyy |
1384 +----+----------------------+
1386 \pset format wrapped
1388 +-[ RECORD 1 ]-----+
1394 +-[ RECORD 2 ]-----+
1421 +----+-------------+
1424 -- test single-line header and data
1425 prepare q as select repeat('x',2*n) as "0123456789abcdef", repeat('y',20-2*n) as "0123456789" from generate_series(1,10) as n;
1426 \pset linestyle ascii
1430 \pset format unaligned
1432 0123456789abcdef|0123456789
1433 xx|yyyyyyyyyyyyyyyyyy
1434 xxxx|yyyyyyyyyyyyyyyy
1435 xxxxxx|yyyyyyyyyyyyyy
1436 xxxxxxxx|yyyyyyyyyyyy
1437 xxxxxxxxxx|yyyyyyyyyy
1438 xxxxxxxxxxxx|yyyyyyyy
1439 xxxxxxxxxxxxxx|yyyyyy
1440 xxxxxxxxxxxxxxxx|yyyy
1441 xxxxxxxxxxxxxxxxxx|yy
1442 xxxxxxxxxxxxxxxxxxxx|
1444 \pset format aligned
1446 0123456789abcdef 0123456789
1447 -------------------- ------------------
1448 xx yyyyyyyyyyyyyyyyyy
1449 xxxx yyyyyyyyyyyyyyyy
1450 xxxxxx yyyyyyyyyyyyyy
1451 xxxxxxxx yyyyyyyyyyyy
1452 xxxxxxxxxx yyyyyyyyyy
1453 xxxxxxxxxxxx yyyyyyyy
1454 xxxxxxxxxxxxxx yyyyyy
1455 xxxxxxxxxxxxxxxx yyyy
1456 xxxxxxxxxxxxxxxxxx yy
1457 xxxxxxxxxxxxxxxxxxxx
1460 \pset format wrapped
1462 0123456789abcdef 0123456789
1463 -------------------- ------------------
1464 xx yyyyyyyyyyyyyyyyyy
1465 xxxx yyyyyyyyyyyyyyyy
1466 xxxxxx yyyyyyyyyyyyyy
1467 xxxxxxxx yyyyyyyyyyyy
1468 xxxxxxxxxx yyyyyyyyyy
1469 xxxxxxxxxxxx yyyyyyyy
1470 xxxxxxxxxxxxxx yyyyyy
1471 xxxxxxxxxxxxxxxx yyyy
1472 xxxxxxxxxxxxxxxxxx yy
1473 xxxxxxxxxxxxxxxxxxxx
1477 \pset format unaligned
1479 0123456789abcdef|0123456789
1480 xx|yyyyyyyyyyyyyyyyyy
1481 xxxx|yyyyyyyyyyyyyyyy
1482 xxxxxx|yyyyyyyyyyyyyy
1483 xxxxxxxx|yyyyyyyyyyyy
1484 xxxxxxxxxx|yyyyyyyyyy
1485 xxxxxxxxxxxx|yyyyyyyy
1486 xxxxxxxxxxxxxx|yyyyyy
1487 xxxxxxxxxxxxxxxx|yyyy
1488 xxxxxxxxxxxxxxxxxx|yy
1489 xxxxxxxxxxxxxxxxxxxx|
1491 \pset format aligned
1493 0123456789abcdef | 0123456789
1494 ----------------------+--------------------
1495 xx | yyyyyyyyyyyyyyyyyy
1496 xxxx | yyyyyyyyyyyyyyyy
1497 xxxxxx | yyyyyyyyyyyyyy
1498 xxxxxxxx | yyyyyyyyyyyy
1499 xxxxxxxxxx | yyyyyyyyyy
1500 xxxxxxxxxxxx | yyyyyyyy
1501 xxxxxxxxxxxxxx | yyyyyy
1502 xxxxxxxxxxxxxxxx | yyyy
1503 xxxxxxxxxxxxxxxxxx | yy
1504 xxxxxxxxxxxxxxxxxxxx |
1507 \pset format wrapped
1509 0123456789abcdef | 0123456789
1510 ---------------------+------------------
1511 xx | yyyyyyyyyyyyyyyy.
1513 xxxx | yyyyyyyyyyyyyyyy
1514 xxxxxx | yyyyyyyyyyyyyy
1515 xxxxxxxx | yyyyyyyyyyyy
1516 xxxxxxxxxx | yyyyyyyyyy
1517 xxxxxxxxxxxx | yyyyyyyy
1518 xxxxxxxxxxxxxx | yyyyyy
1519 xxxxxxxxxxxxxxxx | yyyy
1520 xxxxxxxxxxxxxxxxxx | yy
1521 xxxxxxxxxxxxxxxxxxx.|
1526 \pset format unaligned
1528 0123456789abcdef|0123456789
1529 xx|yyyyyyyyyyyyyyyyyy
1530 xxxx|yyyyyyyyyyyyyyyy
1531 xxxxxx|yyyyyyyyyyyyyy
1532 xxxxxxxx|yyyyyyyyyyyy
1533 xxxxxxxxxx|yyyyyyyyyy
1534 xxxxxxxxxxxx|yyyyyyyy
1535 xxxxxxxxxxxxxx|yyyyyy
1536 xxxxxxxxxxxxxxxx|yyyy
1537 xxxxxxxxxxxxxxxxxx|yy
1538 xxxxxxxxxxxxxxxxxxxx|
1540 \pset format aligned
1542 +----------------------+--------------------+
1543 | 0123456789abcdef | 0123456789 |
1544 +----------------------+--------------------+
1545 | xx | yyyyyyyyyyyyyyyyyy |
1546 | xxxx | yyyyyyyyyyyyyyyy |
1547 | xxxxxx | yyyyyyyyyyyyyy |
1548 | xxxxxxxx | yyyyyyyyyyyy |
1549 | xxxxxxxxxx | yyyyyyyyyy |
1550 | xxxxxxxxxxxx | yyyyyyyy |
1551 | xxxxxxxxxxxxxx | yyyyyy |
1552 | xxxxxxxxxxxxxxxx | yyyy |
1553 | xxxxxxxxxxxxxxxxxx | yy |
1554 | xxxxxxxxxxxxxxxxxxxx | |
1555 +----------------------+--------------------+
1558 \pset format wrapped
1560 +--------------------+-----------------+
1561 | 0123456789abcdef | 0123456789 |
1562 +--------------------+-----------------+
1563 | xx | yyyyyyyyyyyyyyy.|
1565 | xxxx | yyyyyyyyyyyyyyy.|
1567 | xxxxxx | yyyyyyyyyyyyyy |
1568 | xxxxxxxx | yyyyyyyyyyyy |
1569 | xxxxxxxxxx | yyyyyyyyyy |
1570 | xxxxxxxxxxxx | yyyyyyyy |
1571 | xxxxxxxxxxxxxx | yyyyyy |
1572 | xxxxxxxxxxxxxxxx | yyyy |
1573 | xxxxxxxxxxxxxxxxxx | yy |
1574 | xxxxxxxxxxxxxxxxxx.| |
1576 +--------------------+-----------------+
1582 \pset format unaligned
1585 0123456789|yyyyyyyyyyyyyyyyyy
1587 0123456789abcdef|xxxx
1588 0123456789|yyyyyyyyyyyyyyyy
1590 0123456789abcdef|xxxxxx
1591 0123456789|yyyyyyyyyyyyyy
1593 0123456789abcdef|xxxxxxxx
1594 0123456789|yyyyyyyyyyyy
1596 0123456789abcdef|xxxxxxxxxx
1597 0123456789|yyyyyyyyyy
1599 0123456789abcdef|xxxxxxxxxxxx
1602 0123456789abcdef|xxxxxxxxxxxxxx
1605 0123456789abcdef|xxxxxxxxxxxxxxxx
1608 0123456789abcdef|xxxxxxxxxxxxxxxxxx
1611 0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
1613 \pset format aligned
1617 0123456789 yyyyyyyyyyyyyyyyyy
1619 0123456789abcdef xxxx
1620 0123456789 yyyyyyyyyyyyyyyy
1622 0123456789abcdef xxxxxx
1623 0123456789 yyyyyyyyyyyyyy
1625 0123456789abcdef xxxxxxxx
1626 0123456789 yyyyyyyyyyyy
1628 0123456789abcdef xxxxxxxxxx
1629 0123456789 yyyyyyyyyy
1631 0123456789abcdef xxxxxxxxxxxx
1634 0123456789abcdef xxxxxxxxxxxxxx
1637 0123456789abcdef xxxxxxxxxxxxxxxx
1640 0123456789abcdef xxxxxxxxxxxxxxxxxx
1643 0123456789abcdef xxxxxxxxxxxxxxxxxxxx
1646 \pset format wrapped
1650 0123456789 yyyyyyyyyyyy.
1653 0123456789abcdef xxxx
1654 0123456789 yyyyyyyyyyyy.
1657 0123456789abcdef xxxxxx
1658 0123456789 yyyyyyyyyyyy.
1661 0123456789abcdef xxxxxxxx
1662 0123456789 yyyyyyyyyyyy
1664 0123456789abcdef xxxxxxxxxx
1665 0123456789 yyyyyyyyyy
1667 0123456789abcdef xxxxxxxxxxxx
1670 0123456789abcdef xxxxxxxxxxxx.
1674 0123456789abcdef xxxxxxxxxxxx.
1678 0123456789abcdef xxxxxxxxxxxx.
1682 0123456789abcdef xxxxxxxxxxxx.
1687 \pset format unaligned
1690 0123456789|yyyyyyyyyyyyyyyyyy
1692 0123456789abcdef|xxxx
1693 0123456789|yyyyyyyyyyyyyyyy
1695 0123456789abcdef|xxxxxx
1696 0123456789|yyyyyyyyyyyyyy
1698 0123456789abcdef|xxxxxxxx
1699 0123456789|yyyyyyyyyyyy
1701 0123456789abcdef|xxxxxxxxxx
1702 0123456789|yyyyyyyyyy
1704 0123456789abcdef|xxxxxxxxxxxx
1707 0123456789abcdef|xxxxxxxxxxxxxx
1710 0123456789abcdef|xxxxxxxxxxxxxxxx
1713 0123456789abcdef|xxxxxxxxxxxxxxxxxx
1716 0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
1718 \pset format aligned
1720 -[ RECORD 1 ]----+---------------------
1721 0123456789abcdef | xx
1722 0123456789 | yyyyyyyyyyyyyyyyyy
1723 -[ RECORD 2 ]----+---------------------
1724 0123456789abcdef | xxxx
1725 0123456789 | yyyyyyyyyyyyyyyy
1726 -[ RECORD 3 ]----+---------------------
1727 0123456789abcdef | xxxxxx
1728 0123456789 | yyyyyyyyyyyyyy
1729 -[ RECORD 4 ]----+---------------------
1730 0123456789abcdef | xxxxxxxx
1731 0123456789 | yyyyyyyyyyyy
1732 -[ RECORD 5 ]----+---------------------
1733 0123456789abcdef | xxxxxxxxxx
1734 0123456789 | yyyyyyyyyy
1735 -[ RECORD 6 ]----+---------------------
1736 0123456789abcdef | xxxxxxxxxxxx
1737 0123456789 | yyyyyyyy
1738 -[ RECORD 7 ]----+---------------------
1739 0123456789abcdef | xxxxxxxxxxxxxx
1741 -[ RECORD 8 ]----+---------------------
1742 0123456789abcdef | xxxxxxxxxxxxxxxx
1744 -[ RECORD 9 ]----+---------------------
1745 0123456789abcdef | xxxxxxxxxxxxxxxxxx
1747 -[ RECORD 10 ]---+---------------------
1748 0123456789abcdef | xxxxxxxxxxxxxxxxxxxx
1751 \pset format wrapped
1753 -[ RECORD 1 ]----+-----------
1754 0123456789abcdef | xx
1755 0123456789 | yyyyyyyyyy.
1757 -[ RECORD 2 ]----+-----------
1758 0123456789abcdef | xxxx
1759 0123456789 | yyyyyyyyyy.
1761 -[ RECORD 3 ]----+-----------
1762 0123456789abcdef | xxxxxx
1763 0123456789 | yyyyyyyyyy.
1765 -[ RECORD 4 ]----+-----------
1766 0123456789abcdef | xxxxxxxx
1767 0123456789 | yyyyyyyyyy.
1769 -[ RECORD 5 ]----+-----------
1770 0123456789abcdef | xxxxxxxxxx
1771 0123456789 | yyyyyyyyyy
1772 -[ RECORD 6 ]----+-----------
1773 0123456789abcdef | xxxxxxxxxx.
1775 0123456789 | yyyyyyyy
1776 -[ RECORD 7 ]----+-----------
1777 0123456789abcdef | xxxxxxxxxx.
1780 -[ RECORD 8 ]----+-----------
1781 0123456789abcdef | xxxxxxxxxx.
1784 -[ RECORD 9 ]----+-----------
1785 0123456789abcdef | xxxxxxxxxx.
1788 -[ RECORD 10 ]---+-----------
1789 0123456789abcdef | xxxxxxxxxx.
1794 \pset format unaligned
1797 0123456789|yyyyyyyyyyyyyyyyyy
1799 0123456789abcdef|xxxx
1800 0123456789|yyyyyyyyyyyyyyyy
1802 0123456789abcdef|xxxxxx
1803 0123456789|yyyyyyyyyyyyyy
1805 0123456789abcdef|xxxxxxxx
1806 0123456789|yyyyyyyyyyyy
1808 0123456789abcdef|xxxxxxxxxx
1809 0123456789|yyyyyyyyyy
1811 0123456789abcdef|xxxxxxxxxxxx
1814 0123456789abcdef|xxxxxxxxxxxxxx
1817 0123456789abcdef|xxxxxxxxxxxxxxxx
1820 0123456789abcdef|xxxxxxxxxxxxxxxxxx
1823 0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
1825 \pset format aligned
1827 +-[ RECORD 1 ]-----+----------------------+
1828 | 0123456789abcdef | xx |
1829 | 0123456789 | yyyyyyyyyyyyyyyyyy |
1830 +-[ RECORD 2 ]-----+----------------------+
1831 | 0123456789abcdef | xxxx |
1832 | 0123456789 | yyyyyyyyyyyyyyyy |
1833 +-[ RECORD 3 ]-----+----------------------+
1834 | 0123456789abcdef | xxxxxx |
1835 | 0123456789 | yyyyyyyyyyyyyy |
1836 +-[ RECORD 4 ]-----+----------------------+
1837 | 0123456789abcdef | xxxxxxxx |
1838 | 0123456789 | yyyyyyyyyyyy |
1839 +-[ RECORD 5 ]-----+----------------------+
1840 | 0123456789abcdef | xxxxxxxxxx |
1841 | 0123456789 | yyyyyyyyyy |
1842 +-[ RECORD 6 ]-----+----------------------+
1843 | 0123456789abcdef | xxxxxxxxxxxx |
1844 | 0123456789 | yyyyyyyy |
1845 +-[ RECORD 7 ]-----+----------------------+
1846 | 0123456789abcdef | xxxxxxxxxxxxxx |
1847 | 0123456789 | yyyyyy |
1848 +-[ RECORD 8 ]-----+----------------------+
1849 | 0123456789abcdef | xxxxxxxxxxxxxxxx |
1850 | 0123456789 | yyyy |
1851 +-[ RECORD 9 ]-----+----------------------+
1852 | 0123456789abcdef | xxxxxxxxxxxxxxxxxx |
1854 +-[ RECORD 10 ]----+----------------------+
1855 | 0123456789abcdef | xxxxxxxxxxxxxxxxxxxx |
1857 +------------------+----------------------+
1859 \pset format wrapped
1861 +-[ RECORD 1 ]-----+---------+
1862 | 0123456789abcdef | xx |
1863 | 0123456789 | yyyyyyy.|
1866 +-[ RECORD 2 ]-----+---------+
1867 | 0123456789abcdef | xxxx |
1868 | 0123456789 | yyyyyyy.|
1871 +-[ RECORD 3 ]-----+---------+
1872 | 0123456789abcdef | xxxxxx |
1873 | 0123456789 | yyyyyyy.|
1875 +-[ RECORD 4 ]-----+---------+
1876 | 0123456789abcdef | xxxxxxx.|
1878 | 0123456789 | yyyyyyy.|
1880 +-[ RECORD 5 ]-----+---------+
1881 | 0123456789abcdef | xxxxxxx.|
1883 | 0123456789 | yyyyyyy.|
1885 +-[ RECORD 6 ]-----+---------+
1886 | 0123456789abcdef | xxxxxxx.|
1888 | 0123456789 | yyyyyyy.|
1890 +-[ RECORD 7 ]-----+---------+
1891 | 0123456789abcdef | xxxxxxx.|
1893 | 0123456789 | yyyyyy |
1894 +-[ RECORD 8 ]-----+---------+
1895 | 0123456789abcdef | xxxxxxx.|
1898 | 0123456789 | yyyy |
1899 +-[ RECORD 9 ]-----+---------+
1900 | 0123456789abcdef | xxxxxxx.|
1904 +-[ RECORD 10 ]----+---------+
1905 | 0123456789abcdef | xxxxxxx.|
1909 +------------------+---------+
1914 \pset format unaligned
1917 0123456789|yyyyyyyyyyyyyyyyyy
1919 0123456789abcdef|xxxx
1920 0123456789|yyyyyyyyyyyyyyyy
1922 0123456789abcdef|xxxxxx
1923 0123456789|yyyyyyyyyyyyyy
1925 0123456789abcdef|xxxxxxxx
1926 0123456789|yyyyyyyyyyyy
1928 0123456789abcdef|xxxxxxxxxx
1929 0123456789|yyyyyyyyyy
1931 0123456789abcdef|xxxxxxxxxxxx
1934 0123456789abcdef|xxxxxxxxxxxxxx
1937 0123456789abcdef|xxxxxxxxxxxxxxxx
1940 0123456789abcdef|xxxxxxxxxxxxxxxxxx
1943 0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
1945 \pset format aligned
1949 0123456789 yyyyyyyyyyyyyyyyyy
1951 0123456789abcdef xxxx
1952 0123456789 yyyyyyyyyyyyyyyy
1954 0123456789abcdef xxxxxx
1955 0123456789 yyyyyyyyyyyyyy
1957 0123456789abcdef xxxxxxxx
1958 0123456789 yyyyyyyyyyyy
1960 0123456789abcdef xxxxxxxxxx
1961 0123456789 yyyyyyyyyy
1963 0123456789abcdef xxxxxxxxxxxx
1966 0123456789abcdef xxxxxxxxxxxxxx
1969 0123456789abcdef xxxxxxxxxxxxxxxx
1972 0123456789abcdef xxxxxxxxxxxxxxxxxx
1975 0123456789abcdef xxxxxxxxxxxxxxxxxxxx
1978 \pset format wrapped
1989 0123456789abcdef xxx.
1998 0123456789abcdef xxx.
2006 0123456789abcdef xxx.
2014 0123456789abcdef xxx.
2023 0123456789abcdef xxx.
2031 0123456789abcdef xxx.
2039 0123456789abcdef xxx.
2048 0123456789abcdef xxx.
2056 0123456789abcdef xxx.
2066 \pset format unaligned
2069 0123456789|yyyyyyyyyyyyyyyyyy
2071 0123456789abcdef|xxxx
2072 0123456789|yyyyyyyyyyyyyyyy
2074 0123456789abcdef|xxxxxx
2075 0123456789|yyyyyyyyyyyyyy
2077 0123456789abcdef|xxxxxxxx
2078 0123456789|yyyyyyyyyyyy
2080 0123456789abcdef|xxxxxxxxxx
2081 0123456789|yyyyyyyyyy
2083 0123456789abcdef|xxxxxxxxxxxx
2086 0123456789abcdef|xxxxxxxxxxxxxx
2089 0123456789abcdef|xxxxxxxxxxxxxxxx
2092 0123456789abcdef|xxxxxxxxxxxxxxxxxx
2095 0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
2097 \pset format aligned
2099 -[ RECORD 1 ]----+---------------------
2100 0123456789abcdef | xx
2101 0123456789 | yyyyyyyyyyyyyyyyyy
2102 -[ RECORD 2 ]----+---------------------
2103 0123456789abcdef | xxxx
2104 0123456789 | yyyyyyyyyyyyyyyy
2105 -[ RECORD 3 ]----+---------------------
2106 0123456789abcdef | xxxxxx
2107 0123456789 | yyyyyyyyyyyyyy
2108 -[ RECORD 4 ]----+---------------------
2109 0123456789abcdef | xxxxxxxx
2110 0123456789 | yyyyyyyyyyyy
2111 -[ RECORD 5 ]----+---------------------
2112 0123456789abcdef | xxxxxxxxxx
2113 0123456789 | yyyyyyyyyy
2114 -[ RECORD 6 ]----+---------------------
2115 0123456789abcdef | xxxxxxxxxxxx
2116 0123456789 | yyyyyyyy
2117 -[ RECORD 7 ]----+---------------------
2118 0123456789abcdef | xxxxxxxxxxxxxx
2120 -[ RECORD 8 ]----+---------------------
2121 0123456789abcdef | xxxxxxxxxxxxxxxx
2123 -[ RECORD 9 ]----+---------------------
2124 0123456789abcdef | xxxxxxxxxxxxxxxxxx
2126 -[ RECORD 10 ]---+---------------------
2127 0123456789abcdef | xxxxxxxxxxxxxxxxxxxx
2130 \pset format wrapped
2132 -[ RECORD 1 ]----+----
2133 0123456789abcdef | xx
2140 -[ RECORD 2 ]----+----
2141 0123456789abcdef | xxx.
2149 -[ RECORD 3 ]----+----
2150 0123456789abcdef | xxx.
2157 -[ RECORD 4 ]----+----
2158 0123456789abcdef | xxx.
2165 -[ RECORD 5 ]----+----
2166 0123456789abcdef | xxx.
2174 -[ RECORD 6 ]----+----
2175 0123456789abcdef | xxx.
2182 -[ RECORD 7 ]----+----
2183 0123456789abcdef | xxx.
2190 -[ RECORD 8 ]----+----
2191 0123456789abcdef | xxx.
2199 -[ RECORD 9 ]----+----
2200 0123456789abcdef | xxx.
2207 -[ RECORD 10 ]---+----
2208 0123456789abcdef | xxx.
2218 \pset format unaligned
2221 0123456789|yyyyyyyyyyyyyyyyyy
2223 0123456789abcdef|xxxx
2224 0123456789|yyyyyyyyyyyyyyyy
2226 0123456789abcdef|xxxxxx
2227 0123456789|yyyyyyyyyyyyyy
2229 0123456789abcdef|xxxxxxxx
2230 0123456789|yyyyyyyyyyyy
2232 0123456789abcdef|xxxxxxxxxx
2233 0123456789|yyyyyyyyyy
2235 0123456789abcdef|xxxxxxxxxxxx
2238 0123456789abcdef|xxxxxxxxxxxxxx
2241 0123456789abcdef|xxxxxxxxxxxxxxxx
2244 0123456789abcdef|xxxxxxxxxxxxxxxxxx
2247 0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
2249 \pset format aligned
2251 +-[ RECORD 1 ]-----+----------------------+
2252 | 0123456789abcdef | xx |
2253 | 0123456789 | yyyyyyyyyyyyyyyyyy |
2254 +-[ RECORD 2 ]-----+----------------------+
2255 | 0123456789abcdef | xxxx |
2256 | 0123456789 | yyyyyyyyyyyyyyyy |
2257 +-[ RECORD 3 ]-----+----------------------+
2258 | 0123456789abcdef | xxxxxx |
2259 | 0123456789 | yyyyyyyyyyyyyy |
2260 +-[ RECORD 4 ]-----+----------------------+
2261 | 0123456789abcdef | xxxxxxxx |
2262 | 0123456789 | yyyyyyyyyyyy |
2263 +-[ RECORD 5 ]-----+----------------------+
2264 | 0123456789abcdef | xxxxxxxxxx |
2265 | 0123456789 | yyyyyyyyyy |
2266 +-[ RECORD 6 ]-----+----------------------+
2267 | 0123456789abcdef | xxxxxxxxxxxx |
2268 | 0123456789 | yyyyyyyy |
2269 +-[ RECORD 7 ]-----+----------------------+
2270 | 0123456789abcdef | xxxxxxxxxxxxxx |
2271 | 0123456789 | yyyyyy |
2272 +-[ RECORD 8 ]-----+----------------------+
2273 | 0123456789abcdef | xxxxxxxxxxxxxxxx |
2274 | 0123456789 | yyyy |
2275 +-[ RECORD 9 ]-----+----------------------+
2276 | 0123456789abcdef | xxxxxxxxxxxxxxxxxx |
2278 +-[ RECORD 10 ]----+----------------------+
2279 | 0123456789abcdef | xxxxxxxxxxxxxxxxxxxx |
2281 +------------------+----------------------+
2283 \pset format wrapped
2285 +-[ RECORD 1 ]-----+-----+
2286 | 0123456789abcdef | xx |
2287 | 0123456789 | yyy.|
2293 +-[ RECORD 2 ]-----+-----+
2294 | 0123456789abcdef | xxx.|
2296 | 0123456789 | yyy.|
2302 +-[ RECORD 3 ]-----+-----+
2303 | 0123456789abcdef | xxx.|
2305 | 0123456789 | yyy.|
2310 +-[ RECORD 4 ]-----+-----+
2311 | 0123456789abcdef | xxx.|
2314 | 0123456789 | yyy.|
2318 +-[ RECORD 5 ]-----+-----+
2319 | 0123456789abcdef | xxx.|
2323 | 0123456789 | yyy.|
2327 +-[ RECORD 6 ]-----+-----+
2328 | 0123456789abcdef | xxx.|
2332 | 0123456789 | yyy.|
2335 +-[ RECORD 7 ]-----+-----+
2336 | 0123456789abcdef | xxx.|
2341 | 0123456789 | yyy.|
2343 +-[ RECORD 8 ]-----+-----+
2344 | 0123456789abcdef | xxx.|
2350 | 0123456789 | yyy.|
2352 +-[ RECORD 9 ]-----+-----+
2353 | 0123456789abcdef | xxx.|
2360 +-[ RECORD 10 ]----+-----+
2361 | 0123456789abcdef | xxx.|
2369 +------------------+-----+
2371 \pset linestyle old-ascii
2375 \pset format unaligned
2377 0123456789abcdef|0123456789
2378 xx|yyyyyyyyyyyyyyyyyy
2379 xxxx|yyyyyyyyyyyyyyyy
2380 xxxxxx|yyyyyyyyyyyyyy
2381 xxxxxxxx|yyyyyyyyyyyy
2382 xxxxxxxxxx|yyyyyyyyyy
2383 xxxxxxxxxxxx|yyyyyyyy
2384 xxxxxxxxxxxxxx|yyyyyy
2385 xxxxxxxxxxxxxxxx|yyyy
2386 xxxxxxxxxxxxxxxxxx|yy
2387 xxxxxxxxxxxxxxxxxxxx|
2389 \pset format aligned
2391 0123456789abcdef 0123456789
2392 -------------------- ------------------
2393 xx yyyyyyyyyyyyyyyyyy
2394 xxxx yyyyyyyyyyyyyyyy
2395 xxxxxx yyyyyyyyyyyyyy
2396 xxxxxxxx yyyyyyyyyyyy
2397 xxxxxxxxxx yyyyyyyyyy
2398 xxxxxxxxxxxx yyyyyyyy
2399 xxxxxxxxxxxxxx yyyyyy
2400 xxxxxxxxxxxxxxxx yyyy
2401 xxxxxxxxxxxxxxxxxx yy
2402 xxxxxxxxxxxxxxxxxxxx
2405 \pset format wrapped
2407 0123456789abcdef 0123456789
2408 -------------------- ------------------
2409 xx yyyyyyyyyyyyyyyyyy
2410 xxxx yyyyyyyyyyyyyyyy
2411 xxxxxx yyyyyyyyyyyyyy
2412 xxxxxxxx yyyyyyyyyyyy
2413 xxxxxxxxxx yyyyyyyyyy
2414 xxxxxxxxxxxx yyyyyyyy
2415 xxxxxxxxxxxxxx yyyyyy
2416 xxxxxxxxxxxxxxxx yyyy
2417 xxxxxxxxxxxxxxxxxx yy
2418 xxxxxxxxxxxxxxxxxxxx
2422 \pset format unaligned
2424 0123456789abcdef|0123456789
2425 xx|yyyyyyyyyyyyyyyyyy
2426 xxxx|yyyyyyyyyyyyyyyy
2427 xxxxxx|yyyyyyyyyyyyyy
2428 xxxxxxxx|yyyyyyyyyyyy
2429 xxxxxxxxxx|yyyyyyyyyy
2430 xxxxxxxxxxxx|yyyyyyyy
2431 xxxxxxxxxxxxxx|yyyyyy
2432 xxxxxxxxxxxxxxxx|yyyy
2433 xxxxxxxxxxxxxxxxxx|yy
2434 xxxxxxxxxxxxxxxxxxxx|
2436 \pset format aligned
2438 0123456789abcdef | 0123456789
2439 ----------------------+--------------------
2440 xx | yyyyyyyyyyyyyyyyyy
2441 xxxx | yyyyyyyyyyyyyyyy
2442 xxxxxx | yyyyyyyyyyyyyy
2443 xxxxxxxx | yyyyyyyyyyyy
2444 xxxxxxxxxx | yyyyyyyyyy
2445 xxxxxxxxxxxx | yyyyyyyy
2446 xxxxxxxxxxxxxx | yyyyyy
2447 xxxxxxxxxxxxxxxx | yyyy
2448 xxxxxxxxxxxxxxxxxx | yy
2449 xxxxxxxxxxxxxxxxxxxx |
2452 \pset format wrapped
2454 0123456789abcdef | 0123456789
2455 ---------------------+------------------
2456 xx | yyyyyyyyyyyyyyyy
2458 xxxx | yyyyyyyyyyyyyyyy
2459 xxxxxx | yyyyyyyyyyyyyy
2460 xxxxxxxx | yyyyyyyyyyyy
2461 xxxxxxxxxx | yyyyyyyyyy
2462 xxxxxxxxxxxx | yyyyyyyy
2463 xxxxxxxxxxxxxx | yyyyyy
2464 xxxxxxxxxxxxxxxx | yyyy
2465 xxxxxxxxxxxxxxxxxx | yy
2466 xxxxxxxxxxxxxxxxxxx |
2471 \pset format unaligned
2473 0123456789abcdef|0123456789
2474 xx|yyyyyyyyyyyyyyyyyy
2475 xxxx|yyyyyyyyyyyyyyyy
2476 xxxxxx|yyyyyyyyyyyyyy
2477 xxxxxxxx|yyyyyyyyyyyy
2478 xxxxxxxxxx|yyyyyyyyyy
2479 xxxxxxxxxxxx|yyyyyyyy
2480 xxxxxxxxxxxxxx|yyyyyy
2481 xxxxxxxxxxxxxxxx|yyyy
2482 xxxxxxxxxxxxxxxxxx|yy
2483 xxxxxxxxxxxxxxxxxxxx|
2485 \pset format aligned
2487 +----------------------+--------------------+
2488 | 0123456789abcdef | 0123456789 |
2489 +----------------------+--------------------+
2490 | xx | yyyyyyyyyyyyyyyyyy |
2491 | xxxx | yyyyyyyyyyyyyyyy |
2492 | xxxxxx | yyyyyyyyyyyyyy |
2493 | xxxxxxxx | yyyyyyyyyyyy |
2494 | xxxxxxxxxx | yyyyyyyyyy |
2495 | xxxxxxxxxxxx | yyyyyyyy |
2496 | xxxxxxxxxxxxxx | yyyyyy |
2497 | xxxxxxxxxxxxxxxx | yyyy |
2498 | xxxxxxxxxxxxxxxxxx | yy |
2499 | xxxxxxxxxxxxxxxxxxxx | |
2500 +----------------------+--------------------+
2503 \pset format wrapped
2505 +--------------------+-----------------+
2506 | 0123456789abcdef | 0123456789 |
2507 +--------------------+-----------------+
2508 | xx | yyyyyyyyyyyyyyy |
2510 | xxxx | yyyyyyyyyyyyyyy |
2512 | xxxxxx | yyyyyyyyyyyyyy |
2513 | xxxxxxxx | yyyyyyyyyyyy |
2514 | xxxxxxxxxx | yyyyyyyyyy |
2515 | xxxxxxxxxxxx | yyyyyyyy |
2516 | xxxxxxxxxxxxxx | yyyyyy |
2517 | xxxxxxxxxxxxxxxx | yyyy |
2518 | xxxxxxxxxxxxxxxxxx | yy |
2519 | xxxxxxxxxxxxxxxxxx | |
2521 +--------------------+-----------------+
2526 \pset format unaligned
2529 0123456789|yyyyyyyyyyyyyyyyyy
2531 0123456789abcdef|xxxx
2532 0123456789|yyyyyyyyyyyyyyyy
2534 0123456789abcdef|xxxxxx
2535 0123456789|yyyyyyyyyyyyyy
2537 0123456789abcdef|xxxxxxxx
2538 0123456789|yyyyyyyyyyyy
2540 0123456789abcdef|xxxxxxxxxx
2541 0123456789|yyyyyyyyyy
2543 0123456789abcdef|xxxxxxxxxxxx
2546 0123456789abcdef|xxxxxxxxxxxxxx
2549 0123456789abcdef|xxxxxxxxxxxxxxxx
2552 0123456789abcdef|xxxxxxxxxxxxxxxxxx
2555 0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
2557 \pset format aligned
2561 0123456789 yyyyyyyyyyyyyyyyyy
2563 0123456789abcdef xxxx
2564 0123456789 yyyyyyyyyyyyyyyy
2566 0123456789abcdef xxxxxx
2567 0123456789 yyyyyyyyyyyyyy
2569 0123456789abcdef xxxxxxxx
2570 0123456789 yyyyyyyyyyyy
2572 0123456789abcdef xxxxxxxxxx
2573 0123456789 yyyyyyyyyy
2575 0123456789abcdef xxxxxxxxxxxx
2578 0123456789abcdef xxxxxxxxxxxxxx
2581 0123456789abcdef xxxxxxxxxxxxxxxx
2584 0123456789abcdef xxxxxxxxxxxxxxxxxx
2587 0123456789abcdef xxxxxxxxxxxxxxxxxxxx
2590 \pset format wrapped
2594 0123456789 yyyyyyyyyyyyyyyyyy
2596 0123456789abcdef xxxx
2597 0123456789 yyyyyyyyyyyyyyyy
2599 0123456789abcdef xxxxxx
2600 0123456789 yyyyyyyyyyyyyy
2602 0123456789abcdef xxxxxxxx
2603 0123456789 yyyyyyyyyyyy
2605 0123456789abcdef xxxxxxxxxx
2606 0123456789 yyyyyyyyyy
2608 0123456789abcdef xxxxxxxxxxxx
2611 0123456789abcdef xxxxxxxxxxxxxx
2614 0123456789abcdef xxxxxxxxxxxxxxxx
2617 0123456789abcdef xxxxxxxxxxxxxxxxxx
2620 0123456789abcdef xxxxxxxxxxxxxxxxxxxx
2624 \pset format unaligned
2627 0123456789|yyyyyyyyyyyyyyyyyy
2629 0123456789abcdef|xxxx
2630 0123456789|yyyyyyyyyyyyyyyy
2632 0123456789abcdef|xxxxxx
2633 0123456789|yyyyyyyyyyyyyy
2635 0123456789abcdef|xxxxxxxx
2636 0123456789|yyyyyyyyyyyy
2638 0123456789abcdef|xxxxxxxxxx
2639 0123456789|yyyyyyyyyy
2641 0123456789abcdef|xxxxxxxxxxxx
2644 0123456789abcdef|xxxxxxxxxxxxxx
2647 0123456789abcdef|xxxxxxxxxxxxxxxx
2650 0123456789abcdef|xxxxxxxxxxxxxxxxxx
2653 0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
2655 \pset format aligned
2657 -[ RECORD 1 ]----+---------------------
2658 0123456789abcdef | xx
2659 0123456789 | yyyyyyyyyyyyyyyyyy
2660 -[ RECORD 2 ]----+---------------------
2661 0123456789abcdef | xxxx
2662 0123456789 | yyyyyyyyyyyyyyyy
2663 -[ RECORD 3 ]----+---------------------
2664 0123456789abcdef | xxxxxx
2665 0123456789 | yyyyyyyyyyyyyy
2666 -[ RECORD 4 ]----+---------------------
2667 0123456789abcdef | xxxxxxxx
2668 0123456789 | yyyyyyyyyyyy
2669 -[ RECORD 5 ]----+---------------------
2670 0123456789abcdef | xxxxxxxxxx
2671 0123456789 | yyyyyyyyyy
2672 -[ RECORD 6 ]----+---------------------
2673 0123456789abcdef | xxxxxxxxxxxx
2674 0123456789 | yyyyyyyy
2675 -[ RECORD 7 ]----+---------------------
2676 0123456789abcdef | xxxxxxxxxxxxxx
2678 -[ RECORD 8 ]----+---------------------
2679 0123456789abcdef | xxxxxxxxxxxxxxxx
2681 -[ RECORD 9 ]----+---------------------
2682 0123456789abcdef | xxxxxxxxxxxxxxxxxx
2684 -[ RECORD 10 ]---+---------------------
2685 0123456789abcdef | xxxxxxxxxxxxxxxxxxxx
2688 \pset format wrapped
2690 -[ RECORD 1 ]----+---------------------
2691 0123456789abcdef | xx
2692 0123456789 | yyyyyyyyyyyyyyyyyy
2693 -[ RECORD 2 ]----+---------------------
2694 0123456789abcdef | xxxx
2695 0123456789 | yyyyyyyyyyyyyyyy
2696 -[ RECORD 3 ]----+---------------------
2697 0123456789abcdef | xxxxxx
2698 0123456789 | yyyyyyyyyyyyyy
2699 -[ RECORD 4 ]----+---------------------
2700 0123456789abcdef | xxxxxxxx
2701 0123456789 | yyyyyyyyyyyy
2702 -[ RECORD 5 ]----+---------------------
2703 0123456789abcdef | xxxxxxxxxx
2704 0123456789 | yyyyyyyyyy
2705 -[ RECORD 6 ]----+---------------------
2706 0123456789abcdef | xxxxxxxxxxxx
2707 0123456789 | yyyyyyyy
2708 -[ RECORD 7 ]----+---------------------
2709 0123456789abcdef | xxxxxxxxxxxxxx
2711 -[ RECORD 8 ]----+---------------------
2712 0123456789abcdef | xxxxxxxxxxxxxxxx
2714 -[ RECORD 9 ]----+---------------------
2715 0123456789abcdef | xxxxxxxxxxxxxxxxxx
2717 -[ RECORD 10 ]---+---------------------
2718 0123456789abcdef | xxxxxxxxxxxxxxxxxxxx
2722 \pset format unaligned
2725 0123456789|yyyyyyyyyyyyyyyyyy
2727 0123456789abcdef|xxxx
2728 0123456789|yyyyyyyyyyyyyyyy
2730 0123456789abcdef|xxxxxx
2731 0123456789|yyyyyyyyyyyyyy
2733 0123456789abcdef|xxxxxxxx
2734 0123456789|yyyyyyyyyyyy
2736 0123456789abcdef|xxxxxxxxxx
2737 0123456789|yyyyyyyyyy
2739 0123456789abcdef|xxxxxxxxxxxx
2742 0123456789abcdef|xxxxxxxxxxxxxx
2745 0123456789abcdef|xxxxxxxxxxxxxxxx
2748 0123456789abcdef|xxxxxxxxxxxxxxxxxx
2751 0123456789abcdef|xxxxxxxxxxxxxxxxxxxx
2753 \pset format aligned
2755 +-[ RECORD 1 ]-----+----------------------+
2756 | 0123456789abcdef | xx |
2757 | 0123456789 | yyyyyyyyyyyyyyyyyy |
2758 +-[ RECORD 2 ]-----+----------------------+
2759 | 0123456789abcdef | xxxx |
2760 | 0123456789 | yyyyyyyyyyyyyyyy |
2761 +-[ RECORD 3 ]-----+----------------------+
2762 | 0123456789abcdef | xxxxxx |
2763 | 0123456789 | yyyyyyyyyyyyyy |
2764 +-[ RECORD 4 ]-----+----------------------+
2765 | 0123456789abcdef | xxxxxxxx |
2766 | 0123456789 | yyyyyyyyyyyy |
2767 +-[ RECORD 5 ]-----+----------------------+
2768 | 0123456789abcdef | xxxxxxxxxx |
2769 | 0123456789 | yyyyyyyyyy |
2770 +-[ RECORD 6 ]-----+----------------------+
2771 | 0123456789abcdef | xxxxxxxxxxxx |
2772 | 0123456789 | yyyyyyyy |
2773 +-[ RECORD 7 ]-----+----------------------+
2774 | 0123456789abcdef | xxxxxxxxxxxxxx |
2775 | 0123456789 | yyyyyy |
2776 +-[ RECORD 8 ]-----+----------------------+
2777 | 0123456789abcdef | xxxxxxxxxxxxxxxx |
2778 | 0123456789 | yyyy |
2779 +-[ RECORD 9 ]-----+----------------------+
2780 | 0123456789abcdef | xxxxxxxxxxxxxxxxxx |
2782 +-[ RECORD 10 ]----+----------------------+
2783 | 0123456789abcdef | xxxxxxxxxxxxxxxxxxxx |
2785 +------------------+----------------------+
2787 \pset format wrapped
2789 +-[ RECORD 1 ]-----+-------------------+
2790 | 0123456789abcdef | xx |
2791 | 0123456789 | yyyyyyyyyyyyyyyyy |
2793 +-[ RECORD 2 ]-----+-------------------+
2794 | 0123456789abcdef | xxxx |
2795 | 0123456789 | yyyyyyyyyyyyyyyy |
2796 +-[ RECORD 3 ]-----+-------------------+
2797 | 0123456789abcdef | xxxxxx |
2798 | 0123456789 | yyyyyyyyyyyyyy |
2799 +-[ RECORD 4 ]-----+-------------------+
2800 | 0123456789abcdef | xxxxxxxx |
2801 | 0123456789 | yyyyyyyyyyyy |
2802 +-[ RECORD 5 ]-----+-------------------+
2803 | 0123456789abcdef | xxxxxxxxxx |
2804 | 0123456789 | yyyyyyyyyy |
2805 +-[ RECORD 6 ]-----+-------------------+
2806 | 0123456789abcdef | xxxxxxxxxxxx |
2807 | 0123456789 | yyyyyyyy |
2808 +-[ RECORD 7 ]-----+-------------------+
2809 | 0123456789abcdef | xxxxxxxxxxxxxx |
2810 | 0123456789 | yyyyyy |
2811 +-[ RECORD 8 ]-----+-------------------+
2812 | 0123456789abcdef | xxxxxxxxxxxxxxxx |
2813 | 0123456789 | yyyy |
2814 +-[ RECORD 9 ]-----+-------------------+
2815 | 0123456789abcdef | xxxxxxxxxxxxxxxxx |
2818 +-[ RECORD 10 ]----+-------------------+
2819 | 0123456789abcdef | xxxxxxxxxxxxxxxxx |
2822 +------------------+-------------------+
2825 \pset linestyle ascii
2827 -- support table for output-format tests (useful to create a footer)
2828 create table psql_serial_tab (id serial);
2829 -- test header/footer/tuples_only behavior in aligned/unaligned/wrapped cases
2830 \pset format aligned
2832 \d psql_serial_tab_id_seq
2833 Sequence "public.psql_serial_tab_id_seq"
2834 Type | Start | Minimum | Maximum | Increment | Cycles? | Cache
2835 ---------+-------+---------+------------+-----------+---------+-------
2836 integer | 1 | 1 | 2147483647 | 1 | no | 1
2837 Owned by: public.psql_serial_tab.id
2839 \pset tuples_only true
2841 pg_catalog | exp | double precision | double precision | func
2842 pg_catalog | exp | numeric | numeric | func
2844 \pset tuples_only false
2846 \d psql_serial_tab_id_seq
2847 Sequence "public.psql_serial_tab_id_seq"
2848 -[ RECORD 1 ]---------
2852 Maximum | 2147483647
2857 Owned by: public.psql_serial_tab.id
2859 \pset tuples_only true
2863 Result data type | double precision
2864 Argument data types | double precision
2866 --------------------+-----------------
2869 Result data type | numeric
2870 Argument data types | numeric
2873 \pset tuples_only false
2874 -- empty table is a special case for this format
2875 select 1 where false;
2878 \pset format unaligned
2880 \d psql_serial_tab_id_seq
2881 Sequence "public.psql_serial_tab_id_seq"
2882 Type|Start|Minimum|Maximum|Increment|Cycles?|Cache
2883 integer|1|1|2147483647|1|no|1
2884 Owned by: public.psql_serial_tab.id
2885 \pset tuples_only true
2887 pg_catalog|exp|double precision|double precision|func
2888 pg_catalog|exp|numeric|numeric|func
2889 \pset tuples_only false
2891 \d psql_serial_tab_id_seq
2892 Sequence "public.psql_serial_tab_id_seq"
2902 Owned by: public.psql_serial_tab.id
2903 \pset tuples_only true
2907 Result data type|double precision
2908 Argument data types|double precision
2913 Result data type|numeric
2914 Argument data types|numeric
2916 \pset tuples_only false
2917 \pset format wrapped
2919 \d psql_serial_tab_id_seq
2920 Sequence "public.psql_serial_tab_id_seq"
2921 Type | Start | Minimum | Maximum | Increment | Cycles? | Cache
2922 ---------+-------+---------+------------+-----------+---------+-------
2923 integer | 1 | 1 | 2147483647 | 1 | no | 1
2924 Owned by: public.psql_serial_tab.id
2926 \pset tuples_only true
2928 pg_catalog | exp | double precision | double precision | func
2929 pg_catalog | exp | numeric | numeric | func
2931 \pset tuples_only false
2933 \d psql_serial_tab_id_seq
2934 Sequence "public.psql_serial_tab_id_seq"
2935 -[ RECORD 1 ]---------
2939 Maximum | 2147483647
2944 Owned by: public.psql_serial_tab.id
2946 \pset tuples_only true
2950 Result data type | double precision
2951 Argument data types | double precision
2953 --------------------+-----------------
2956 Result data type | numeric
2957 Argument data types | numeric
2960 \pset tuples_only false
2961 -- check conditional am display
2963 CREATE SCHEMA tableam_display;
2964 CREATE ROLE regress_display_role;
2965 ALTER SCHEMA tableam_display OWNER TO regress_display_role;
2966 SET search_path TO tableam_display;
2967 CREATE ACCESS METHOD heap_psql TYPE TABLE HANDLER heap_tableam_handler;
2968 SET ROLE TO regress_display_role;
2969 -- Use only relations with a physical size of zero.
2970 CREATE TABLE tbl_heap_psql(f1 int, f2 char(100)) using heap_psql;
2971 CREATE TABLE tbl_heap(f1 int, f2 char(100)) using heap;
2972 CREATE VIEW view_heap_psql AS SELECT f1 from tbl_heap_psql;
2973 CREATE MATERIALIZED VIEW mat_view_heap_psql USING heap_psql AS SELECT f1 from tbl_heap_psql;
2975 Table "tableam_display.tbl_heap_psql"
2976 Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
2977 --------+----------------+-----------+----------+---------+----------+--------------+-------------
2978 f1 | integer | | | | plain | |
2979 f2 | character(100) | | | | extended | |
2982 Table "tableam_display.tbl_heap"
2983 Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
2984 --------+----------------+-----------+----------+---------+----------+--------------+-------------
2985 f1 | integer | | | | plain | |
2986 f2 | character(100) | | | | extended | |
2988 \set HIDE_TABLEAM off
2990 Table "tableam_display.tbl_heap_psql"
2991 Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
2992 --------+----------------+-----------+----------+---------+----------+--------------+-------------
2993 f1 | integer | | | | plain | |
2994 f2 | character(100) | | | | extended | |
2995 Access method: heap_psql
2998 Table "tableam_display.tbl_heap"
2999 Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
3000 --------+----------------+-----------+----------+---------+----------+--------------+-------------
3001 f1 | integer | | | | plain | |
3002 f2 | character(100) | | | | extended | |
3005 -- AM is displayed for tables, indexes and materialized views.
3008 Schema | Name | Type | Owner | Persistence | Access method | Size | Description
3009 -----------------+--------------------+-------------------+----------------------+-------------+---------------+---------+-------------
3010 tableam_display | mat_view_heap_psql | materialized view | regress_display_role | permanent | heap_psql | 0 bytes |
3011 tableam_display | tbl_heap | table | regress_display_role | permanent | heap | 0 bytes |
3012 tableam_display | tbl_heap_psql | table | regress_display_role | permanent | heap_psql | 0 bytes |
3013 tableam_display | view_heap_psql | view | regress_display_role | permanent | | 0 bytes |
3018 Schema | Name | Type | Owner | Persistence | Access method | Size | Description
3019 -----------------+---------------+-------+----------------------+-------------+---------------+---------+-------------
3020 tableam_display | tbl_heap | table | regress_display_role | permanent | heap | 0 bytes |
3021 tableam_display | tbl_heap_psql | table | regress_display_role | permanent | heap_psql | 0 bytes |
3026 Schema | Name | Type | Owner | Persistence | Access method | Size | Description
3027 -----------------+--------------------+-------------------+----------------------+-------------+---------------+---------+-------------
3028 tableam_display | mat_view_heap_psql | materialized view | regress_display_role | permanent | heap_psql | 0 bytes |
3031 -- But not for views and sequences.
3034 Schema | Name | Type | Owner | Persistence | Size | Description
3035 -----------------+----------------+------+----------------------+-------------+---------+-------------
3036 tableam_display | view_heap_psql | view | regress_display_role | permanent | 0 bytes |
3039 \set HIDE_TABLEAM on
3042 Schema | Name | Type | Owner | Persistence | Size | Description
3043 -----------------+--------------------+-------------------+----------------------+-------------+---------+-------------
3044 tableam_display | mat_view_heap_psql | materialized view | regress_display_role | permanent | 0 bytes |
3045 tableam_display | tbl_heap | table | regress_display_role | permanent | 0 bytes |
3046 tableam_display | tbl_heap_psql | table | regress_display_role | permanent | 0 bytes |
3047 tableam_display | view_heap_psql | view | regress_display_role | permanent | 0 bytes |
3052 DROP SCHEMA tableam_display CASCADE;
3053 NOTICE: drop cascades to 4 other objects
3054 DETAIL: drop cascades to table tableam_display.tbl_heap_psql
3055 drop cascades to table tableam_display.tbl_heap
3056 drop cascades to view tableam_display.view_heap_psql
3057 drop cascades to materialized view tableam_display.mat_view_heap_psql
3058 DROP ACCESS METHOD heap_psql;
3059 DROP ROLE regress_display_role;
3060 -- test numericlocale (as best we can without control of psql's locale)
3061 \pset format aligned
3063 \pset numericlocale true
3064 select n, -n as m, n * 111 as x, '1e90'::float8 as f
3065 from generate_series(0,3) n;
3067 ---+----+-----+-------
3069 1 | -1 | 111 | 1e+90
3070 2 | -2 | 222 | 1e+90
3071 3 | -3 | 333 | 1e+90
3074 \pset numericlocale false
3075 -- test asciidoc output format
3076 \pset format asciidoc
3079 \d psql_serial_tab_id_seq
3081 .Sequence "public.psql_serial_tab_id_seq"
3082 [options="header",cols="<l,>l,>l,>l,>l,<l,>l",frame="none"]
3084 ^l|Type ^l|Start ^l|Minimum ^l|Maximum ^l|Increment ^l|Cycles? ^l|Cache
3085 |integer |1 |1 |2147483647 |1 |no |1
3089 Owned by: public.psql_serial_tab.id
3091 \pset tuples_only true
3094 [cols="<l,<l,<l,<l,<l",frame="none"]
3096 |pg_catalog |exp |double precision |double precision |func
3097 |pg_catalog |exp |numeric |numeric |func
3099 \pset tuples_only false
3101 \d psql_serial_tab_id_seq
3103 .Sequence "public.psql_serial_tab_id_seq"
3104 [cols="h,l",frame="none"]
3110 <l|Maximum >l|2147483647
3117 Owned by: public.psql_serial_tab.id
3119 \pset tuples_only true
3122 [cols="h,l",frame="none"]
3125 <l|Schema <l|pg_catalog
3127 <l|Result data type <l|double precision
3128 <l|Argument data types <l|double precision
3131 <l|Schema <l|pg_catalog
3133 <l|Result data type <l|numeric
3134 <l|Argument data types <l|numeric
3137 \pset tuples_only false
3139 select 'some|text' as "a|title", ' ' as "empty ", n as int
3140 from generate_series(1,2) as n;
3145 [options="header",cols="<l,<l,>l",frame="none",grid="none"]
3147 ^l|a\|title ^l|empty ^l|int
3158 [options="header",cols="<l,<l,>l",frame="none"]
3160 ^l|a\|title ^l|empty ^l|int
3171 [options="header",cols="<l,<l,>l",frame="all",grid="all"]
3173 ^l|a\|title ^l|empty ^l|int
3185 [cols="h,l",frame="none",grid="none"]
3188 <l|a\|title <l|some\|text
3192 <l|a\|title <l|some\|text
3199 [cols="h,l",frame="none"]
3202 <l|a\|title <l|some\|text
3206 <l|a\|title <l|some\|text
3213 [cols="h,l",frame="all",grid="all"]
3216 <l|a\|title <l|some\|text
3220 <l|a\|title <l|some\|text
3225 -- test csv output format
3229 \d psql_serial_tab_id_seq
3230 Type,Start,Minimum,Maximum,Increment,Cycles?,Cache
3231 integer,1,1,2147483647,1,no,1
3232 \pset tuples_only true
3234 pg_catalog,exp,double precision,double precision,func
3235 pg_catalog,exp,numeric,numeric,func
3236 \pset tuples_only false
3238 \d psql_serial_tab_id_seq
3246 \pset tuples_only true
3250 Result data type,double precision
3251 Argument data types,double precision
3255 Result data type,numeric
3256 Argument data types,numeric
3258 \pset tuples_only false
3260 select 'some"text' as "a""title", E' <foo>\n<bar>' as "junk",
3261 ' ' as "empty", n as int
3262 from generate_series(1,2) as n;
3265 "a""title",junk,empty,int
3266 "some""text"," <foo>
3268 "some""text"," <foo>
3272 "a""title","some""text"
3277 "a""title","some""text"
3285 select 'comma,comma' as comma, 'semi;semi' as semi;
3287 "comma,comma",semi;semi
3288 \pset csv_fieldsep ';'
3289 select 'comma,comma' as comma, 'semi;semi' as semi;
3291 comma,comma;"semi;semi"
3292 select '\.' as data;
3295 \pset csv_fieldsep '.'
3296 select '\' as d1, '' as d2;
3299 -- illegal csv separators
3300 \pset csv_fieldsep ''
3301 \pset: csv_fieldsep must be a single one-byte character
3302 \pset csv_fieldsep '\0'
3303 \pset: csv_fieldsep must be a single one-byte character
3304 \pset csv_fieldsep '\n'
3305 \pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return
3306 \pset csv_fieldsep '\r'
3307 \pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return
3308 \pset csv_fieldsep '"'
3309 \pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return
3310 \pset csv_fieldsep ',,'
3311 \pset: csv_fieldsep must be a single one-byte character
3312 \pset csv_fieldsep ','
3313 -- test html output format
3317 \d psql_serial_tab_id_seq
3319 <caption>Sequence "public.psql_serial_tab_id_seq"</caption>
3321 <th align="center">Type</th>
3322 <th align="center">Start</th>
3323 <th align="center">Minimum</th>
3324 <th align="center">Maximum</th>
3325 <th align="center">Increment</th>
3326 <th align="center">Cycles?</th>
3327 <th align="center">Cache</th>
3330 <td align="left">integer</td>
3331 <td align="right">1</td>
3332 <td align="right">1</td>
3333 <td align="right">2147483647</td>
3334 <td align="right">1</td>
3335 <td align="left">no</td>
3336 <td align="right">1</td>
3339 <p>Owned by: public.psql_serial_tab.id<br />
3341 \pset tuples_only true
3345 <td align="left">pg_catalog</td>
3346 <td align="left">exp</td>
3347 <td align="left">double precision</td>
3348 <td align="left">double precision</td>
3349 <td align="left">func</td>
3352 <td align="left">pg_catalog</td>
3353 <td align="left">exp</td>
3354 <td align="left">numeric</td>
3355 <td align="left">numeric</td>
3356 <td align="left">func</td>
3360 \pset tuples_only false
3362 \d psql_serial_tab_id_seq
3364 <caption>Sequence "public.psql_serial_tab_id_seq"</caption>
3366 <tr><td colspan="2" align="center">Record 1</td></tr>
3369 <td align="left">integer</td>
3373 <td align="right">1</td>
3377 <td align="right">1</td>
3381 <td align="right">2147483647</td>
3385 <td align="right">1</td>
3389 <td align="left">no</td>
3393 <td align="right">1</td>
3396 <p>Owned by: public.psql_serial_tab.id<br />
3398 \pset tuples_only true
3402 <tr><td colspan="2"> </td></tr>
3405 <td align="left">pg_catalog</td>
3409 <td align="left">exp</td>
3412 <th>Result data type</th>
3413 <td align="left">double precision</td>
3416 <th>Argument data types</th>
3417 <td align="left">double precision</td>
3421 <td align="left">func</td>
3424 <tr><td colspan="2"> </td></tr>
3427 <td align="left">pg_catalog</td>
3431 <td align="left">exp</td>
3434 <th>Result data type</th>
3435 <td align="left">numeric</td>
3438 <th>Argument data types</th>
3439 <td align="left">numeric</td>
3443 <td align="left">func</td>
3447 \pset tuples_only false
3449 select 'some"text' as "a&title", E' <foo>\n<bar>' as "junk",
3450 ' ' as "empty", n as int
3451 from generate_series(1,2) as n;
3457 <th align="center">a&title</th>
3458 <th align="center">junk</th>
3459 <th align="center">empty</th>
3460 <th align="center">int</th>
3463 <td align="left">some"text</td>
3464 <td align="left"> <foo><br />
3466 <td align="left"> </td>
3467 <td align="right">1</td>
3470 <td align="left">some"text</td>
3471 <td align="left"> <foo><br />
3473 <td align="left"> </td>
3474 <td align="right">2</td>
3483 <th align="center">a&title</th>
3484 <th align="center">junk</th>
3485 <th align="center">empty</th>
3486 <th align="center">int</th>
3489 <td align="left">some"text</td>
3490 <td align="left"> <foo><br />
3492 <td align="left"> </td>
3493 <td align="right">1</td>
3496 <td align="left">some"text</td>
3497 <td align="left"> <foo><br />
3499 <td align="left"> </td>
3500 <td align="right">2</td>
3505 \pset tableattr foobar
3507 <table border="1" foobar>
3509 <th align="center">a&title</th>
3510 <th align="center">junk</th>
3511 <th align="center">empty</th>
3512 <th align="center">int</th>
3515 <td align="left">some"text</td>
3516 <td align="left"> <foo><br />
3518 <td align="left"> </td>
3519 <td align="right">1</td>
3522 <td align="left">some"text</td>
3523 <td align="left"> <foo><br />
3525 <td align="left"> </td>
3526 <td align="right">2</td>
3537 <tr><td colspan="2" align="center">Record 1</td></tr>
3539 <th>a&title</th>
3540 <td align="left">some"text</td>
3544 <td align="left"> <foo><br />
3549 <td align="left"> </td>
3553 <td align="right">1</td>
3556 <tr><td colspan="2" align="center">Record 2</td></tr>
3558 <th>a&title</th>
3559 <td align="left">some"text</td>
3563 <td align="left"> <foo><br />
3568 <td align="left"> </td>
3572 <td align="right">2</td>
3580 <tr><td colspan="2" align="center">Record 1</td></tr>
3582 <th>a&title</th>
3583 <td align="left">some"text</td>
3587 <td align="left"> <foo><br />
3592 <td align="left"> </td>
3596 <td align="right">1</td>
3599 <tr><td colspan="2" align="center">Record 2</td></tr>
3601 <th>a&title</th>
3602 <td align="left">some"text</td>
3606 <td align="left"> <foo><br />
3611 <td align="left"> </td>
3615 <td align="right">2</td>
3619 \pset tableattr foobar
3621 <table border="1" foobar>
3623 <tr><td colspan="2" align="center">Record 1</td></tr>
3625 <th>a&title</th>
3626 <td align="left">some"text</td>
3630 <td align="left"> <foo><br />
3635 <td align="left"> </td>
3639 <td align="right">1</td>
3642 <tr><td colspan="2" align="center">Record 2</td></tr>
3644 <th>a&title</th>
3645 <td align="left">some"text</td>
3649 <td align="left"> <foo><br />
3654 <td align="left"> </td>
3658 <td align="right">2</td>
3664 -- test latex output format
3668 \d psql_serial_tab_id_seq
3670 Sequence "public.psql\_serial\_tab\_id\_seq"
3673 \begin{tabular}{l | r | r | r | r | l | r}
3674 \textit{Type} & \textit{Start} & \textit{Minimum} & \textit{Maximum} & \textit{Increment} & \textit{Cycles?} & \textit{Cache} \\
3676 integer & 1 & 1 & 2147483647 & 1 & no & 1 \\
3679 \noindent Owned by: public.psql\_serial\_tab.id \\
3681 \pset tuples_only true
3683 \begin{tabular}{l | l | l | l | l}
3684 pg\_catalog & exp & double precision & double precision & func \\
3685 pg\_catalog & exp & numeric & numeric & func \\
3689 \pset tuples_only false
3691 \d psql_serial_tab_id_seq
3693 Sequence "public.psql\_serial\_tab\_id\_seq"
3696 \begin{tabular}{c|l}
3697 \multicolumn{2}{c}{\textit{Record 1}} \\
3702 Maximum & 2147483647 \\
3708 \noindent Owned by: public.psql\_serial\_tab.id \\
3710 \pset tuples_only true
3712 \begin{tabular}{c|l}
3714 Schema & pg\_catalog \\
3716 Result data type & double precision \\
3717 Argument data types & double precision \\
3720 Schema & pg\_catalog \\
3722 Result data type & numeric \\
3723 Argument data types & numeric \\
3728 \pset tuples_only false
3730 select 'some\more_text' as "a$title", E' #<foo>%&^~|\n{bar}' as "junk",
3731 ' ' as "empty", n as int
3732 from generate_series(1,2) as n;
3736 \begin{tabular}{lllr}
3737 \textit{a\$title} & \textit{junk} & \textit{empty} & \textit{int} \\
3739 some\textbackslash{}more\_text & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} & & 1 \\
3740 some\textbackslash{}more\_text & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} & & 2 \\
3743 \noindent (2 rows) \\
3747 \begin{tabular}{l | l | l | r}
3748 \textit{a\$title} & \textit{junk} & \textit{empty} & \textit{int} \\
3750 some\textbackslash{}more\_text & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} & & 1 \\
3751 some\textbackslash{}more\_text & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} & & 2 \\
3754 \noindent (2 rows) \\
3758 \begin{tabular}{| l | l | l | r |}
3760 \textit{a\$title} & \textit{junk} & \textit{empty} & \textit{int} \\
3762 some\textbackslash{}more\_text & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} & & 1 \\
3763 some\textbackslash{}more\_text & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} & & 2 \\
3767 \noindent (2 rows) \\
3771 \begin{tabular}{| l | l | l | r |}
3773 \textit{a\$title} & \textit{junk} & \textit{empty} & \textit{int} \\
3775 some\textbackslash{}more\_text & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} & & 1 \\
3777 some\textbackslash{}more\_text & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} & & 2 \\
3781 \noindent (2 rows) \\
3787 \multicolumn{2}{c}{\textit{Record 1}} \\
3788 a\$title & some\textbackslash{}more\_text \\
3789 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
3792 \multicolumn{2}{c}{\textit{Record 2}} \\
3793 a\$title & some\textbackslash{}more\_text \\
3794 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
3802 \begin{tabular}{c|l}
3803 \multicolumn{2}{c}{\textit{Record 1}} \\
3805 a\$title & some\textbackslash{}more\_text \\
3806 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
3809 \multicolumn{2}{c}{\textit{Record 2}} \\
3811 a\$title & some\textbackslash{}more\_text \\
3812 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
3820 \begin{tabular}{|c|l|}
3822 \multicolumn{2}{|c|}{\textit{Record 1}} \\
3824 a\$title & some\textbackslash{}more\_text \\
3825 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
3829 \multicolumn{2}{|c|}{\textit{Record 2}} \\
3831 a\$title & some\textbackslash{}more\_text \\
3832 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
3841 \begin{tabular}{|c|l|}
3843 \multicolumn{2}{|c|}{\textit{Record 1}} \\
3845 a\$title & some\textbackslash{}more\_text \\
3846 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
3850 \multicolumn{2}{|c|}{\textit{Record 2}} \\
3852 a\$title & some\textbackslash{}more\_text \\
3853 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
3861 -- test latex-longtable output format
3862 \pset format latex-longtable
3865 \d psql_serial_tab_id_seq
3866 \begin{longtable}{l | r | r | r | r | l | r}
3867 \small\textbf{\textit{Type}} & \small\textbf{\textit{Start}} & \small\textbf{\textit{Minimum}} & \small\textbf{\textit{Maximum}} & \small\textbf{\textit{Increment}} & \small\textbf{\textit{Cycles?}} & \small\textbf{\textit{Cache}} \\
3870 \small\textbf{\textit{Type}} & \small\textbf{\textit{Start}} & \small\textbf{\textit{Minimum}} & \small\textbf{\textit{Maximum}} & \small\textbf{\textit{Increment}} & \small\textbf{\textit{Cycles?}} & \small\textbf{\textit{Cache}} \\
3873 \caption[Sequence "public.psql\_serial\_tab\_id\_seq" (Continued)]{Sequence "public.psql\_serial\_tab\_id\_seq"}
3875 \caption[Sequence "public.psql\_serial\_tab\_id\_seq"]{Sequence "public.psql\_serial\_tab\_id\_seq"}
3877 \raggedright{integer}
3883 \raggedright{2147483647}
3889 \raggedright{1} \tabularnewline
3891 \pset tuples_only true
3893 \begin{longtable}{l | l | l | l | l}
3894 \raggedright{pg\_catalog}
3898 \raggedright{double precision}
3900 \raggedright{double precision}
3902 \raggedright{func} \tabularnewline
3903 \raggedright{pg\_catalog}
3907 \raggedright{numeric}
3909 \raggedright{numeric}
3911 \raggedright{func} \tabularnewline
3913 \pset tuples_only false
3915 \d psql_serial_tab_id_seq
3917 Sequence "public.psql\_serial\_tab\_id\_seq"
3920 \begin{tabular}{c|l}
3921 \multicolumn{2}{c}{\textit{Record 1}} \\
3926 Maximum & 2147483647 \\
3932 \noindent Owned by: public.psql\_serial\_tab.id \\
3934 \pset tuples_only true
3936 \begin{tabular}{c|l}
3938 Schema & pg\_catalog \\
3940 Result data type & double precision \\
3941 Argument data types & double precision \\
3944 Schema & pg\_catalog \\
3946 Result data type & numeric \\
3947 Argument data types & numeric \\
3952 \pset tuples_only false
3954 select 'some\more_text' as "a$title", E' #<foo>%&^~|\n{bar}' as "junk",
3955 ' ' as "empty", n as int
3956 from generate_series(1,2) as n;
3960 \begin{longtable}{lllr}
3961 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
3964 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
3967 \raggedright{some\textbackslash{}more\_text}
3969 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
3973 \raggedright{1} \tabularnewline
3974 \raggedright{some\textbackslash{}more\_text}
3976 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
3980 \raggedright{2} \tabularnewline
3984 \begin{longtable}{l | l | l | r}
3985 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
3988 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
3991 \raggedright{some\textbackslash{}more\_text}
3993 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
3997 \raggedright{1} \tabularnewline
3998 \raggedright{some\textbackslash{}more\_text}
4000 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
4004 \raggedright{2} \tabularnewline
4008 \begin{longtable}{| l | l | l | r |}
4010 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
4014 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
4021 \raggedright{some\textbackslash{}more\_text}
4023 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
4027 \raggedright{1} \tabularnewline
4028 \raggedright{some\textbackslash{}more\_text}
4030 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
4034 \raggedright{2} \tabularnewline
4038 \begin{longtable}{| l | l | l | r |}
4040 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
4044 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
4050 \raggedright{some\textbackslash{}more\_text}
4052 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
4056 \raggedright{1} \tabularnewline
4058 \raggedright{some\textbackslash{}more\_text}
4060 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
4064 \raggedright{2} \tabularnewline
4069 \begin{longtable}{| p{lr\textwidth} | p{lr\textwidth} | p{lr\textwidth} | r |}
4071 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
4075 \small\textbf{\textit{a\$title}} & \small\textbf{\textit{junk}} & \small\textbf{\textit{empty}} & \small\textbf{\textit{int}} \\
4081 \raggedright{some\textbackslash{}more\_text}
4083 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
4087 \raggedright{1} \tabularnewline
4089 \raggedright{some\textbackslash{}more\_text}
4091 \raggedright{ \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\}}
4095 \raggedright{2} \tabularnewline
4103 \multicolumn{2}{c}{\textit{Record 1}} \\
4104 a\$title & some\textbackslash{}more\_text \\
4105 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4108 \multicolumn{2}{c}{\textit{Record 2}} \\
4109 a\$title & some\textbackslash{}more\_text \\
4110 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4118 \begin{tabular}{c|l}
4119 \multicolumn{2}{c}{\textit{Record 1}} \\
4121 a\$title & some\textbackslash{}more\_text \\
4122 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4125 \multicolumn{2}{c}{\textit{Record 2}} \\
4127 a\$title & some\textbackslash{}more\_text \\
4128 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4136 \begin{tabular}{|c|l|}
4138 \multicolumn{2}{|c|}{\textit{Record 1}} \\
4140 a\$title & some\textbackslash{}more\_text \\
4141 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4145 \multicolumn{2}{|c|}{\textit{Record 2}} \\
4147 a\$title & some\textbackslash{}more\_text \\
4148 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4157 \begin{tabular}{|c|l|}
4159 \multicolumn{2}{|c|}{\textit{Record 1}} \\
4161 a\$title & some\textbackslash{}more\_text \\
4162 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4166 \multicolumn{2}{|c|}{\textit{Record 2}} \\
4168 a\$title & some\textbackslash{}more\_text \\
4169 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4178 \begin{tabular}{|c|l|}
4180 \multicolumn{2}{|c|}{\textit{Record 1}} \\
4182 a\$title & some\textbackslash{}more\_text \\
4183 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4187 \multicolumn{2}{|c|}{\textit{Record 2}} \\
4189 a\$title & some\textbackslash{}more\_text \\
4190 junk & \#\textless{}foo\textgreater{}\%\&\^{}\~{}\textbar{}\\\{bar\} \\
4199 -- test troff-ms output format
4200 \pset format troff-ms
4203 \d psql_serial_tab_id_seq
4206 Sequence "public.psql_serial_tab_id_seq"
4211 l | r | r | r | r | l | r.
4212 \fIType\fP \fIStart\fP \fIMinimum\fP \fIMaximum\fP \fIIncrement\fP \fICycles?\fP \fICache\fP
4214 integer 1 1 2147483647 1 no 1
4217 Owned by: public.psql_serial_tab.id
4219 \pset tuples_only true
4225 pg_catalog exp double precision double precision func
4226 pg_catalog exp numeric numeric func
4230 \pset tuples_only false
4232 \d psql_serial_tab_id_seq
4235 Sequence "public.psql_serial_tab_id_seq"
4254 Owned by: public.psql_serial_tab.id
4256 \pset tuples_only true
4265 Result data type double precision
4266 Argument data types double precision
4271 Result data type numeric
4272 Argument data types numeric
4277 \pset tuples_only false
4279 select 'some\text' as "a\title", E' <foo>\n<bar>' as "junk",
4280 ' ' as "empty", n as int
4281 from generate_series(1,2) as n;
4289 \fIa\(rstitle\fP \fIjunk\fP \fIempty\fP \fIint\fP
4305 \fIa\(rstitle\fP \fIjunk\fP \fIempty\fP \fIint\fP
4321 \fIa\(rstitle\fP \fIjunk\fP \fIempty\fP \fIint\fP
4341 a\(rstitle some\(rstext
4351 a\(rstitle some\(rstext
4369 a\(rstitle some\(rstext
4380 a\(rstitle some\(rstext
4398 a\(rstitle some\(rstext
4410 a\(rstitle some\(rstext
4419 -- check ambiguous format requests
4421 \pset: ambiguous abbreviation "a" matches both "aligned" and "asciidoc"
4423 -- clean up after output format tests
4424 drop table psql_serial_tab;
4425 \pset format aligned
4428 -- \echo and allied features
4429 \echo this is a test
4431 \echo -n without newline
4432 without newline\echo with -n newline
4434 \echo '-n' with newline
4439 \qecho this is a test
4443 \warn this is a test
4447 -- tests for \if ... \endif
4455 select 'still okay';
4465 -- at this point query buffer should still have last valid line
4472 -- \if should work okay on part of a query
4485 select \if false \\ (bogus \else \\ 42 \endif \\ forty_two;
4491 -- test a large nested if using a variety of true-equivalents
4499 \echo 'should not print #1-1'
4502 \echo 'should not print #1-2'
4505 \echo 'should not print #1-3'
4508 \echo 'should not print #1-4'
4510 -- test a variety of false-equivalents in an if/elif/else structure
4512 \echo 'should not print #2-1'
4514 \echo 'should not print #2-2'
4516 \echo 'should not print #2-3'
4518 \echo 'should not print #2-4'
4523 -- test true-false elif after initial true branch
4525 \echo 'should print #2-5'
4528 \echo 'should not print #2-6'
4530 \echo 'should not print #2-7'
4532 \echo 'should not print #2-8'
4534 -- test simple true-then-else
4536 \echo 'first thing true'
4539 \echo 'should not print #3-1'
4541 -- test simple false-true-else
4543 \echo 'should not print #4-1'
4545 \echo 'second thing true'
4548 \echo 'should not print #5-1'
4550 -- invalid boolean expressions are false
4551 \if invalid boolean expression
4552 unrecognized value "invalid boolean expression" for "\if expression": Boolean expected
4553 \echo 'will not print #6-1'
4555 \echo 'will print anyway #6-2'
4556 will print anyway #6-2
4558 -- test un-matched endif
4560 \endif: no matching \if
4561 -- test un-matched else
4563 \else: no matching \if
4564 -- test un-matched elif
4566 \elif: no matching \if
4567 -- test double-else error
4571 \else: cannot occur after \else
4573 -- test elif out-of-order
4577 \elif: cannot occur after \else
4579 -- test if-endif matching in a false branch
4582 \echo 'should not print #7-1'
4584 \echo 'should not print #7-2'
4586 \echo 'should not print #7-3'
4588 \echo 'should print #7-4'
4591 -- show that vars and backticks are not expanded when ignoring extra args
4593 \echo :foo :'foo' :"foo"
4595 \pset fieldsep | `nosuchcommand` :foo :'foo' :"foo"
4596 \pset: extra argument "nosuchcommand" ignored
4597 \pset: extra argument ":foo" ignored
4598 \pset: extra argument ":'foo'" ignored
4599 \pset: extra argument ":"foo"" ignored
4600 -- show that vars and backticks are not expanded and commands are ignored
4601 -- when in a false if-branch
4602 \set try_to_quit '\\q'
4605 \echo `nosuchcommand` :foo :'foo' :"foo"
4606 \pset fieldsep | `nosuchcommand` :foo :'foo' :"foo"
4608 SELECT $1 \bind 1 \g
4609 \bind_named stmt1 1 2 \g
4611 \c arg1 arg2 arg3 arg4
4615 \copy arg1 arg2 arg3 arg4 arg5 arg6
4617 SELECT 1 as one, 2, 3 \crosstabview
4622 \echo arg1 arg2 arg3 arg4 arg5
4630 SELECT 1 AS one \gset
4649 \set arg1 arg2 arg3 arg4 arg5 arg6 arg7
4660 -- \else here is eaten as part of OT_FILEPIPE argument
4661 \w |/no/such/file \else
4662 -- \endif here is eaten as part of whole-line argument
4663 \! whole_line \endif
4666 \echo 'should print #8-1'
4669 -- :{?...} defined variable test
4672 \echo '#9-1 ok, variable i is defined'
4673 #9-1 ok, variable i is defined
4675 \echo 'should not print #9-2'
4677 \if :{?no_such_variable}
4678 \echo 'should not print #10-1'
4680 \echo '#10-2 ok, variable no_such_variable is not defined'
4681 #10-2 ok, variable no_such_variable is not defined
4683 SELECT :{?i} AS i_is_defined;
4689 SELECT NOT :{?no_such_var} AS no_such_var_is_not_defined;
4690 no_such_var_is_not_defined
4691 ----------------------------
4696 \set SHOW_CONTEXT never
4700 raise exception 'bar';
4704 \set SHOW_CONTEXT errors
4708 raise exception 'bar';
4712 CONTEXT: PL/pgSQL function inline_code_block line 4 at RAISE
4713 \set SHOW_CONTEXT always
4717 raise exception 'bar';
4720 CONTEXT: PL/pgSQL function inline_code_block line 3 at RAISE
4722 CONTEXT: PL/pgSQL function inline_code_block line 4 at RAISE
4723 -- test printing and clearing the query buffer
4755 -- tests for special result variables
4756 -- working query, 2 rows selected
4757 SELECT 1 AS stuff UNION SELECT 2;
4764 \echo 'error:' :ERROR
4766 \echo 'error code:' :SQLSTATE
4768 \echo 'number of rows:' :ROW_COUNT
4772 ERROR: syntax error at or near ";"
4773 LINE 1: SELECT 1 UNION;
4775 \echo 'error:' :ERROR
4777 \echo 'error code:' :SQLSTATE
4779 \echo 'number of rows:' :ROW_COUNT
4781 \echo 'last error message:' :LAST_ERROR_MESSAGE
4782 last error message: syntax error at or near ";"
4783 \echo 'last error code:' :LAST_ERROR_SQLSTATE
4784 last error code: 42601
4787 \echo 'error:' :ERROR
4789 \echo 'error code:' :SQLSTATE
4791 \echo 'number of rows:' :ROW_COUNT
4793 -- must have kept previous values
4794 \echo 'last error message:' :LAST_ERROR_MESSAGE
4795 last error message: syntax error at or near ";"
4796 \echo 'last error code:' :LAST_ERROR_SQLSTATE
4797 last error code: 42601
4798 -- other query error
4799 DROP TABLE this_table_does_not_exist;
4800 ERROR: table "this_table_does_not_exist" does not exist
4801 \echo 'error:' :ERROR
4803 \echo 'error code:' :SQLSTATE
4805 \echo 'number of rows:' :ROW_COUNT
4807 \echo 'last error message:' :LAST_ERROR_MESSAGE
4808 last error message: table "this_table_does_not_exist" does not exist
4809 \echo 'last error code:' :LAST_ERROR_SQLSTATE
4810 last error code: 42P01
4811 -- nondefault verbosity error settings (except verbose, which is too unstable)
4812 \set VERBOSITY terse
4814 ERROR: syntax error at or near ";" at character 15
4815 \echo 'error:' :ERROR
4817 \echo 'error code:' :SQLSTATE
4819 \echo 'last error message:' :LAST_ERROR_MESSAGE
4820 last error message: syntax error at or near ";"
4821 \set VERBOSITY sqlstate
4824 \echo 'error:' :ERROR
4826 \echo 'error code:' :SQLSTATE
4828 \echo 'last error message:' :LAST_ERROR_MESSAGE
4829 last error message: division by zero
4830 \set VERBOSITY default
4832 SELECT 3 AS three, 4 AS four \gdesc
4839 \echo 'error:' :ERROR
4841 \echo 'error code:' :SQLSTATE
4843 \echo 'number of rows:' :ROW_COUNT
4845 -- \gdesc with an error
4847 ERROR: syntax error at end of input
4850 \echo 'error:' :ERROR
4852 \echo 'error code:' :SQLSTATE
4854 \echo 'number of rows:' :ROW_COUNT
4856 \echo 'last error message:' :LAST_ERROR_MESSAGE
4857 last error message: syntax error at end of input
4858 \echo 'last error code:' :LAST_ERROR_SQLSTATE
4859 last error code: 42601
4860 -- check row count for a query with chunked results
4862 select unique2 from tenk1 order by unique2 limit 19;
4886 \echo 'error:' :ERROR
4888 \echo 'error code:' :SQLSTATE
4890 \echo 'number of rows:' :ROW_COUNT
4892 -- chunked results with an error after the first chunk
4893 -- (we must disable parallel query here, else the behavior is timing-dependent)
4894 set debug_parallel_query = off;
4895 select 1/(15-unique2) from tenk1 order by unique2 limit 19;
4908 ERROR: division by zero
4909 \echo 'error:' :ERROR
4911 \echo 'error code:' :SQLSTATE
4913 \echo 'number of rows:' :ROW_COUNT
4915 \echo 'last error message:' :LAST_ERROR_MESSAGE
4916 last error message: division by zero
4917 \echo 'last error code:' :LAST_ERROR_SQLSTATE
4918 last error code: 22012
4919 reset debug_parallel_query;
4921 create schema testpart;
4922 create role regress_partitioning_role;
4923 alter schema testpart owner to regress_partitioning_role;
4924 set role to regress_partitioning_role;
4925 -- run test inside own schema and hide other partitions
4926 set search_path to testpart;
4927 create table testtable_apple(logdate date);
4928 create table testtable_orange(logdate date);
4929 create index testtable_apple_index on testtable_apple(logdate);
4930 create index testtable_orange_index on testtable_orange(logdate);
4931 create table testpart_apple(logdate date) partition by range(logdate);
4932 create table testpart_orange(logdate date) partition by range(logdate);
4933 create index testpart_apple_index on testpart_apple(logdate);
4934 create index testpart_orange_index on testpart_orange(logdate);
4935 -- only partition related object should be displayed
4937 List of partitioned relations
4938 Schema | Name | Owner | Type | Parent name | Table
4939 ----------+----------------------+---------------------------+-------------------+-------------+----------------
4940 testpart | testpart_apple | regress_partitioning_role | partitioned table | |
4941 testpart | testpart_apple_index | regress_partitioning_role | partitioned index | | testpart_apple
4945 List of partitioned tables
4946 Schema | Name | Owner | Parent name
4947 ----------+----------------+---------------------------+-------------
4948 testpart | testpart_apple | regress_partitioning_role |
4952 List of partitioned indexes
4953 Schema | Name | Owner | Parent name | Table
4954 ----------+----------------------+---------------------------+-------------+----------------
4955 testpart | testpart_apple_index | regress_partitioning_role | | testpart_apple
4958 drop table testtable_apple;
4959 drop table testtable_orange;
4960 drop table testpart_apple;
4961 drop table testpart_orange;
4962 create table parent_tab (id int) partition by range (id);
4963 create index parent_index on parent_tab (id);
4964 create table child_0_10 partition of parent_tab
4965 for values from (0) to (10);
4966 create table child_10_20 partition of parent_tab
4967 for values from (10) to (20);
4968 create table child_20_30 partition of parent_tab
4969 for values from (20) to (30);
4970 insert into parent_tab values (generate_series(0,29));
4971 create table child_30_40 partition of parent_tab
4972 for values from (30) to (40)
4973 partition by range(id);
4974 create table child_30_35 partition of child_30_40
4975 for values from (30) to (35);
4976 create table child_35_40 partition of child_30_40
4977 for values from (35) to (40);
4978 insert into parent_tab values (generate_series(30,39));
4980 List of partitioned tables
4981 Schema | Name | Owner
4982 ----------+------------+---------------------------
4983 testpart | parent_tab | regress_partitioning_role
4987 List of partitioned indexes
4988 Schema | Name | Owner | Table
4989 ----------+--------------+---------------------------+------------
4990 testpart | parent_index | regress_partitioning_role | parent_tab
4994 List of partitioned relations
4995 Schema | Name | Owner | Type | Parent name | Table
4996 ----------+--------------------+---------------------------+-------------------+--------------+-------------
4997 testpart | parent_tab | regress_partitioning_role | partitioned table | |
4998 testpart | child_30_40 | regress_partitioning_role | partitioned table | parent_tab |
4999 testpart | parent_index | regress_partitioning_role | partitioned index | | parent_tab
5000 testpart | child_30_40_id_idx | regress_partitioning_role | partitioned index | parent_index | child_30_40
5004 List of partitioned relations
5005 Schema | Name | Owner | Type | Table
5006 ----------+--------------+---------------------------+-------------------+------------
5007 testpart | parent_tab | regress_partitioning_role | partitioned table |
5008 testpart | parent_index | regress_partitioning_role | partitioned index | parent_tab
5012 List of partitioned tables
5013 Schema | Name | Owner | Parent name
5014 ----------+-------------+---------------------------+-------------
5015 testpart | parent_tab | regress_partitioning_role |
5016 testpart | child_30_40 | regress_partitioning_role | parent_tab
5020 List of partitioned indexes
5021 Schema | Name | Owner | Parent name | Table
5022 ----------+--------------------+---------------------------+--------------+-------------
5023 testpart | parent_index | regress_partitioning_role | | parent_tab
5024 testpart | child_30_40_id_idx | regress_partitioning_role | parent_index | child_30_40
5028 List of partitioned relations
5029 Schema | Name | Owner | Type | Parent name | Table
5030 ----------+--------------------+---------------------------+-------------------+--------------+-------------
5031 testpart | parent_tab | regress_partitioning_role | partitioned table | |
5032 testpart | child_30_40 | regress_partitioning_role | partitioned table | parent_tab |
5033 testpart | parent_index | regress_partitioning_role | partitioned index | | parent_tab
5034 testpart | child_30_40_id_idx | regress_partitioning_role | partitioned index | parent_index | child_30_40
5038 List of partitioned relations
5039 Schema | Name | Owner | Type | Parent name | Table
5040 ----------+--------------------+---------------------------+-------------------+--------------+-------------
5041 testpart | parent_tab | regress_partitioning_role | partitioned table | |
5042 testpart | child_30_40 | regress_partitioning_role | partitioned table | parent_tab |
5043 testpart | parent_index | regress_partitioning_role | partitioned index | | parent_tab
5044 testpart | child_30_40_id_idx | regress_partitioning_role | partitioned index | parent_index | child_30_40
5047 drop table parent_tab cascade;
5048 drop schema testpart;
5049 set search_path to default;
5050 set role to default;
5051 drop role regress_partitioning_role;
5052 -- \d on toast table (use pg_statistic's toast table, which has a known name)
5053 \d pg_toast.pg_toast_2619
5054 TOAST table "pg_toast.pg_toast_2619"
5056 ------------+---------
5060 Owning table: "pg_catalog.pg_statistic"
5062 "pg_toast_2619_index" PRIMARY KEY, btree (chunk_id, chunk_seq)
5064 -- check printing info about access methods
5066 List of access methods
5080 List of access methods
5094 List of access methods
5103 List of access methods
5109 List of access methods
5114 \dA: extra argument "bar" ignored
5116 List of access methods
5117 Name | Type | Handler | Description
5118 --------+-------+----------------------+----------------------------------------
5119 brin | Index | brinhandler | block range index (BRIN) access method
5120 btree | Index | bthandler | b-tree index access method
5121 gin | Index | ginhandler | GIN index access method
5122 gist | Index | gisthandler | GiST index access method
5123 hash | Index | hashhandler | hash index access method
5124 heap | Table | heap_tableam_handler | heap table access method
5125 heap2 | Table | heap_tableam_handler |
5126 spgist | Index | spghandler | SP-GiST index access method
5130 List of access methods
5131 Name | Type | Handler | Description
5132 --------+-------+----------------------+----------------------------------------
5133 brin | Index | brinhandler | block range index (BRIN) access method
5134 btree | Index | bthandler | b-tree index access method
5135 gin | Index | ginhandler | GIN index access method
5136 gist | Index | gisthandler | GiST index access method
5137 hash | Index | hashhandler | hash index access method
5138 heap | Table | heap_tableam_handler | heap table access method
5139 heap2 | Table | heap_tableam_handler |
5140 spgist | Index | spghandler | SP-GiST index access method
5144 List of access methods
5145 Name | Type | Handler | Description
5146 -------+-------+----------------------+--------------------------
5147 hash | Index | hashhandler | hash index access method
5148 heap | Table | heap_tableam_handler | heap table access method
5149 heap2 | Table | heap_tableam_handler |
5153 List of access methods
5154 Name | Type | Handler | Description
5155 ------+------+---------+-------------
5159 List of operator classes
5160 AM | Input type | Storage type | Operator class | Default?
5161 ------+------------+--------------+----------------------+----------
5162 brin | oid | | oid_bloom_ops | no
5163 brin | oid | | oid_minmax_multi_ops | no
5164 brin | oid | | oid_minmax_ops | yes
5168 List of operator families
5169 AM | Operator family | Applicable types
5170 --------+-----------------+------------------
5171 spgist | box_ops | box
5172 spgist | kd_point_ops | point
5173 spgist | network_ops | inet
5174 spgist | poly_ops | polygon
5175 spgist | quad_point_ops | point
5176 spgist | range_ops | anyrange
5177 spgist | text_ops | text
5181 List of operator families
5182 AM | Operator family | Applicable types
5183 -------+-----------------+---------------------------
5184 btree | integer_ops | smallint, integer, bigint
5187 \dAo+ btree float_ops
5188 List of operators of operator families
5189 AM | Operator family | Operator | Strategy | Purpose | Sort opfamily
5190 -------+-----------------+---------------------------------------+----------+---------+---------------
5191 btree | float_ops | <(double precision,double precision) | 1 | search |
5192 btree | float_ops | <=(double precision,double precision) | 2 | search |
5193 btree | float_ops | =(double precision,double precision) | 3 | search |
5194 btree | float_ops | >=(double precision,double precision) | 4 | search |
5195 btree | float_ops | >(double precision,double precision) | 5 | search |
5196 btree | float_ops | <(real,real) | 1 | search |
5197 btree | float_ops | <=(real,real) | 2 | search |
5198 btree | float_ops | =(real,real) | 3 | search |
5199 btree | float_ops | >=(real,real) | 4 | search |
5200 btree | float_ops | >(real,real) | 5 | search |
5201 btree | float_ops | <(double precision,real) | 1 | search |
5202 btree | float_ops | <=(double precision,real) | 2 | search |
5203 btree | float_ops | =(double precision,real) | 3 | search |
5204 btree | float_ops | >=(double precision,real) | 4 | search |
5205 btree | float_ops | >(double precision,real) | 5 | search |
5206 btree | float_ops | <(real,double precision) | 1 | search |
5207 btree | float_ops | <=(real,double precision) | 2 | search |
5208 btree | float_ops | =(real,double precision) | 3 | search |
5209 btree | float_ops | >=(real,double precision) | 4 | search |
5210 btree | float_ops | >(real,double precision) | 5 | search |
5213 \dAo * pg_catalog.jsonb_path_ops
5214 List of operators of operator families
5215 AM | Operator family | Operator | Strategy | Purpose
5216 -----+-----------------+--------------------+----------+---------
5217 gin | jsonb_path_ops | @>(jsonb,jsonb) | 7 | search
5218 gin | jsonb_path_ops | @?(jsonb,jsonpath) | 15 | search
5219 gin | jsonb_path_ops | @@(jsonb,jsonpath) | 16 | search
5222 \dAp+ btree float_ops
5223 List of support functions of operator families
5224 AM | Operator family | Registered left type | Registered right type | Number | Function
5225 -------+-----------------+----------------------+-----------------------+--------+------------------------------------------------------------------------------
5226 btree | float_ops | double precision | double precision | 1 | btfloat8cmp(double precision,double precision)
5227 btree | float_ops | double precision | double precision | 2 | btfloat8sortsupport(internal)
5228 btree | float_ops | double precision | double precision | 3 | in_range(double precision,double precision,double precision,boolean,boolean)
5229 btree | float_ops | real | real | 1 | btfloat4cmp(real,real)
5230 btree | float_ops | real | real | 2 | btfloat4sortsupport(internal)
5231 btree | float_ops | double precision | real | 1 | btfloat84cmp(double precision,real)
5232 btree | float_ops | real | double precision | 1 | btfloat48cmp(real,double precision)
5233 btree | float_ops | real | double precision | 3 | in_range(real,real,double precision,boolean,boolean)
5236 \dAp * pg_catalog.uuid_ops
5237 List of support functions of operator families
5238 AM | Operator family | Registered left type | Registered right type | Number | Function
5239 -------+-----------------+----------------------+-----------------------+--------+--------------------
5240 btree | uuid_ops | uuid | uuid | 1 | uuid_cmp
5241 btree | uuid_ops | uuid | uuid | 2 | uuid_sortsupport
5242 btree | uuid_ops | uuid | uuid | 4 | btequalimage
5243 hash | uuid_ops | uuid | uuid | 1 | uuid_hash
5244 hash | uuid_ops | uuid | uuid | 2 | uuid_hash_extended
5248 set work_mem = 10240;
5250 List of configuration parameters
5257 List of configuration parameters
5258 Parameter | Value | Type | Context | Access privileges
5259 -----------+-------+---------+---------+-------------------
5260 work_mem | 10MB | integer | user |
5264 -- check \df, \do with argument specifications
5267 Schema | Name | Result data type | Argument data types | Type
5268 ------------+--------------+------------------+---------------------+------
5269 pg_catalog | dsqrt | double precision | double precision | func
5270 pg_catalog | numeric_sqrt | numeric | numeric | func
5271 pg_catalog | sqrt | double precision | double precision | func
5272 pg_catalog | sqrt | numeric | numeric | func
5277 Schema | Name | Result data type | Argument data types | Type
5278 ------------+--------------+------------------+---------------------+------
5279 pg_catalog | numeric_sqrt | numeric | numeric | func
5280 pg_catalog | sqrt | numeric | numeric | func
5285 Schema | Name | Result data type | Argument data types | Type
5286 ------------+-------------+------------------+---------------------+------
5287 pg_catalog | int24pl | integer | smallint, integer | func
5288 pg_catalog | int28pl | bigint | smallint, bigint | func
5289 pg_catalog | int2pl | smallint | smallint, smallint | func
5290 pg_catalog | int42pl | integer | integer, smallint | func
5291 pg_catalog | int48pl | bigint | integer, bigint | func
5292 pg_catalog | int4pl | integer | integer, integer | func
5293 pg_catalog | int82pl | bigint | bigint, smallint | func
5294 pg_catalog | int84pl | bigint | bigint, integer | func
5295 pg_catalog | int8pl | bigint | bigint, bigint | func
5296 pg_catalog | interval_pl | interval | interval, interval | func
5301 Schema | Name | Result data type | Argument data types | Type
5302 ------------+---------+------------------+---------------------+------
5303 pg_catalog | int42pl | integer | integer, smallint | func
5304 pg_catalog | int48pl | bigint | integer, bigint | func
5305 pg_catalog | int4pl | integer | integer, integer | func
5308 \df int*pl * pg_catalog.int8
5310 Schema | Name | Result data type | Argument data types | Type
5311 ------------+---------+------------------+---------------------+------
5312 pg_catalog | int28pl | bigint | smallint, bigint | func
5313 pg_catalog | int48pl | bigint | integer, bigint | func
5314 pg_catalog | int8pl | bigint | bigint, bigint | func
5319 Schema | Name | Result data type | Argument data types | Type
5320 ------------+-------------+------------------+----------------------------------------------------------------------------------------------------+------
5321 pg_catalog | aclcontains | boolean | aclitem[], aclitem | func
5322 pg_catalog | aclexplode | SETOF record | acl aclitem[], OUT grantor oid, OUT grantee oid, OUT privilege_type text, OUT is_grantable boolean | func
5323 pg_catalog | aclinsert | aclitem[] | aclitem[], aclitem | func
5324 pg_catalog | aclremove | aclitem[] | aclitem[], aclitem | func
5327 \df has_database_privilege oid text
5329 Schema | Name | Result data type | Argument data types | Type
5330 ------------+------------------------+------------------+---------------------+------
5331 pg_catalog | has_database_privilege | boolean | oid, text | func
5332 pg_catalog | has_database_privilege | boolean | oid, text, text | func
5335 \df has_database_privilege oid text -
5337 Schema | Name | Result data type | Argument data types | Type
5338 ------------+------------------------+------------------+---------------------+------
5339 pg_catalog | has_database_privilege | boolean | oid, text | func
5344 Schema | Name | Result data type | Argument data types | Type
5345 ------------+---------+------------------+---------------------+------
5346 pg_catalog | bit_and | smallint | smallint | agg
5347 pg_catalog | bit_or | smallint | smallint | agg
5348 pg_catalog | bit_xor | smallint | smallint | agg
5351 \df *._pg_expandarray
5353 Schema | Name | Result data type | Argument data types | Type
5354 --------------------+-----------------+------------------+-------------------------------------------+------
5355 information_schema | _pg_expandarray | SETOF record | anyarray, OUT x anyelement, OUT n integer | func
5358 \do - pg_catalog.int4
5360 Schema | Name | Left arg type | Right arg type | Result type | Description
5361 ------------+------+---------------+----------------+-------------+-------------
5362 pg_catalog | - | | integer | integer | negate
5367 Schema | Name | Left arg type | Right arg type | Result type | Description
5368 ------------+------+---------------+----------------+-------------+-------------
5369 pg_catalog | && | anyarray | anyarray | boolean | overlaps
5373 -- we have to use functions with a predictable owner name, so make a role
5374 create role regress_psql_user superuser;
5376 set session authorization regress_psql_user;
5377 create function psql_df_internal (float8)
5379 language internal immutable parallel safe strict
5381 create function psql_df_sql (x integer)
5384 begin atomic select x + 1; end;
5385 create function psql_df_plpgsql ()
5388 as $$ begin return; end; $$;
5389 comment on function psql_df_plpgsql () is 'some comment';
5392 Schema | Name | Result data type | Argument data types | Type | Volatility | Parallel | Owner | Security | Access privileges | Language | Internal name | Description
5393 --------+------------------+------------------+---------------------+------+------------+----------+-------------------+----------+-------------------+----------+---------------+--------------
5394 public | psql_df_internal | double precision | double precision | func | immutable | safe | regress_psql_user | invoker | | internal | dsin |
5395 public | psql_df_plpgsql | void | | func | volatile | unsafe | regress_psql_user | invoker | | plpgsql | | some comment
5396 public | psql_df_sql | integer | x integer | func | volatile | unsafe | regress_psql_user | definer | | sql | |
5400 drop role regress_psql_user;
5402 \sf information_schema._pg_index_position
5403 CREATE OR REPLACE FUNCTION information_schema._pg_index_position(oid, smallint)
5408 SELECT (ss.a).n AS n
5409 FROM ( SELECT information_schema._pg_expandarray(pg_index.indkey) AS a
5411 WHERE (pg_index.indexrelid = $1)) ss
5412 WHERE ((ss.a).x = $2);
5414 \sf+ information_schema._pg_index_position
5415 CREATE OR REPLACE FUNCTION information_schema._pg_index_position(oid, smallint)
5420 2 SELECT (ss.a).n AS n
5421 3 FROM ( SELECT information_schema._pg_expandarray(pg_index.indkey) AS a
5423 5 WHERE (pg_index.indexrelid = $1)) ss
5424 6 WHERE ((ss.a).x = $2);
5426 \sf+ interval_pl_time
5427 CREATE OR REPLACE FUNCTION pg_catalog.interval_pl_time(interval, time without time zone)
5428 RETURNS time without time zone
5430 IMMUTABLE PARALLEL SAFE STRICT COST 1
5433 CREATE OR REPLACE FUNCTION pg_catalog.ts_debug(document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[], OUT dictionary regdictionary, OUT lexemes text[])
5434 RETURNS SETOF record
5436 STABLE PARALLEL SAFE STRICT
5438 SELECT ts_debug.alias,
5439 ts_debug.description,
5441 ts_debug.dictionaries,
5442 ts_debug.dictionary,
5444 FROM ts_debug(get_current_ts_config(), ts_debug.document) ts_debug(alias, description, token, dictionaries, dictionary, lexemes);
5447 CREATE OR REPLACE FUNCTION pg_catalog.ts_debug(document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[], OUT dictionary regdictionary, OUT lexemes text[])
5448 RETURNS SETOF record
5450 STABLE PARALLEL SAFE STRICT
5452 2 SELECT ts_debug.alias,
5453 3 ts_debug.description,
5455 5 ts_debug.dictionaries,
5456 6 ts_debug.dictionary,
5458 8 FROM ts_debug(get_current_ts_config(), ts_debug.document) ts_debug(alias, description, token, dictionaries, dictionary, lexemes);
5461 CREATE TABLE ac_test (a int);
5463 INSERT INTO ac_test VALUES (1);
5465 SELECT * FROM ac_test;
5472 INSERT INTO ac_test VALUES (2);
5474 SELECT * FROM ac_test;
5482 INSERT INTO ac_test VALUES (3);
5484 SELECT * FROM ac_test;
5493 INSERT INTO ac_test VALUES (4);
5495 SELECT * FROM ac_test;
5505 SELECT * FROM ac_test; -- should be gone now
5506 ERROR: relation "ac_test" does not exist
5507 LINE 1: SELECT * FROM ac_test;
5509 -- ON_ERROR_ROLLBACK
5510 \set ON_ERROR_ROLLBACK on
5511 CREATE TABLE oer_test (a int);
5513 INSERT INTO oer_test VALUES (1);
5514 INSERT INTO oer_test VALUES ('foo');
5515 ERROR: invalid input syntax for type integer: "foo"
5516 LINE 1: INSERT INTO oer_test VALUES ('foo');
5518 INSERT INTO oer_test VALUES (3);
5520 SELECT * FROM oer_test;
5528 INSERT INTO oer_test VALUES (4);
5530 SELECT * FROM oer_test;
5538 INSERT INTO oer_test VALUES (5);
5540 INSERT INTO oer_test VALUES (6);
5542 SELECT * FROM oer_test;
5551 DROP TABLE oer_test;
5552 \set ON_ERROR_ROLLBACK off
5555 ERROR: relation "notexists" does not exist
5556 LINE 1: SELECT * FROM notexists;
5558 STATEMENT: SELECT * FROM notexists;
5562 CREATE FUNCTION warn(msg TEXT) RETURNS BOOLEAN LANGUAGE plpgsql
5564 BEGIN RAISE NOTICE 'warn %', msg ; RETURN TRUE ; END
5567 SELECT 1 AS one \; SELECT warn('1.5') \; SELECT 2 AS two ;
5569 CONTEXT: PL/pgSQL function warn(text) line 2 at RAISE
5585 -- \gset applies to last query only
5586 SELECT 3 AS three \; SELECT warn('3.5') \; SELECT 4 AS four \gset
5588 CONTEXT: PL/pgSQL function warn(text) line 2 at RAISE
5601 -- syntax error stops all processing
5602 SELECT 5 \; SELECT 6 + \; SELECT warn('6.5') \; SELECT 7 ;
5603 ERROR: syntax error at or near ";"
5604 LINE 1: SELECT 5 ; SELECT 6 + ; SELECT warn('6.5') ; SELECT 7 ;
5606 -- with aborted transaction, stop on first error
5607 BEGIN \; SELECT 8 AS eight \; SELECT 9/0 AS nine \; ROLLBACK \; SELECT 10 AS ten ;
5613 ERROR: division by zero
5614 -- close previously aborted transaction
5616 -- miscellaneous SQL commands
5617 -- (non SELECT output is sent to stderr, thus is not shown in expected results)
5618 SELECT 'ok' AS "begin" \;
5619 CREATE TABLE psql_comics(s TEXT) \;
5620 INSERT INTO psql_comics VALUES ('Calvin'), ('hobbes') \;
5621 COPY psql_comics FROM STDIN \;
5622 UPDATE psql_comics SET s = 'Hobbes' WHERE s = 'hobbes' \;
5623 DELETE FROM psql_comics WHERE s = 'Moe' \;
5624 COPY psql_comics TO STDOUT \;
5625 TRUNCATE psql_comics \;
5626 DROP TABLE psql_comics \;
5627 SELECT 'ok' AS "done" ;
5641 \set SHOW_ALL_RESULTS off
5642 SELECT 1 AS one \; SELECT warn('1.5') \; SELECT 2 AS two ;
5644 CONTEXT: PL/pgSQL function warn(text) line 2 at RAISE
5650 \set SHOW_ALL_RESULTS on
5651 DROP FUNCTION warn(TEXT);
5655 \getenv abs_builddir PG_ABS_BUILDDIR
5656 \set g_out_file :abs_builddir '/results/psql-output1'
5657 CREATE TEMPORARY TABLE reload_output(
5658 lineno int NOT NULL GENERATED ALWAYS AS IDENTITY,
5661 SELECT 1 AS a \g :g_out_file
5662 COPY reload_output(line) FROM :'g_out_file';
5663 SELECT 2 AS b\; SELECT 3 AS c\; SELECT 4 AS d \g :g_out_file
5664 COPY reload_output(line) FROM :'g_out_file';
5665 COPY (SELECT 'foo') TO STDOUT \; COPY (SELECT 'bar') TO STDOUT \g :g_out_file
5666 COPY reload_output(line) FROM :'g_out_file';
5667 SELECT line FROM reload_output ORDER BY lineno;
5694 TRUNCATE TABLE reload_output;
5698 \set o_out_file :abs_builddir '/results/psql-output2'
5700 SELECT max(unique1) FROM onek;
5701 SELECT 1 AS a\; SELECT 2 AS b\; SELECT 3 AS c;
5703 -- The data goes to :g_out_file and the status to :o_out_file
5705 COPY (SELECT unique1 FROM onek ORDER BY unique1 LIMIT 10) TO :'g_out_file';
5706 -- DML command status
5707 UPDATE onek SET unique1 = unique1 WHERE false;
5710 -- Check the contents of the files generated.
5711 COPY reload_output(line) FROM :'g_out_file';
5712 SELECT line FROM reload_output ORDER BY lineno;
5727 TRUNCATE TABLE reload_output;
5728 COPY reload_output(line) FROM :'o_out_file';
5729 SELECT line FROM reload_output ORDER BY lineno;
5756 TRUNCATE TABLE reload_output;
5757 -- Multiple COPY TO STDOUT with output file
5759 -- The data goes to :o_out_file with no status generated.
5760 COPY (SELECT 'foo1') TO STDOUT \; COPY (SELECT 'bar1') TO STDOUT;
5761 -- Combination of \o and \g file with multiple COPY queries.
5762 COPY (SELECT 'foo2') TO STDOUT \; COPY (SELECT 'bar2') TO STDOUT \g :g_out_file
5764 -- Check the contents of the files generated.
5765 COPY reload_output(line) FROM :'g_out_file';
5766 SELECT line FROM reload_output ORDER BY lineno;
5773 TRUNCATE TABLE reload_output;
5774 COPY reload_output(line) FROM :'o_out_file';
5775 SELECT line FROM reload_output ORDER BY lineno;
5782 DROP TABLE reload_output;
5784 -- AUTOCOMMIT and combined queries
5787 \echo '# AUTOCOMMIT:' :AUTOCOMMIT
5789 -- BEGIN is now implicit
5790 CREATE TABLE foo(s TEXT) \;
5792 CREATE TABLE foo(s TEXT) \;
5793 INSERT INTO foo(s) VALUES ('hello'), ('world') \;
5797 -- table foo is still there
5798 SELECT * FROM foo ORDER BY 1 \;
5808 \echo '# AUTOCOMMIT:' :AUTOCOMMIT
5810 -- BEGIN now explicit for multi-statement transactions
5812 CREATE TABLE foo(s TEXT) \;
5813 INSERT INTO foo(s) VALUES ('hello'), ('world') \;
5818 -- implicit transactions
5819 SELECT * FROM foo ORDER BY 1 \;
5828 -- test ON_ERROR_ROLLBACK and combined queries
5830 CREATE FUNCTION psql_error(msg TEXT) RETURNS BOOLEAN AS $$
5832 RAISE EXCEPTION 'error %', msg;
5834 $$ LANGUAGE plpgsql;
5835 \set ON_ERROR_ROLLBACK on
5836 \echo '# ON_ERROR_ROLLBACK:' :ON_ERROR_ROLLBACK
5837 # ON_ERROR_ROLLBACK: on
5838 \echo '# AUTOCOMMIT:' :AUTOCOMMIT
5841 CREATE TABLE bla(s NO_SUCH_TYPE); -- fails
5842 ERROR: type "no_such_type" does not exist
5843 LINE 1: CREATE TABLE bla(s NO_SUCH_TYPE);
5845 CREATE TABLE bla(s TEXT); -- succeeds
5846 SELECT psql_error('oops!'); -- fails
5848 CONTEXT: PL/pgSQL function psql_error(text) line 3 at RAISE
5849 INSERT INTO bla VALUES ('Calvin'), ('Hobbes');
5851 SELECT * FROM bla ORDER BY 1;
5859 INSERT INTO bla VALUES ('Susie'); -- succeeds
5860 -- now with combined queries
5861 INSERT INTO bla VALUES ('Rosalyn') \; -- will rollback
5862 SELECT 'before error' AS show \; -- will show nevertheless!
5863 SELECT psql_error('boum!') \; -- failure
5864 SELECT 'after error' AS noshow; -- hidden by preceding error
5871 CONTEXT: PL/pgSQL function psql_error(text) line 3 at RAISE
5872 INSERT INTO bla(s) VALUES ('Moe') \; -- will rollback
5873 SELECT psql_error('bam!');
5875 CONTEXT: PL/pgSQL function psql_error(text) line 3 at RAISE
5876 INSERT INTO bla VALUES ('Miss Wormwood'); -- succeeds
5878 SELECT * FROM bla ORDER BY 1;
5887 -- some with autocommit off
5889 \echo '# AUTOCOMMIT:' :AUTOCOMMIT
5892 INSERT INTO bla VALUES ('Dad'); -- succeeds
5893 SELECT psql_error('bad!'); -- implicit partial rollback
5895 CONTEXT: PL/pgSQL function psql_error(text) line 3 at RAISE
5896 INSERT INTO bla VALUES ('Mum') \; -- will rollback
5897 SELECT COUNT(*) AS "#mum"
5898 FROM bla WHERE s = 'Mum' \; -- but be counted here
5899 SELECT psql_error('bad!'); -- implicit partial rollback
5906 CONTEXT: PL/pgSQL function psql_error(text) line 3 at RAISE
5908 SELECT COUNT(*) AS "#mum"
5909 FROM bla WHERE s = 'Mum' \; -- no mum here
5910 SELECT * FROM bla ORDER BY 1;
5928 \set ON_ERROR_ROLLBACK off
5929 \echo '# final ON_ERROR_ROLLBACK:' :ON_ERROR_ROLLBACK
5930 # final ON_ERROR_ROLLBACK: off
5932 DROP FUNCTION psql_error;
5933 -- check describing invalid multipart names
5935 improper qualified name (too many dotted names): regression.heap
5937 improper qualified name (too many dotted names): nonesuch.heap
5938 \dt host.regression.pg_catalog.pg_class
5939 improper qualified name (too many dotted names): host.regression.pg_catalog.pg_class
5940 \dt |.pg_catalog.pg_class
5941 cross-database references are not implemented: |.pg_catalog.pg_class
5942 \dt nonesuch.pg_catalog.pg_class
5943 cross-database references are not implemented: nonesuch.pg_catalog.pg_class
5944 \da host.regression.pg_catalog.sum
5945 improper qualified name (too many dotted names): host.regression.pg_catalog.sum
5946 \da +.pg_catalog.sum
5947 cross-database references are not implemented: +.pg_catalog.sum
5948 \da nonesuch.pg_catalog.sum
5949 cross-database references are not implemented: nonesuch.pg_catalog.sum
5951 improper qualified name (too many dotted names): nonesuch.brin
5952 \dAc regression.brin
5953 improper qualified name (too many dotted names): regression.brin
5955 improper qualified name (too many dotted names): nonesuch.brin
5956 \dAf regression.brin
5957 improper qualified name (too many dotted names): regression.brin
5959 improper qualified name (too many dotted names): nonesuch.brin
5960 \dAo regression.brin
5961 improper qualified name (too many dotted names): regression.brin
5963 improper qualified name (too many dotted names): nonesuch.brin
5964 \dAp regression.brin
5965 improper qualified name (too many dotted names): regression.brin
5966 \db nonesuch.pg_default
5967 improper qualified name (too many dotted names): nonesuch.pg_default
5968 \db regression.pg_default
5969 improper qualified name (too many dotted names): regression.pg_default
5970 \dc host.regression.public.conversion
5971 improper qualified name (too many dotted names): host.regression.public.conversion
5972 \dc (.public.conversion
5973 cross-database references are not implemented: (.public.conversion
5974 \dc nonesuch.public.conversion
5975 cross-database references are not implemented: nonesuch.public.conversion
5976 \dC host.regression.pg_catalog.int8
5977 improper qualified name (too many dotted names): host.regression.pg_catalog.int8
5978 \dC ).pg_catalog.int8
5979 cross-database references are not implemented: ).pg_catalog.int8
5980 \dC nonesuch.pg_catalog.int8
5981 cross-database references are not implemented: nonesuch.pg_catalog.int8
5982 \dd host.regression.pg_catalog.pg_class
5983 improper qualified name (too many dotted names): host.regression.pg_catalog.pg_class
5984 \dd [.pg_catalog.pg_class
5985 cross-database references are not implemented: [.pg_catalog.pg_class
5986 \dd nonesuch.pg_catalog.pg_class
5987 cross-database references are not implemented: nonesuch.pg_catalog.pg_class
5988 \dD host.regression.public.gtestdomain1
5989 improper qualified name (too many dotted names): host.regression.public.gtestdomain1
5990 \dD ].public.gtestdomain1
5991 cross-database references are not implemented: ].public.gtestdomain1
5992 \dD nonesuch.public.gtestdomain1
5993 cross-database references are not implemented: nonesuch.public.gtestdomain1
5994 \ddp host.regression.pg_catalog.pg_class
5995 improper qualified name (too many dotted names): host.regression.pg_catalog.pg_class
5996 \ddp {.pg_catalog.pg_class
5997 cross-database references are not implemented: {.pg_catalog.pg_class
5998 \ddp nonesuch.pg_catalog.pg_class
5999 cross-database references are not implemented: nonesuch.pg_catalog.pg_class
6000 \dE host.regression.public.ft
6001 improper qualified name (too many dotted names): host.regression.public.ft
6003 cross-database references are not implemented: }.public.ft
6004 \dE nonesuch.public.ft
6005 cross-database references are not implemented: nonesuch.public.ft
6006 \di host.regression.public.tenk1_hundred
6007 improper qualified name (too many dotted names): host.regression.public.tenk1_hundred
6008 \di ..public.tenk1_hundred
6009 improper qualified name (too many dotted names): ..public.tenk1_hundred
6010 \di nonesuch.public.tenk1_hundred
6011 cross-database references are not implemented: nonesuch.public.tenk1_hundred
6012 \dm host.regression.public.mvtest_bb
6013 improper qualified name (too many dotted names): host.regression.public.mvtest_bb
6014 \dm ^.public.mvtest_bb
6015 cross-database references are not implemented: ^.public.mvtest_bb
6016 \dm nonesuch.public.mvtest_bb
6017 cross-database references are not implemented: nonesuch.public.mvtest_bb
6018 \ds host.regression.public.check_seq
6019 improper qualified name (too many dotted names): host.regression.public.check_seq
6020 \ds regression|mydb.public.check_seq
6021 cross-database references are not implemented: regression|mydb.public.check_seq
6022 \ds nonesuch.public.check_seq
6023 cross-database references are not implemented: nonesuch.public.check_seq
6024 \dt host.regression.public.b_star
6025 improper qualified name (too many dotted names): host.regression.public.b_star
6026 \dt regres+ion.public.b_star
6027 cross-database references are not implemented: regres+ion.public.b_star
6028 \dt nonesuch.public.b_star
6029 cross-database references are not implemented: nonesuch.public.b_star
6030 \dv host.regression.public.shoe
6031 improper qualified name (too many dotted names): host.regression.public.shoe
6032 \dv regress(ion).public.shoe
6033 cross-database references are not implemented: regress(ion).public.shoe
6034 \dv nonesuch.public.shoe
6035 cross-database references are not implemented: nonesuch.public.shoe
6036 \des nonesuch.server
6037 improper qualified name (too many dotted names): nonesuch.server
6038 \des regression.server
6039 improper qualified name (too many dotted names): regression.server
6040 \des nonesuch.server
6041 improper qualified name (too many dotted names): nonesuch.server
6042 \des regression.server
6043 improper qualified name (too many dotted names): regression.server
6044 \des nonesuch.username
6045 improper qualified name (too many dotted names): nonesuch.username
6046 \des regression.username
6047 improper qualified name (too many dotted names): regression.username
6049 improper qualified name (too many dotted names): nonesuch.fdw
6051 improper qualified name (too many dotted names): regression.fdw
6052 \df host.regression.public.namelen
6053 improper qualified name (too many dotted names): host.regression.public.namelen
6054 \df regres[qrstuv]ion.public.namelen
6055 cross-database references are not implemented: regres[qrstuv]ion.public.namelen
6056 \df nonesuch.public.namelen
6057 cross-database references are not implemented: nonesuch.public.namelen
6058 \dF host.regression.pg_catalog.arabic
6059 improper qualified name (too many dotted names): host.regression.pg_catalog.arabic
6060 \dF regres{1,2}ion.pg_catalog.arabic
6061 cross-database references are not implemented: regres{1,2}ion.pg_catalog.arabic
6062 \dF nonesuch.pg_catalog.arabic
6063 cross-database references are not implemented: nonesuch.pg_catalog.arabic
6064 \dFd host.regression.pg_catalog.arabic_stem
6065 improper qualified name (too many dotted names): host.regression.pg_catalog.arabic_stem
6066 \dFd regres?ion.pg_catalog.arabic_stem
6067 cross-database references are not implemented: regres?ion.pg_catalog.arabic_stem
6068 \dFd nonesuch.pg_catalog.arabic_stem
6069 cross-database references are not implemented: nonesuch.pg_catalog.arabic_stem
6070 \dFp host.regression.pg_catalog.default
6071 improper qualified name (too many dotted names): host.regression.pg_catalog.default
6072 \dFp ^regression.pg_catalog.default
6073 cross-database references are not implemented: ^regression.pg_catalog.default
6074 \dFp nonesuch.pg_catalog.default
6075 cross-database references are not implemented: nonesuch.pg_catalog.default
6076 \dFt host.regression.pg_catalog.ispell
6077 improper qualified name (too many dotted names): host.regression.pg_catalog.ispell
6078 \dFt regression$.pg_catalog.ispell
6079 cross-database references are not implemented: regression$.pg_catalog.ispell
6080 \dFt nonesuch.pg_catalog.ispell
6081 cross-database references are not implemented: nonesuch.pg_catalog.ispell
6082 \dg nonesuch.pg_database_owner
6083 improper qualified name (too many dotted names): nonesuch.pg_database_owner
6084 \dg regression.pg_database_owner
6085 improper qualified name (too many dotted names): regression.pg_database_owner
6086 \dL host.regression.plpgsql
6087 improper qualified name (too many dotted names): host.regression.plpgsql
6089 cross-database references are not implemented: *.plpgsql
6090 \dL nonesuch.plpgsql
6091 cross-database references are not implemented: nonesuch.plpgsql
6092 \dn host.regression.public
6093 improper qualified name (too many dotted names): host.regression.public
6095 cross-database references are not implemented: """".public
6097 cross-database references are not implemented: nonesuch.public
6098 \do host.regression.public.!=-
6099 improper qualified name (too many dotted names): host.regression.public.!=-
6100 \do "regression|mydb".public.!=-
6101 cross-database references are not implemented: "regression|mydb".public.!=-
6102 \do nonesuch.public.!=-
6103 cross-database references are not implemented: nonesuch.public.!=-
6104 \dO host.regression.pg_catalog.POSIX
6105 improper qualified name (too many dotted names): host.regression.pg_catalog.POSIX
6106 \dO .pg_catalog.POSIX
6107 cross-database references are not implemented: .pg_catalog.POSIX
6108 \dO nonesuch.pg_catalog.POSIX
6109 cross-database references are not implemented: nonesuch.pg_catalog.POSIX
6110 \dp host.regression.public.a_star
6111 improper qualified name (too many dotted names): host.regression.public.a_star
6112 \dp "regres+ion".public.a_star
6113 cross-database references are not implemented: "regres+ion".public.a_star
6114 \dp nonesuch.public.a_star
6115 cross-database references are not implemented: nonesuch.public.a_star
6116 \dP host.regression.public.mlparted
6117 improper qualified name (too many dotted names): host.regression.public.mlparted
6118 \dP "regres(sion)".public.mlparted
6119 cross-database references are not implemented: "regres(sion)".public.mlparted
6120 \dP nonesuch.public.mlparted
6121 cross-database references are not implemented: nonesuch.public.mlparted
6122 \drds nonesuch.lc_messages
6123 improper qualified name (too many dotted names): nonesuch.lc_messages
6124 \drds regression.lc_messages
6125 improper qualified name (too many dotted names): regression.lc_messages
6127 improper qualified name (too many dotted names): public.mypub
6128 \dRp regression.mypub
6129 improper qualified name (too many dotted names): regression.mypub
6131 improper qualified name (too many dotted names): public.mysub
6132 \dRs regression.mysub
6133 improper qualified name (too many dotted names): regression.mysub
6134 \dT host.regression.public.widget
6135 improper qualified name (too many dotted names): host.regression.public.widget
6136 \dT "regression{1,2}".public.widget
6137 cross-database references are not implemented: "regression{1,2}".public.widget
6138 \dT nonesuch.public.widget
6139 cross-database references are not implemented: nonesuch.public.widget
6140 \dx regression.plpgsql
6141 improper qualified name (too many dotted names): regression.plpgsql
6142 \dx nonesuch.plpgsql
6143 improper qualified name (too many dotted names): nonesuch.plpgsql
6144 \dX host.regression.public.func_deps_stat
6145 improper qualified name (too many dotted names): host.regression.public.func_deps_stat
6146 \dX "^regression$".public.func_deps_stat
6147 cross-database references are not implemented: "^regression$".public.func_deps_stat
6148 \dX nonesuch.public.func_deps_stat
6149 cross-database references are not implemented: nonesuch.public.func_deps_stat
6150 \dy regression.myevt
6151 improper qualified name (too many dotted names): regression.myevt
6153 improper qualified name (too many dotted names): nonesuch.myevt
6154 -- check that dots within quoted name segments are not counted
6155 \dA "no.such.access.method"
6156 List of access methods
6161 \dt "no.such.table.relation"
6163 Schema | Name | Type | Owner
6164 --------+------+------+-------
6167 \da "no.such.aggregate.function"
6168 List of aggregate functions
6169 Schema | Name | Result data type | Argument data types | Description
6170 --------+------+------------------+---------------------+-------------
6173 \dAc "no.such.operator.class"
6174 List of operator classes
6175 AM | Input type | Storage type | Operator class | Default?
6176 ----+------------+--------------+----------------+----------
6179 \dAf "no.such.operator.family"
6180 List of operator families
6181 AM | Operator family | Applicable types
6182 ----+-----------------+------------------
6185 \dAo "no.such.operator.of.operator.family"
6186 List of operators of operator families
6187 AM | Operator family | Operator | Strategy | Purpose
6188 ----+-----------------+----------+----------+---------
6191 \dAp "no.such.operator.support.function.of.operator.family"
6192 List of support functions of operator families
6193 AM | Operator family | Registered left type | Registered right type | Number | Function
6194 ----+-----------------+----------------------+-----------------------+--------+----------
6197 \db "no.such.tablespace"
6199 Name | Owner | Location
6200 ------+-------+----------
6203 \dc "no.such.conversion"
6205 Schema | Name | Source | Destination | Default?
6206 --------+------+--------+-------------+----------
6211 Source type | Target type | Function | Implicit?
6212 -------------+-------------+----------+-----------
6215 \dd "no.such.object.description"
6217 Schema | Name | Object | Description
6218 --------+------+--------+-------------
6221 \dD "no.such.domain"
6223 Schema | Name | Type | Collation | Nullable | Default | Check
6224 --------+------+------+-----------+----------+---------+-------
6227 \ddp "no.such.default.access.privilege"
6228 Default access privileges
6229 Owner | Schema | Type | Access privileges
6230 -------+--------+------+-------------------
6233 \di "no.such.index.relation"
6235 Schema | Name | Type | Owner | Table
6236 --------+------+------+-------+-------
6239 \dm "no.such.materialized.view"
6241 Schema | Name | Type | Owner
6242 --------+------+------+-------
6245 \ds "no.such.relation"
6247 Schema | Name | Type | Owner
6248 --------+------+------+-------
6251 \dt "no.such.relation"
6253 Schema | Name | Type | Owner
6254 --------+------+------+-------
6257 \dv "no.such.relation"
6259 Schema | Name | Type | Owner
6260 --------+------+------+-------
6263 \des "no.such.foreign.server"
6264 List of foreign servers
6265 Name | Owner | Foreign-data wrapper
6266 ------+-------+----------------------
6269 \dew "no.such.foreign.data.wrapper"
6270 List of foreign-data wrappers
6271 Name | Owner | Handler | Validator
6272 ------+-------+---------+-----------
6275 \df "no.such.function"
6277 Schema | Name | Result data type | Argument data types | Type
6278 --------+------+------------------+---------------------+------
6281 \dF "no.such.text.search.configuration"
6282 List of text search configurations
6283 Schema | Name | Description
6284 --------+------+-------------
6287 \dFd "no.such.text.search.dictionary"
6288 List of text search dictionaries
6289 Schema | Name | Description
6290 --------+------+-------------
6293 \dFp "no.such.text.search.parser"
6294 List of text search parsers
6295 Schema | Name | Description
6296 --------+------+-------------
6299 \dFt "no.such.text.search.template"
6300 List of text search templates
6301 Schema | Name | Description
6302 --------+------+-------------
6307 Role name | Attributes
6308 -----------+------------
6310 \dL "no.such.language"
6312 Name | Owner | Trusted | Description
6313 ------+-------+---------+-------------
6316 \dn "no.such.schema"
6322 \do "no.such.operator"
6324 Schema | Name | Left arg type | Right arg type | Result type | Description
6325 --------+------+---------------+----------------+-------------+-------------
6328 \dO "no.such.collation"
6330 Schema | Name | Provider | Collate | Ctype | Locale | ICU Rules | Deterministic?
6331 --------+------+----------+---------+-------+--------+-----------+----------------
6334 \dp "no.such.access.privilege"
6336 Schema | Name | Type | Access privileges | Column privileges | Policies
6337 --------+------+------+-------------------+-------------------+----------
6340 \dP "no.such.partitioned.relation"
6341 List of partitioned relations
6342 Schema | Name | Owner | Type | Parent name | Table
6343 --------+------+-------+------+-------------+-------
6346 \drds "no.such.setting"
6348 Role | Database | Settings
6349 ------+----------+----------
6352 \dRp "no.such.publication"
6353 List of publications
6354 Name | Owner | All tables | Inserts | Updates | Deletes | Truncates | Generated columns | Via root
6355 ------+-------+------------+---------+---------+---------+-----------+-------------------+----------
6358 \dRs "no.such.subscription"
6359 List of subscriptions
6360 Name | Owner | Enabled | Publication
6361 ------+-------+---------+-------------
6364 \dT "no.such.data.type"
6366 Schema | Name | Description
6367 --------+------+-------------
6370 \dx "no.such.installed.extension"
6371 List of installed extensions
6372 Name | Version | Schema | Description
6373 ------+---------+--------+-------------
6376 \dX "no.such.extended.statistics"
6377 List of extended statistics
6378 Schema | Name | Definition | Ndistinct | Dependencies | MCV
6379 --------+------+------------+-----------+--------------+-----
6382 \dy "no.such.event.trigger"
6383 List of event triggers
6384 Name | Event | Owner | Enabled | Function | Tags
6385 ------+-------+-------+---------+----------+------
6388 -- again, but with dotted schema qualifications.
6389 \dA "no.such.schema"."no.such.access.method"
6390 improper qualified name (too many dotted names): "no.such.schema"."no.such.access.method"
6391 \dt "no.such.schema"."no.such.table.relation"
6393 Schema | Name | Type | Owner
6394 --------+------+------+-------
6397 \da "no.such.schema"."no.such.aggregate.function"
6398 List of aggregate functions
6399 Schema | Name | Result data type | Argument data types | Description
6400 --------+------+------------------+---------------------+-------------
6403 \dAc "no.such.schema"."no.such.operator.class"
6404 improper qualified name (too many dotted names): "no.such.schema"."no.such.operator.class"
6405 \dAf "no.such.schema"."no.such.operator.family"
6406 improper qualified name (too many dotted names): "no.such.schema"."no.such.operator.family"
6407 \dAo "no.such.schema"."no.such.operator.of.operator.family"
6408 improper qualified name (too many dotted names): "no.such.schema"."no.such.operator.of.operator.family"
6409 \dAp "no.such.schema"."no.such.operator.support.function.of.operator.family"
6410 improper qualified name (too many dotted names): "no.such.schema"."no.such.operator.support.function.of.operator.family"
6411 \db "no.such.schema"."no.such.tablespace"
6412 improper qualified name (too many dotted names): "no.such.schema"."no.such.tablespace"
6413 \dc "no.such.schema"."no.such.conversion"
6415 Schema | Name | Source | Destination | Default?
6416 --------+------+--------+-------------+----------
6419 \dC "no.such.schema"."no.such.cast"
6421 Source type | Target type | Function | Implicit?
6422 -------------+-------------+----------+-----------
6425 \dd "no.such.schema"."no.such.object.description"
6427 Schema | Name | Object | Description
6428 --------+------+--------+-------------
6431 \dD "no.such.schema"."no.such.domain"
6433 Schema | Name | Type | Collation | Nullable | Default | Check
6434 --------+------+------+-----------+----------+---------+-------
6437 \ddp "no.such.schema"."no.such.default.access.privilege"
6438 Default access privileges
6439 Owner | Schema | Type | Access privileges
6440 -------+--------+------+-------------------
6443 \di "no.such.schema"."no.such.index.relation"
6445 Schema | Name | Type | Owner | Table
6446 --------+------+------+-------+-------
6449 \dm "no.such.schema"."no.such.materialized.view"
6451 Schema | Name | Type | Owner
6452 --------+------+------+-------
6455 \ds "no.such.schema"."no.such.relation"
6457 Schema | Name | Type | Owner
6458 --------+------+------+-------
6461 \dt "no.such.schema"."no.such.relation"
6463 Schema | Name | Type | Owner
6464 --------+------+------+-------
6467 \dv "no.such.schema"."no.such.relation"
6469 Schema | Name | Type | Owner
6470 --------+------+------+-------
6473 \des "no.such.schema"."no.such.foreign.server"
6474 improper qualified name (too many dotted names): "no.such.schema"."no.such.foreign.server"
6475 \dew "no.such.schema"."no.such.foreign.data.wrapper"
6476 improper qualified name (too many dotted names): "no.such.schema"."no.such.foreign.data.wrapper"
6477 \df "no.such.schema"."no.such.function"
6479 Schema | Name | Result data type | Argument data types | Type
6480 --------+------+------------------+---------------------+------
6483 \dF "no.such.schema"."no.such.text.search.configuration"
6484 List of text search configurations
6485 Schema | Name | Description
6486 --------+------+-------------
6489 \dFd "no.such.schema"."no.such.text.search.dictionary"
6490 List of text search dictionaries
6491 Schema | Name | Description
6492 --------+------+-------------
6495 \dFp "no.such.schema"."no.such.text.search.parser"
6496 List of text search parsers
6497 Schema | Name | Description
6498 --------+------+-------------
6501 \dFt "no.such.schema"."no.such.text.search.template"
6502 List of text search templates
6503 Schema | Name | Description
6504 --------+------+-------------
6507 \dg "no.such.schema"."no.such.role"
6508 improper qualified name (too many dotted names): "no.such.schema"."no.such.role"
6509 \dL "no.such.schema"."no.such.language"
6510 cross-database references are not implemented: "no.such.schema"."no.such.language"
6511 \do "no.such.schema"."no.such.operator"
6513 Schema | Name | Left arg type | Right arg type | Result type | Description
6514 --------+------+---------------+----------------+-------------+-------------
6517 \dO "no.such.schema"."no.such.collation"
6519 Schema | Name | Provider | Collate | Ctype | Locale | ICU Rules | Deterministic?
6520 --------+------+----------+---------+-------+--------+-----------+----------------
6523 \dp "no.such.schema"."no.such.access.privilege"
6525 Schema | Name | Type | Access privileges | Column privileges | Policies
6526 --------+------+------+-------------------+-------------------+----------
6529 \dP "no.such.schema"."no.such.partitioned.relation"
6530 List of partitioned relations
6531 Schema | Name | Owner | Type | Parent name | Table
6532 --------+------+-------+------+-------------+-------
6535 \drds "no.such.schema"."no.such.setting"
6536 improper qualified name (too many dotted names): "no.such.schema"."no.such.setting"
6537 \dRp "no.such.schema"."no.such.publication"
6538 improper qualified name (too many dotted names): "no.such.schema"."no.such.publication"
6539 \dRs "no.such.schema"."no.such.subscription"
6540 improper qualified name (too many dotted names): "no.such.schema"."no.such.subscription"
6541 \dT "no.such.schema"."no.such.data.type"
6543 Schema | Name | Description
6544 --------+------+-------------
6547 \dx "no.such.schema"."no.such.installed.extension"
6548 improper qualified name (too many dotted names): "no.such.schema"."no.such.installed.extension"
6549 \dX "no.such.schema"."no.such.extended.statistics"
6550 List of extended statistics
6551 Schema | Name | Definition | Ndistinct | Dependencies | MCV
6552 --------+------+------------+-----------+--------------+-----
6555 \dy "no.such.schema"."no.such.event.trigger"
6556 improper qualified name (too many dotted names): "no.such.schema"."no.such.event.trigger"
6557 -- again, but with current database and dotted schema qualifications.
6558 \dt regression."no.such.schema"."no.such.table.relation"
6560 Schema | Name | Type | Owner
6561 --------+------+------+-------
6564 \da regression."no.such.schema"."no.such.aggregate.function"
6565 List of aggregate functions
6566 Schema | Name | Result data type | Argument data types | Description
6567 --------+------+------------------+---------------------+-------------
6570 \dc regression."no.such.schema"."no.such.conversion"
6572 Schema | Name | Source | Destination | Default?
6573 --------+------+--------+-------------+----------
6576 \dC regression."no.such.schema"."no.such.cast"
6578 Source type | Target type | Function | Implicit?
6579 -------------+-------------+----------+-----------
6582 \dd regression."no.such.schema"."no.such.object.description"
6584 Schema | Name | Object | Description
6585 --------+------+--------+-------------
6588 \dD regression."no.such.schema"."no.such.domain"
6590 Schema | Name | Type | Collation | Nullable | Default | Check
6591 --------+------+------+-----------+----------+---------+-------
6594 \di regression."no.such.schema"."no.such.index.relation"
6596 Schema | Name | Type | Owner | Table
6597 --------+------+------+-------+-------
6600 \dm regression."no.such.schema"."no.such.materialized.view"
6602 Schema | Name | Type | Owner
6603 --------+------+------+-------
6606 \ds regression."no.such.schema"."no.such.relation"
6608 Schema | Name | Type | Owner
6609 --------+------+------+-------
6612 \dt regression."no.such.schema"."no.such.relation"
6614 Schema | Name | Type | Owner
6615 --------+------+------+-------
6618 \dv regression."no.such.schema"."no.such.relation"
6620 Schema | Name | Type | Owner
6621 --------+------+------+-------
6624 \df regression."no.such.schema"."no.such.function"
6626 Schema | Name | Result data type | Argument data types | Type
6627 --------+------+------------------+---------------------+------
6630 \dF regression."no.such.schema"."no.such.text.search.configuration"
6631 List of text search configurations
6632 Schema | Name | Description
6633 --------+------+-------------
6636 \dFd regression."no.such.schema"."no.such.text.search.dictionary"
6637 List of text search dictionaries
6638 Schema | Name | Description
6639 --------+------+-------------
6642 \dFp regression."no.such.schema"."no.such.text.search.parser"
6643 List of text search parsers
6644 Schema | Name | Description
6645 --------+------+-------------
6648 \dFt regression."no.such.schema"."no.such.text.search.template"
6649 List of text search templates
6650 Schema | Name | Description
6651 --------+------+-------------
6654 \do regression."no.such.schema"."no.such.operator"
6656 Schema | Name | Left arg type | Right arg type | Result type | Description
6657 --------+------+---------------+----------------+-------------+-------------
6660 \dO regression."no.such.schema"."no.such.collation"
6662 Schema | Name | Provider | Collate | Ctype | Locale | ICU Rules | Deterministic?
6663 --------+------+----------+---------+-------+--------+-----------+----------------
6666 \dp regression."no.such.schema"."no.such.access.privilege"
6668 Schema | Name | Type | Access privileges | Column privileges | Policies
6669 --------+------+------+-------------------+-------------------+----------
6672 \dP regression."no.such.schema"."no.such.partitioned.relation"
6673 List of partitioned relations
6674 Schema | Name | Owner | Type | Parent name | Table
6675 --------+------+-------+------+-------------+-------
6678 \dT regression."no.such.schema"."no.such.data.type"
6680 Schema | Name | Description
6681 --------+------+-------------
6684 \dX regression."no.such.schema"."no.such.extended.statistics"
6685 List of extended statistics
6686 Schema | Name | Definition | Ndistinct | Dependencies | MCV
6687 --------+------+------------+-----------+--------------+-----
6690 -- again, but with dotted database and dotted schema qualifications.
6691 \dt "no.such.database"."no.such.schema"."no.such.table.relation"
6692 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.table.relation"
6693 \da "no.such.database"."no.such.schema"."no.such.aggregate.function"
6694 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.aggregate.function"
6695 \dc "no.such.database"."no.such.schema"."no.such.conversion"
6696 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.conversion"
6697 \dC "no.such.database"."no.such.schema"."no.such.cast"
6698 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.cast"
6699 \dd "no.such.database"."no.such.schema"."no.such.object.description"
6700 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.object.description"
6701 \dD "no.such.database"."no.such.schema"."no.such.domain"
6702 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.domain"
6703 \ddp "no.such.database"."no.such.schema"."no.such.default.access.privilege"
6704 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.default.access.privilege"
6705 \di "no.such.database"."no.such.schema"."no.such.index.relation"
6706 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.index.relation"
6707 \dm "no.such.database"."no.such.schema"."no.such.materialized.view"
6708 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.materialized.view"
6709 \ds "no.such.database"."no.such.schema"."no.such.relation"
6710 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.relation"
6711 \dt "no.such.database"."no.such.schema"."no.such.relation"
6712 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.relation"
6713 \dv "no.such.database"."no.such.schema"."no.such.relation"
6714 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.relation"
6715 \df "no.such.database"."no.such.schema"."no.such.function"
6716 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.function"
6717 \dF "no.such.database"."no.such.schema"."no.such.text.search.configuration"
6718 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.text.search.configuration"
6719 \dFd "no.such.database"."no.such.schema"."no.such.text.search.dictionary"
6720 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.text.search.dictionary"
6721 \dFp "no.such.database"."no.such.schema"."no.such.text.search.parser"
6722 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.text.search.parser"
6723 \dFt "no.such.database"."no.such.schema"."no.such.text.search.template"
6724 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.text.search.template"
6725 \do "no.such.database"."no.such.schema"."no.such.operator"
6726 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.operator"
6727 \dO "no.such.database"."no.such.schema"."no.such.collation"
6728 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.collation"
6729 \dp "no.such.database"."no.such.schema"."no.such.access.privilege"
6730 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.access.privilege"
6731 \dP "no.such.database"."no.such.schema"."no.such.partitioned.relation"
6732 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.partitioned.relation"
6733 \dT "no.such.database"."no.such.schema"."no.such.data.type"
6734 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.data.type"
6735 \dX "no.such.database"."no.such.schema"."no.such.extended.statistics"
6736 cross-database references are not implemented: "no.such.database"."no.such.schema"."no.such.extended.statistics"
6737 -- check \drg and \du
6738 CREATE ROLE regress_du_role0;
6739 CREATE ROLE regress_du_role1;
6740 CREATE ROLE regress_du_role2;
6741 CREATE ROLE regress_du_admin;
6742 GRANT regress_du_role0 TO regress_du_admin WITH ADMIN TRUE;
6743 GRANT regress_du_role1 TO regress_du_admin WITH ADMIN TRUE;
6744 GRANT regress_du_role2 TO regress_du_admin WITH ADMIN TRUE;
6745 GRANT regress_du_role0 TO regress_du_role1 WITH ADMIN TRUE, INHERIT TRUE, SET TRUE GRANTED BY regress_du_admin;
6746 GRANT regress_du_role0 TO regress_du_role2 WITH ADMIN TRUE, INHERIT FALSE, SET FALSE GRANTED BY regress_du_admin;
6747 GRANT regress_du_role1 TO regress_du_role2 WITH ADMIN TRUE , INHERIT FALSE, SET TRUE GRANTED BY regress_du_admin;
6748 GRANT regress_du_role0 TO regress_du_role1 WITH ADMIN FALSE, INHERIT TRUE, SET FALSE GRANTED BY regress_du_role1;
6749 GRANT regress_du_role0 TO regress_du_role2 WITH ADMIN FALSE, INHERIT TRUE , SET TRUE GRANTED BY regress_du_role1;
6750 GRANT regress_du_role0 TO regress_du_role1 WITH ADMIN FALSE, INHERIT FALSE, SET TRUE GRANTED BY regress_du_role2;
6751 GRANT regress_du_role0 TO regress_du_role2 WITH ADMIN FALSE, INHERIT FALSE, SET FALSE GRANTED BY regress_du_role2;
6752 \drg regress_du_role*
6754 Role name | Member of | Options | Grantor
6755 ------------------+------------------+---------------------+------------------
6756 regress_du_role1 | regress_du_role0 | ADMIN, INHERIT, SET | regress_du_admin
6757 regress_du_role1 | regress_du_role0 | INHERIT | regress_du_role1
6758 regress_du_role1 | regress_du_role0 | SET | regress_du_role2
6759 regress_du_role2 | regress_du_role0 | ADMIN | regress_du_admin
6760 regress_du_role2 | regress_du_role0 | INHERIT, SET | regress_du_role1
6761 regress_du_role2 | regress_du_role0 | | regress_du_role2
6762 regress_du_role2 | regress_du_role1 | ADMIN, SET | regress_du_admin
6765 \du regress_du_role*
6767 Role name | Attributes
6768 ------------------+--------------
6769 regress_du_role0 | Cannot login
6770 regress_du_role1 | Cannot login
6771 regress_du_role2 | Cannot login
6773 DROP ROLE regress_du_role0;
6774 DROP ROLE regress_du_role1;
6775 DROP ROLE regress_du_role2;
6776 DROP ROLE regress_du_admin;
6777 -- Test display of empty privileges.
6779 -- Create an owner for tested objects because output contains owner name.
6780 CREATE ROLE regress_zeropriv_owner;
6781 SET LOCAL ROLE regress_zeropriv_owner;
6782 CREATE DOMAIN regress_zeropriv_domain AS int;
6783 REVOKE ALL ON DOMAIN regress_zeropriv_domain FROM CURRENT_USER, PUBLIC;
6784 \dD+ regress_zeropriv_domain
6786 Schema | Name | Type | Collation | Nullable | Default | Check | Access privileges | Description
6787 --------+-------------------------+---------+-----------+----------+---------+-------+-------------------+-------------
6788 public | regress_zeropriv_domain | integer | | | | | (none) |
6791 CREATE PROCEDURE regress_zeropriv_proc() LANGUAGE sql AS '';
6792 REVOKE ALL ON PROCEDURE regress_zeropriv_proc() FROM CURRENT_USER, PUBLIC;
6793 \df+ regress_zeropriv_proc
6795 Schema | Name | Result data type | Argument data types | Type | Volatility | Parallel | Owner | Security | Access privileges | Language | Internal name | Description
6796 --------+-----------------------+------------------+---------------------+------+------------+----------+------------------------+----------+-------------------+----------+---------------+-------------
6797 public | regress_zeropriv_proc | | | proc | volatile | unsafe | regress_zeropriv_owner | invoker | (none) | sql | |
6800 CREATE TABLE regress_zeropriv_tbl (a int);
6801 REVOKE ALL ON TABLE regress_zeropriv_tbl FROM CURRENT_USER;
6802 \dp regress_zeropriv_tbl
6804 Schema | Name | Type | Access privileges | Column privileges | Policies
6805 --------+----------------------+-------+-------------------+-------------------+----------
6806 public | regress_zeropriv_tbl | table | (none) | |
6809 CREATE TYPE regress_zeropriv_type AS (a int);
6810 REVOKE ALL ON TYPE regress_zeropriv_type FROM CURRENT_USER, PUBLIC;
6811 \dT+ regress_zeropriv_type
6813 Schema | Name | Internal name | Size | Elements | Owner | Access privileges | Description
6814 --------+-----------------------+-----------------------+-------+----------+------------------------+-------------------+-------------
6815 public | regress_zeropriv_type | regress_zeropriv_type | tuple | | regress_zeropriv_owner | (none) |
6819 -- Test display of default privileges with \pset null.
6820 CREATE TABLE defprivs (a int);
6821 \pset null '(default)'
6824 Schema | Name | Type | Access privileges | Column privileges | Policies
6825 --------+----------+-------+-------------------+-------------------+----------
6826 public | defprivs | table | (default) | |
6830 DROP TABLE defprivs;