Re: Proposed patch - psql wraps at window width - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Proposed patch - psql wraps at window width
Date
Msg-id 200804261350.m3QDobR24098@momjian.us
Whole thread Raw
In response to Re: Proposed patch - psql wraps at window width  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
Bruce Momjian wrote:
> Oops, Alvaro pointed out I typo'ed the variable name COLUMNS as
> COLUMNNS. I see now that 'ls -C' does honor columns.  See my later
> posting about '\pset wrapped 0' as a special case where we could honor
> the ioctl/COLUMNS case.
> 
> My real confusion is this:
> 
>     $ echo $COLUMNS
>     146
> 
>     $ ls -C|less
>     archive       cd    initrd      lost+found  proc  srv  usr
>     basement.usr  dev   initrd.img  media       root  sys  var
>     bin           etc   laptop      mnt         rtmp  tmp  vmlinuz
>     boot          home  lib         opt         sbin  u    win
> 
>     $ COLUMNS=120 ls -C|less
>     archive       bin   cd   etc   initrd      laptop  lost+found  mnt  proc rtmp  srv  tmp  usr  vmlinuz
>     basement.usr  boot  dev  home  initrd.img  lib     media       opt  root sbin  sys  u    var  win
> 
> Why does the first 'ls' not honor columns while the second does?  How
> does 'ls' detect that the COLUMNS=120 is somehow different from the
> default COLUMNS value?

Ah, I see now.  $COLUMNS isn't exported to subshells, hence the previous
comment that readline needs to be called before it has a value.  It
seems psql does have COLUMNS set if readline is defined, which means we
can't detect of $COLUMNS was passed to psql or was detected.  More
interesting, it doesn't seem psql sets $COLUMNS in batch mode:
psql -c '\echo `echo $COLUMNS`' test{blank line}
COLUMNS=120 sql -c '\echo `echo $COLUMNS`' test120

so we could argue that COLUMNS should be honored but again this would
affect \g filename.  The issue with 'ls' is that it knows it isn't going
to be getting new commands from the user that change where its output is
going, while psql can.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


pgsql-hackers by date:

Previous
From: Aidan Van Dyk
Date:
Subject: Re: Proposed patch - psql wraps at window width
Next
From: Alvaro Herrera
Date:
Subject: Re: FSM fill ratio