Thread: psql word wrapping to terminal width - testers?

psql word wrapping to terminal width - testers?

From
Bryce Nesbitt
Date:
I'm finishing up work on a version of the psql command line client that 
can can shrink columns until they fit in your terminal window.  For 
example on 67 column ssh session...

# \pset format aligned-wrapped
# \pset border 2
# select * from distributors order by did;
+------+--------------------+---------------------+---------------+
| did  |        name        |        descr        | long_col_name |
+------+--------------------+---------------------+---------------+
|    1 | Food fish and wine | default             |               |
|    2 | Cat Food Heaven 2  | abcdefghijklmnopqrs !               |
|      |                    | tuvwxyz             |               |
|    3 | Cat Food Heaven 3  | default             |               |
|    4 | Cat Food Heaven 4  | default             |               |
|    5 | Food Heaven        | default             |               |
|   10 | Lah                | default             |               |
|   12 | name               | line one            |               |
| 2892 ! short name         | short               |               |
| 8732 |                    |                     |               |
+------+--------------------+---------------------+---------------+
(8 rows)

...where columns 'descr' and 'did' each have a wrapped row.  I'll send a 
postgres 8.4devel linux intel binary to anyone willing to try it out.

I've got one painful edge case left to handle, but if it works well on 
various platforms, and others find it useful, I'd like to learn how and 
where to introduce it as a patch.  Any tips are appreciated.

This is intended to solve that annoying case where a few rows in a 
column are too long, blowing past the widest window you can fit onscreen.
         -Bryce Nesbitt



Re: psql word wrapping to terminal width - testers?

From
Bryce Nesbitt
Date:
<br /><br /> Karsten Hilbert wrote:<br /><blockquote cite="mid:20080303122202.GA4028@merkur.hilbert.loc"
type="cite"><blockquotetype="cite"><pre wrap=""># \pset format aligned-wrapped
 
# \pset border 2
# select * from distributors order by did;
+------+--------------------+---------------------+---------------+
| did  |        name        |        descr        | long_col_name |
+------+--------------------+---------------------+---------------+
|    1 | Food fish and wine | default             |               |
|    2 | Cat Food Heaven 2  | abcdefghijklmnopqrs !               |   </pre></blockquote><pre wrap="">
                                 ^
 
Any chance you could put an indicator here to point out the
field has been wrapped ? </pre></blockquote> It is there but subtle.  Note the ! instead of |.<br /><br /><blockquote
cite="mid:20080303122202.GA4028@merkur.hilbert.loc"type="cite"><pre wrap="">Did you consider
 

- a maximum length up to which fields will indeed be wrapped ? (\pset format aligned-wrapped 50) this will prevent a
reallylarge text field being wrapped to hundreds of lines thereby scrolling off everything else </pre></blockquote>
Yes,but truncating the request with substr() seems to address this need.  A large field restricted in height would just
blowout the width otherwise.<br /><br /><blockquote cite="mid:20080303122202.GA4028@merkur.hilbert.loc"
type="cite"><prewrap="">
 
- ignoring wrapping bytea ? </pre></blockquote> Why treat bytea specially?  In many cases it's unlikely to make any
senseto print on a console anyway.  How would you want bytea represented?<br />  <br /><blockquote
cite="mid:20080303122202.GA4028@merkur.hilbert.loc"type="cite"><pre wrap="">- allowing truncation of fields at a
certainlength before wrapping ? (well, this can be handled by truncating at the SQL level, too)
 

Even without any of the above suggestions this will be a
*very* appreciated improvement of the already excellent
psql.
Karsten </pre></blockquote>