Re: psql: show only failed queries - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: psql: show only failed queries
Date
Msg-id CAFj8pRCB=NsmeMe3_RnJ-on-w4tpXJmcakRkU=NUtaN5G_=4Qg@mail.gmail.com
Whole thread Raw
In response to Re: psql: show only failed queries  (Fujii Masao <masao.fujii@gmail.com>)
Responses Re: psql: show only failed queries
List pgsql-hackers
Hi


2014-08-08 13:58 GMT+02:00 Fujii Masao <masao.fujii@gmail.com>:
On Fri, Aug 8, 2014 at 4:31 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
>
>
>
> 2014-08-07 7:10 GMT+02:00 Fujii Masao <masao.fujii@gmail.com>:
>
>> On Thu, Aug 7, 2014 at 6:26 AM, Pavel Stehule <pavel.stehule@gmail.com>
>> wrote:
>> > Hello
>> >
>> > updated version patch in attachment
>>
>> Thanks! But ISTM you forgot to attached the patch.
>
>
> grr .. I am sorry

No problem. Thanks for the patch! Attached is the revised version of the patch.

>> >> +    /* all psql known variables are included in list by default */
>> >> +    for (known_varname = known_varnames; *known_varname;
>> >> known_varname++)
>> >> +        varnames[nvars++] = pg_strdup(*known_varname);
>> >>
>> >> Don't we need to append both prefix and suffix to even known variables?
>> >
>> >
>> > ??? I am not sure if I understand well - probably system "read only"
>> > variables as DBNAME, USER, VERSION should not be there
>>
>> I had that question because complete_from_variables() is also called by
>> the
>> tab-completion of "\echo :" and it shows half-baked variables list. So
>> I thought probably we need to change complete_from_variables() more to
>> fix the problem.
>
>
> I understand now.
>
> I fixed it.
>
> I have a question.\echo probably should not to show empty known variable.
>
> data for autocomplete for \echo should be same as result of "\set"

Agreed. I think that only the variables having the set values should be
displayed in "\echo :" case. So I modified complete_from_variables()
so that the unset variables are not shown in that case but all the variables
are shown in the tab-completion of "\set".

>> >> +    else if (strcmp(prev2_wd, "\\set") == 0)
>> >> +    {
>> >> +        if (strcmp(prev_wd, "AUTOCOMMIT") == 0)
>> >>
>> >> ISTM that some psql variables like IGNOREEOF are not there. Why not?
>> >
>> >
>> > yes, there are not complete for DBNAME, ENCODING, FETCH_COUNT,
>> > HISTCONTROL,
>> > HISTFILE, HISTSIZE, HOST, IGNOREEOFF, PROMPT*,USER,  VERSION
>> >
>> > There are more reasons:
>> >
>> > * paremeter is not a enum (string, number or both): FETCH_COUNT, PROMPT,
>> > HISTSIZE, ..
>> >
>> > * variable is pseudo read only  - change has not any effect: DBNAME,
>> > ENCODING, VERSION
>>
>> So HISTCONTROL should be there because it doesn't have such reasons at
>> all?
>>
>
> yes

ISTM that you forgot to add HISTCONTROL to your patch. So I just added that.

I added the tab-completion for "\unset" command. Like "\echo :", only
the variables having the set values should be displayed in "\unset" case.

perfect
 

I changed complete_from_variables() so that it checks the memory size of
the variable array even when appending the known variables. If the memory
size is not enough, it's dynamically increased. Practically this check would
not be required because the initial size of the array is enough larger than
the number of the known variables. I added this as the safe-guard.

Typo: IGNOREEOFF -> IGNOREEOF

I removed the value "none" from the value list of "ECHO" because it's not
documented and a user might get confused when he or she sees the undocumented
value "none". Thought?

isn't better to fix doc? I don't know any reason why we should not to support "none"

I looked to code, you removed a check against duplicate varname in list. Is it ok?

Regards

Pavel

 

Regards,

--
Fujii Masao

pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: jsonb format is pessimal for toast compression
Next
From: Alexander Korotkov
Date:
Subject: Re: jsonb format is pessimal for toast compression