Using \pset format csv means overwriting field sep every time - nobody uses |
Yep. The alternative is to have a csv-specific separator variable, which does not seem very useful, must be remembered, but this is indeed debatable.
I think so dependency on order of psql arguments is significant problem
This is intentional, and this issue/feature already exists, the last argument overwrite previous settings thus will win, eg:
psql --pset=format=troff --html -c 'SELECT 1'
Will output in html, not in troff.
Can we introduce some format specific default separators - if we would not to introduce csv_field_sep options?
It should not be hard. All formats can has '|' like now, and csv can have a ',' - then if field separator is not explicit, then default field separator is used, else specified field separator is used.
You can see my idea in attached patch
Regards
Pavel
postgres=# \pset format csv Output format is csv. postgres=# select * from foo; a,b,c 1,2,Hello 3,4,Nazdar postgres=# \pset fieldsep ; Field separator is ";". postgres=# select * from foo; a;b;c 1;2;Hello 3;4;Nazdar