2018-03-22 19:28 GMT+01:00 Pavel Stehule <pavel.steh...@gmail.com>: > > > 2018-03-22 18:38 GMT+01:00 Fabien COELHO <coe...@cri.ensmp.fr>: > >> >> Hello Pavel, >> >> 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 > > > The default fieldsep should be "off" that means so format defaults are used. ',' is used for CSV, | for any else.
So all will work like now, but there will be bigger freedom with new format design. Now, all formats with possibility to setting fieldsep, should to share default '|', what I think, is not practical. > > > > >> >> -- >> Fabien. >> > >