From: | Gilles Darold <gilles(dot)darold(at)dalibo(dot)com> |
---|---|
To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Marc Mamin <M(dot)Mamin(at)intershop(dot)de>, Erik Rijkers <er(at)xs4all(dot)nl> |
Subject: | Re: review: psql and pset without any arguments |
Date: | 2013-09-07 15:31:52 |
Message-ID: | 522B46E8.3010003@dalibo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Le 07/09/2013 10:02, Pavel Stehule a écrit :
> Hello
>
> * patch is cleanly patchable and compilation is without warnings
> * all regression tests passed
> * no impact on dump, performance or any current features
> * no comments to programming style
> * we would this feature - it is consistent with \set and it gives a
> fast resume about psql printer settings
>
> Issues:
> 1) it doesn't show linestyle when is default
>
> I looked there and it is probably a small different issue - this value
> is initialized as NULL as default. But I dislike a empty output in
> this case:
>
> else if (strcmp(param, "linestyle") == 0)
> {
> if (!popt->topt.line_style)
> ;
> else
> printf(_("Line style is %s.\n"),
> get_line_style(&popt->topt)->name);
> }
>
> I propose a verbose result instead nothing:
>
> else if (strcmp(param, "linestyle") == 0)
> {
> if (!popt->topt.line_style)
> printf(_("Line style is unset.\n")) ;
> else
> printf(_("Line style is %s.\n"),
> get_line_style(&popt->topt)->name);
> }
+1 to show the information even if linestyle is not set but by default
get_line_style() return "ascii" if linestyle is not set. So maybe it is
better to rewrite it as follow:
else if (strcmp(param, "linestyle") == 0)
{
printf(_("Line style is %s.\n"),
get_line_style(&popt->topt)->name);
}
This will output:
Line style is ascii.
when linestyle is not set or of course it is set to ascii.
> 2) there is only one open question
> http://www.postgresql.org/message-id/B6F6FD62F2624C4C9916AC0175D56D880CE00E0E@jenmbs01.ad.intershop.net
> - there is no clean relation between output and some pset option.
>
> I don't think so Marc' proposal is ideal (these values are not a
> variables) - but maybe some enhanced output (only for this resume) can
> be better:
>
> postgres=# \pset
> Output format (format) is aligned.
> Border style (border) is 1.
> Expanded display (expanded) is off.
> Null display (null) is "".
> Field separator (fieldsep) is "|".
> Tuples only (tuples_only) is off.
> Title (title) is unset.
> Table attributes (tableattr) unset.
> Pager (pager) is used for long output.
> Record separator (recordsep) is <newline>.
>
> This expanded output should be used only for this resume (not when a
> option was changed or individual ask on option value)
Yes this could be a good accommodation but I really prefer to not
duplicate code and translation between this resume and the output when
these options are set. If we can print the same output messages using:
postgres=# \pset fieldsep '|'
Field separator (fieldsep) is "|".
it could be a good compromise.
Regards,
--
Gilles Darold
Administrateur de bases de données
http://dalibo.com - http://dalibo.org
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2013-09-07 15:33:28 | Re: strange IS NULL behaviour |
Previous Message | Kohei KaiGai | 2013-09-07 15:21:31 | Re: Custom Plan node |