Reputation: 5261
When using Psql in Linux, if the result of my SQL query contains many columns or long strings of data, it will wrap the initial view and only once I scroll to the side will it stop wrapping and show each row on a separate line.
I've tried various \pset
options such as format unaligned
, format aligned
, format wrapped
, columns 0
, columns 1000
, but none seemed to fully stop wrapping unless I generate static output to a file.
How can I set it to never wrap the output while still being scrollable and showing the result using the default ascii table format?
Upvotes: 67
Views: 35069
Reputation: 1351
The default pager for psql
is less
. Then for no wrapped lines must be use less -S
.
PAGER="less -S" psql
is a good aproach. But inside psql
you can use
\setenv PAGER 'less -S'
Then, to toggle it off and back on, use
\pset pager off
\pset pager on
Upvotes: 21
Reputation: 5261
Psql
uses a system viewer to show its output in the console. In bash
it likely uses less
for the scrollable/page-able features it provides. To use a different viewer or use different settings, you just need to set the PAGER
environment variable.
Running psql
to use less
with the -S
or --chop-long-lines
option seemed to work for me:
PAGER="less -S" psql
You can also toggle this feature while viewing output in less
by typing -S
and Enter.
Upvotes: 98
Reputation: 25207
probably you should use aligned
format for output:
\pset format aligned
You can check all available formats to fit your needs:
\pset format TAB
aligned html latex-longtable unaligned
asciidoc latex troff-ms wrapped
Also you should check PAGER
configured value in your environment
Upvotes: 10
Reputation: 151
less's -F
or -S
flag will causes \d some_table
to not show any output in some cases.
-F or --quit-if-one-screen
Causes less to automatically exit if the entire file can be
displayed on the first screen.
-S or --chop-long-lines
Causes lines longer than the screen width to be chopped rather than folded.
That is, the portion of a long line that does not fit in the screen width is
not shown. The default is to fold long lines; that is, display the remainder
on the next line.
Use them like this:
PAGER="less -S" psql
Seems safer at the inconvenience of having to manually exit less.
Upvotes: 15
Reputation: 421
To disable the wrapped output of the select query.
\pset pager on and \pset pager off to switch back to the older output view.
Upvotes: 27