Re: REVIEW: EXPLAIN and nfiltered - Mailing list pgsql-hackers

From Tom Lane
Subject Re: REVIEW: EXPLAIN and nfiltered
Date
Msg-id 17628.1295545286@sss.pgh.pa.us
Whole thread Raw
In response to Re: REVIEW: EXPLAIN and nfiltered  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: REVIEW: EXPLAIN and nfiltered  (Magnus Hagander <magnus@hagander.net>)
Re: REVIEW: EXPLAIN and nfiltered  (Stephen Frost <sfrost@snowman.net>)
List pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Thu, Jan 20, 2011 at 11:55 AM, Stephen Frost <sfrost@snowman.net> wrote:
>> While I agree completely about the general "if you're going to break,
>> break it big" approach, but I don't particularly care for holding output
>> strings from EXPLAIN to the same level that we do the wireline protocol.

> I agree; we make bigger changes than this all the time.

No, we don't.  It's true that a client that wants to truly *understand*
the plan has to know a lot of things, but the fundamental format of
EXPLAIN ANALYZE output has been real stable for a real long time:
node name  (cost=xxx.xx..xxx.xx rows=xxx width=xxx) (actual time=xxx.xxx..xxx.xxx rows=xxx loops=xxx)  detail line:
somethingor other  ->  subnode name  ... more of the same ...
 

This level of understanding seems plenty sufficient for something like
explain.depesz.com, to name just one popular tool.  The last format
change of any kind we made in this skeleton was to increase the number
of decimal places in the "actual time" numbers from 2 to 3 (wow).
That was in 7.4.  Modulo that detail, this basic contract has been valid
since EXPLAIN ANALYZE was invented, in 7.2.  As proposed, this patch
will break it.

It might be interesting for somebody to go look at Hubert's code and see
just how much it really knows about the EXPLAIN output format, and how
much it's had to change across PG releases.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Marko Tiikkaja
Date:
Subject: Re: REVIEW: EXPLAIN and nfiltered
Next
From: Tom Lane
Date:
Subject: Re: CommitFest wrap-up