Pretty borders in psql
Skočit na navigaci
Skočit na vyhledávání
Pretty borders is simple and secure patch to PostgreSQL that enhances "line graphic" possibilities in PostgreSQL's console:
Installation
You need source code of PostgreSQL:
- download patch
- apply patch and compile
- install
pavel ~/src/postgresql $ patch -p1 < more_linestyles.diff patching file src/bin/psql/command.c patching file src/bin/psql/print.c patching file src/bin/psql/print.h patching file src/bin/psql/tab-complete.c
Usage
You can set a combination of border type (0..4) and linestyle:
postgres=# \pset border 2 Border style is 2. postgres=# \pset linestyle ascii unicode unicode-double1 unicode-double3 old-ascii unicode2 unicode-double2 unicode-double4 postgres=# \pset linestyle unicode-double2 Line style is unicode-double2. postgres=# select * from mytab; ╔═══╤════════════╤═══════╗ ║ a │ b │ c ║ ╠═══╪════════════╪═══════╣ ║ 1 │ 2012-05-24 │ Hello ║ ║ 2 │ 2012-05-25 │ Hello ║ ║ │ │ World ║ ╚═══╧════════════╧═══════╝ (2 rows) postgres=# \pset border 3 Border style is 3. postgres=# select * from mytab; a │ b │ c ═══╪════════════╪═══════ 1 │ 2012-05-24 │ Hello ───┼────────────┼─────── 2 │ 2012-05-25 │ Hello │ │ World (2 rows)
Possible modes
postgres=# \pset linestyle ascii
Line style is ascii.
postgres=# select * from mytab ;
+---+------------+-------+
| a | b | c |
+---+------------+-------+
| 1 | 2012-05-24 | Hello |
+---+------------+-------+
| 2 | 2012-05-25 | Hello+|
| | | World |
+---+------------+-------+
(2 rows)
postgres=# select * from mytab ;
+---+------------+-------+
| a | b | c |
+---+------------+-------+
| 1 | 2012-05-24 | Hello |
+---+------------+-------+
| 2 | 2012-05-25 | Hello |
| : World |
+---+------------+-------+
(2 rows)
postgres=# \pset linestyle unicode
Line style is unicode.
postgres=# select * from mytab ;
┌───┬────────────┬───────┐
│ a │ b │ c │
├───┼────────────┼───────┤
│ 1 │ 2012-05-24 │ Hello │
├───┼────────────┼───────┤
│ 2 │ 2012-05-25 │ Hello↵│
│ │ │ World │
└───┴────────────┴───────┘
(2 rows)
postgres=# \pset linestyle unicode2
Line style is unicode2.
postgres=# select * from mytab ;
┌───┬────────────┬───────┐
│ a │ b │ c │
├───┴────────────┴───────┤
│ 1 │ 2012-05-24 │ Hello │
├───┼────────────┼───────┤
│ 2 │ 2012-05-25 │ Hello │
│ │ │ World │
└────────────────────────┘
(2 rows)
postgres=# \pset linestyle unicode-double1
Line style is unicode-double1.
postgres=# select * from mytab ;
╔═══╤════════════╤═══════╗
║ a │ b │ c ║
╟───┼────────────┼───────╢
║ 1 │ 2012-05-24 │ Hello ║
╟───┼────────────┼───────╢
║ 2 │ 2012-05-25 │ Hello ║
║ │ │ World ║
╚═══╧════════════╧═══════╝
(2 rows)
postgres=# \pset linestyle unicode-double2
Line style is unicode-double2.
postgres=# select * from mytab ;
╔═══╤════════════╤═══════╗
║ a │ b │ c ║
╠═══╪════════════╪═══════╣
║ 1 │ 2012-05-24 │ Hello ║
╟───┼────────────┼───────╢
║ 2 │ 2012-05-25 │ Hello ║
║ │ │ World ║
╚═══╧════════════╧═══════╝
(2 rows)
postgres=# \pset linestyle unicode-double3
Line style is unicode-double3.
postgres=# select * from mytab ;
╔═══╦════════════╦═══════╗
║ a ║ b ║ c ║
╠═══╩════════════╩═══════╣
║ 1 │ 2012-05-24 │ Hello ║
╟───┼────────────┼───────╢
║ 2 │ 2012-05-25 │ Hello ║
║ │ │ World ║
╚════════════════════════╝
(2 rows)
postgres=# \pset linestyle unicode-double4
Line style is unicode-double4.
postgres=# select * from mytab ;
╔═══╦════════════╦═══════╗
║ a ║ b ║ c ║
╠═══╬════════════╬═══════╣
║ 1 ║ 2012-05-24 ║ Hello ║
╟───╫────────────╫───────╢
║ 2 ║ 2012-05-25 ║ Hello ║
║ ║ ║ World ║
╚═══╩════════════╩═══════╝
(2 rows)
unicode-double5 style (note: inside proposal for pg9.4. this style is renamed to unicode-bold1)
┌───────────┬──────────┬──────────┬────────────┬────────────┬───────────────────────┐
│ Name │ Owner │ Encoding │ Collate │ Ctype │ Access privileges │
┝━━━━━━━━━━━┿━━━━━━━━━━┿━━━━━━━━━━┿━━━━━━━━━━━━┿━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┥
│ postgres │ postgres │ UTF8 │ en_US.utf8 │ en_US.utf8 │ │
│ template0 │ postgres │ UTF8 │ en_US.utf8 │ en_US.utf8 │ =c/postgres │
│ │ │ │ │ │ postgres=CTc/postgres │
│ template1 │ postgres │ UTF8 │ en_US.utf8 │ en_US.utf8 │ =c/postgres │
│ │ │ │ │ │ postgres=CTc/postgres │
└───────────┴──────────┴──────────┴────────────┴────────────┴───────────────────────┘
unicode-double6 style (note: inside proposal for pg9.4. this style is renamed to unicode-double5)
┌───────────┬──────────┬──────────┬────────────┬────────────┬───────────────────────┐
│ Name │ Owner │ Encoding │ Collate │ Ctype │ Access privileges │
╞═══════════╪══════════╪══════════╪════════════╪════════════╪═══════════════════════╡
│ postgres │ postgres │ UTF8 │ en_US.utf8 │ en_US.utf8 │ │
│ template0 │ postgres │ UTF8 │ en_US.utf8 │ en_US.utf8 │ =c/postgres │
│ │ │ │ │ │ postgres=CTc/postgres │
│ template1 │ postgres │ UTF8 │ en_US.utf8 │ en_US.utf8 │ =c/postgres │
│ │ │ │ │ │ postgres=CTc/postgres │
└───────────┴──────────┴──────────┴────────────┴────────────┴───────────────────────┘
postgres=# \pset border 0
Border style is 0.
postgres=# select * from mytab ;
a b c
─ ────────── ─────
1 2012-05-24 Hello
2 2012-05-25 Hello↵
World
(2 rows)
postgres=# \pset border 1
Border style is 1.
postgres=# select * from mytab ;
a │ b │ c
───┼────────────┼───────
1 │ 2012-05-24 │ Hello
2 │ 2012-05-25 │ Hello↵
│ │ World
(2 rows)
postgres=# \pset border 2
Border style is 2.
postgres=# select * from mytab ;
┌───┬────────────┬───────┐
│ a │ b │ c │
├───┼────────────┼───────┤
│ 1 │ 2012-05-24 │ Hello │
│ 2 │ 2012-05-25 │ Hello↵│
│ │ │ World │
└───┴────────────┴───────┘
(2 rows)
postgres=# \pset border 3
Border style is 3.
postgres=# select * from mytab;
a │ b │ c
───┼────────────┼───────
1 │ 2012-05-24 │ Hello
───┼────────────┼───────
2 │ 2012-05-25 │ Hello↵
│ │ World
(2 rows)
postgres=# \pset border 4
Border style is 4.
postgres=# select * from mytab;
┌───┬────────────┬───────┐
│ a │ b │ c │
├───┼────────────┼───────┤
│ 1 │ 2012-05-24 │ Hello │
├───┼────────────┼───────┤
│ 2 │ 2012-05-25 │ Hello↵│
│ │ │ World │
└───┴────────────┴───────┘
(2 rows)
Downloads
- for PostgreSQL 9.1 http://postgres.cz/files/patches/more_linestyles-91-20120524.diff
- for PostgreSQL 9.2 http://postgres.cz/files/patches/more_linestyles-92-20120524.diff
- for PostgreSQL 9.3 http://postgres.cz/files/patches/more_linestyles-93-20131008.diff