Re: auto_explain produces invalid JSON

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: auto_explain produces invalid JSON
Date: 2012-02-13 19:11:54
Message-ID: 4F39607A.8040803@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 02/13/2012 01:33 PM, Andrew Dunstan wrote:
>
>
> On 02/13/2012 12:48 PM, Tom Lane wrote:
>> Andrew Dunstan<andrew(at)dunslane(dot)net> writes:
>>> On 02/13/2012 11:15 AM, Tom Lane wrote:
>>>> After looking a bit more at the existing explain code, it seems
>>>> like the
>>>> critical issue is that explain.c has
>>>> ExplainOpenGroup/ExplainCloseGroup
>>>> calls around the ExplainPrintPlan call (see ExplainOnePlan), while
>>>> auto_explain does not.
>>> Yeah, maybe. We'd still have to do it conditionally (have to use
>>> ExplainBeginOutput for the XML case), but it would possibly be less
>>> kludgy.
>> Hm? I wasn't suggesting removing the ExplainBeginOutput call, but more
>> like
>>
>> ExplainBeginOutput(&es);
>> + ExplainOpenGroup(...);
>> ExplainQueryText(&es, queryDesc);
>> ExplainPrintPlan(&es, queryDesc);
>> + ExplainCloseGroup(...);
>> ExplainEndOutput(&es);
>>
>> Details still TBD; the point is just that it's not clear to me why
>> auto_explain should need a formatting concept that doesn't already exist
>> within explain.c.
>>
>>
>
> This will introduce an extra level of nesting for no good reason.
>
> But this would work:
>
> - ExplainBeginOutput(&es);
> + if (auto_explain_log_format != EXPLAIN_FORMAT_JSON)
> + ExplainBeginOutput(&es);
> + else
> + ExplainOpenGroup(NULL, NULL, true,& es);
> ExplainQueryText(&es, queryDesc);
> ExplainPrintPlan(&es, queryDesc);
> - ExplainEndOutput(&es);
> + if (auto_explain_log_format != EXPLAIN_FORMAT_JSON)
> + ExplainEndOutput(&es);
> + else
> + ExplainCloseGroup(NULL, NULL, true, &es);
>
>

Except that it causes other problems.

I think we'd probably bet sleeping dogs lie.

cheers

andrew

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2012-02-13 20:00:40 Re: When do we lose column names?
Previous Message Greg Stark 2012-02-13 18:48:48 Re: CUDA Sorting