Re: Re: csv format for psql

Daniel Verite <daniel@manitou-mail.org>

From: "Daniel Verite" <daniel@manitou-mail.org>
To: "Pavel Stehule" <pavel.stehule@gmail.com>
Cc: "Fabien COELHO" <coelho@cri.ensmp.fr>,"David Steele" <david@pgmasters.net>,"PostgreSQL Hackers" <pgsql-hackers@postgresql.org>
Date: 2018-03-26T12:44:20Z
Lists: pgsql-hackers
	Pavel Stehule wrote:

> implemented in attached patch

Consider your initial output of \pset, when no option is specified
=================
$ ./psql 
psql (11devel)
Type "help" for help.

postgres=# \pset
border			 1
columns 		 0
expanded		 off
fieldsep		 not used
fieldsep_zero		 ERROR
footer			 on
format			 aligned
linestyle		 ascii
null			 ''
numericlocale		 off
pager			 1
pager_min_lines 	 0
recordsep		 '\n'
recordsep_zero		 off
reset			 ERROR
tableattr		 
title			 
tuples_only		 off
unicode_border_linestyle single
unicode_column_linestyle single
unicode_header_linestyle single
================

These entries with ERROR correspond in fact to no error at all,
or we have to pretend that the default state of psql is erroneous,
which doesn't make sense.

Also "reset" is not a variable, it seems to be a command,
so it probably shouldn't be there in the first place.

More generally, I'd think the point of reusing "fieldsep" was to 
reuse the concept, not reimplement it, let alone changing
bits of behavior of the unaligned mode along the way.

With this patch, again without specifying any option, just looking
at what fieldsep is leads to this:

postgres=# \pset fieldsep
User didn't specified field separator.
Current format doesn't specify default field separator.

If this is the way to "solve" the fact that a user has to do
 \pset fieldsep ','
to get commas in csv mode, then IMV the proposed solution
is clearly worse than the stated problem, and worse than
simply adding fieldsep_csv to be independant from the
unaligned mode.


Best regards,
-- 
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite


Commits

  1. Add CSV table output mode in psql.

  2. Reorganize format options of psql in alphabetical order

  3. Complete TODO item: