Re: machine-readable explain output

From: Greg Stark <gsstark(at)mit(dot)edu>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: machine-readable explain output
Date: 2009-06-16 12:14:11
Message-ID: 407d949e0906160514j65f45187o964e4c803c5934e@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Jun 16, 2009 at 12:19 PM, Andres Freund<andres(at)anarazel(dot)de> wrote:
> <Startup-Cost>1710.98</Startup-Cost>
> <Total-Cost>1710.98</Total-Cost>
> <Plan-Rows>72398</Plan-Rows>
> <Plan-Width>4</Plan-Width>
> <Actual-Startup-Time>136.595</Actual-Startup-Time>
> <Actual-Total-Time>136.595</Actual-Total-Time>
> <Actual-Rows>72398</Actual-Rows>
> <Actual-Loops>1</Actual-Loops>

XML's not really my thing currently but it sure seems strange to me to
have *everything* be a separate tag like this. Doesn't XML do
attributes too? I would have thought to use child tags like this only
for things that have some further structure.

I would have expected something like:

<join
<scan type=sequential source="foo.bar">
<estimates cost-startup=nnn cost-total=nnn rows=nnn width=nnn></>
<actual time-startup=nnn time-total=nnnn rows=nnn loops=nnn></>
</scan>
<scan type=function source="foo.bar($1)">
<parameters>
<parameter name="$1" expression="...."></>
</parameters>
</scan>
</join>

This would allow something like a graphical explain plan to still make
sense of a plan even if it finds a node it doesn't recognize. It would
still know generally what to do with a "scan" node or a "join" node
even if it is a new type of scan or join.

--
greg
http://mit.edu/~gsstark/resume.pdf

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Stark 2009-06-16 12:38:17 Re: [PATCH] backend: compare word-at-a-time in bcTruelen
Previous Message Robert Haas 2009-06-16 12:03:24 Re: [PATCH] backend: compare word-at-a-time in bcTruelen