Re: machine-readable explain output v4 - Mailing list pgsql-hackers

From Tom Lane
Subject Re: machine-readable explain output v4
Date
Msg-id 27430.1249948630@sss.pgh.pa.us
Whole thread Raw
In response to Re: machine-readable explain output v4  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: machine-readable explain output v4  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Mon, Aug 10, 2009 at 1:45 PM, Tom Lane<tgl@sss.pgh.pa.us> wrote:
>> The way we have this set up, there's a distinction between properties
>> and groups, which AFAICS we have to have in order to have directly
>> comparable structures in XML and JSON. �Didn't you design this
>> yourself?

> Yes, I did.  But the point is that as far as I can see, the following
> two things are equivalent:

> <Filter><Text>(f1 > 0)</Text></Filter>
>  "Filter": { "Text": "(f1 > 0)" }

> And this is not:

> <Filter><Expr><Text>(f1 > 0)</Text></Expr></Filter>

Well, in that case we need to redesign the "grouping" abstraction in
explain.c, because it's set up to treat a JSON hash as equivalent to
a parent node type (or whatever you want to call it) in XML.  But
I'm not sure I want to do it.  It appears to me that what you want
to do is dumb down the XML representation so it's just as impoverished
as the JSON one; to wit that there won't be any abstract concept of
an "Expr" node, and all client programs will have to implicitly know
that, say, Filter is an instance of an Expr and therefore can be
expected to have thus-and-such fields inside it.  This does not seem
like an improvement.  It puzzles me that you are pushing to make
expression containers anonymous and unrecognizable when you wanted the
opposite for child plans.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Euler Taveira de Oliveira
Date:
Subject: Re: Join optimization for inheritance tables
Next
From: "Joshua D. Drake"
Date:
Subject: Re: hot standby - merged up to CVS HEAD