review: psql and pset without any arguments - Mailing list pgsql-hackers

From Pavel Stehule
Subject review: psql and pset without any arguments
Date
Msg-id CAFj8pRADhiMiy0rWXQ1Sg4SPDHz4UE98-AuZ3DP+Hkk2uX9B_Q@mail.gmail.com
Whole thread Raw
Responses Re: review: psql and pset without any arguments
Re: review: psql and pset without any arguments
List pgsql-hackers
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);
    }


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)

Regards

Pavel Stehule

pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: only linestyle is NULL as default
Next
From: "MauMau"
Date:
Subject: Re: [bug fix] strerror() returns ??? in a UTF-8/C database with LC_MESSAGES=non-ASCII