Thread: Field Separator not working?

Field Separator not working?

From
Mario Splivalo
Date:
I'm having troubles setting the field separator. I tried this on pg7.4,
8.0 and 8.1beta, and I always get the same results.

So, from within psql i do:
pulitzer2=# select * from pg_user; usename  | usesysid | usecreatedb | usesuper | usecatupd |  passwd  |
valuntil | useconfig
-----------+----------+-------------+----------+-----------+----------+----------+-----------mario     |        1 | t
       | t        | t         | ******** |
 
|postgres  |      100 | t           | t        | t         | ******** |
|pulitzer2 |      102 | f           | f        | f         | ******** |
infinity |101       |      101 | f           | f        | f         | ******** |
infinity |
(4 rows)

pulitzer2=# \t
Showing only tuples.
pulitzer2=# \f#
Field separator is "#".
pulitzer2=# select * from pg_user;mario     |        1 | t           | t        | t         | ******** |
|postgres  |      100 | t           | t        | t         | ******** |
|pulitzer2 |      102 | f           | f        | f         | ******** |
infinity |101       |      101 | f           | f        | f         | ******** |
infinity |

pulitzer2=#


psql does tell me that I changed the field separator to "#", but it
still uses "|" as separator. I'm parsing the script from bash, using
psql, and setting the field separator options on the command line, but I
get similair results, the field separator is always "|", so I need to
awk-it with -F, but sometimes I have problems because data in my tables
often contain "|" charachter.

I've been looking trough the psql source code, but just like that, it's
too big hassle for me now :)

Am I doing something wrong?
Mike
-- 
Mario Splivalo
Mob-Art
mario.splivalo@mobart.hr

"I can do it quick, I can do it cheap, I can do it well. Pick any two."




Re: Field Separator not working?

From
Richard Huxton
Date:
Mario Splivalo wrote:
> pulitzer2=# \t
> Showing only tuples.
> pulitzer2=# \f#
> Field separator is "#".
> pulitzer2=# select * from pg_user;
>  mario     |        1 | t           | t        | t         | ******** |

> psql does tell me that I changed the field separator to "#", but it
> still uses "|" as separator. I'm parsing the script from bash, using
> psql, and setting the field separator options on the command line, but I
> get similair results, the field separator is always "|", so I need to
> awk-it with -F, but sometimes I have problems because data in my tables
> often contain "|" charachter.

You'll want this too:  \pset format unaligned

man psql or see the manual for full details
--   Richard Huxton  Archonet Ltd


Re: Field Separator not working?

From
Mario Splivalo
Date:
On Wed, 2005-10-19 at 11:43 +0100, Richard Huxton wrote:
> Mario Splivalo wrote:
> > pulitzer2=# \t
> > Showing only tuples.
> > pulitzer2=# \f#
> > Field separator is "#".
> > pulitzer2=# select * from pg_user;
> >  mario     |        1 | t           | t        | t         | ******** |
> 
> > psql does tell me that I changed the field separator to "#", but it
> > still uses "|" as separator. I'm parsing the script from bash, using
> > psql, and setting the field separator options on the command line, but I
> > get similair results, the field separator is always "|", so I need to
> > awk-it with -F, but sometimes I have problems because data in my tables
> > often contain "|" charachter.
> 
> You'll want this too:
>    \pset format unaligned
> 
> man psql or see the manual for full details

Hopla. It works perfetcly, thnx. Sometimes we're lazy to trough-read the
manuals :)
Mario
-- 
Mario Splivalo
Mob-Art
mario.splivalo@mobart.hr

"I can do it quick, I can do it cheap, I can do it well. Pick any two."