Waiting for 8.5 – better wrapped output in psql

On 22nd of November Tom Lane committed patch by Roger Leigh which fixes my pet peeve:

Log Message:
-----------
Improve psql's tabular display of wrapped-around data by inserting markers
in the formerly-always-blank columns just to left and right of the data.
Different marking is used for a line break caused by a newline in the data
than for a straight wraparound.  A newline break is signaled by a "+" in the
right margin column in ASCII mode, or a carriage return arrow in UNICODE mode.
Wraparound is signaled by a dot in the right margin as well as the following
left margin in ASCII mode, or an ellipsis symbol in the same places in UNICODE
mode.  "\pset linestyle old-ascii" is added to make the previous behavior
available if anyone really wants it.
 
In passing, this commit also cleans up a few regression test files that
had unintended spacing differences from the current actual output.
 
Roger Leigh, reviewed by Gabrielle Roth and other members of PDXPUG.

Let's imagine, you have a record that contains new line characters, and also long lines, which get wrapped. In 8.4 it looks like this:

# \pset format wrapped
Output format IS wrapped.
 
# SELECT '1st', 'line', 'of text'
UNION ALL
SELECT '2nd', E'much longer\nand containing multiple lines, including, but not limiting to - a single long line - this one.\nand then something at the end', 'just a filler';
 ?COLUMN? |                      ?COLUMN?                       |   ?COLUMN?
----------+-----------------------------------------------------+---------------
 1st      | line                                                | OF text
 2nd      | much longer                                         | just a filler
          : AND containing multiple LINES, including, but NOT l
          ; imiting TO - a single long line - this one.
          : AND THEN something at the END
(2 ROWS)

This lack of column separator always annoyed me. But now, thanks to Roger, output of this query looks like this:

 ?column? |                      ?column?                       |   ?column?
----------+-----------------------------------------------------+---------------
 1st      | line                                                | of text
 2nd      | much longer                                        +| just a filler
          | and containing multiple lines, including, but not l.|
          |.imiting to - a single long line - this one.        +|
          | and then something at the end                       |

I don't know how about you, but I like it much better.

Of course the problem is non-existant if you use less for page, but if you don't like it, or you have problems with it – wrapped output with Roger patch is simply great.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.