Re: Display of multi-target-table Modify plan nodes in EXPLAIN - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Display of multi-target-table Modify plan nodes in EXPLAIN
Date
Msg-id 31792.1427120771@sss.pgh.pa.us
Whole thread Raw
In response to Re: Display of multi-target-table Modify plan nodes in EXPLAIN  (Heikki Linnakangas <hlinnaka@iki.fi>)
Responses Re: Display of multi-target-table Modify plan nodes in EXPLAIN
List pgsql-hackers
Heikki Linnakangas <hlinnaka@iki.fi> writes:
> On 03/22/2015 03:02 AM, Tom Lane wrote:
>> In a green field we might choose to solve this by refactoring the output
>> so that it's logically ...
>> but I think that ship has sailed.  Changing the logical structure of
>> EXPLAIN output like this would break clients that know what's where in
>> JSON/YAML/XML formats, which is exactly what we said we wouldn't do with
>> those output formats.

> If we have promised that, I think we should break the promise. No 
> application should depend on the details of EXPLAIN output, even if it's 
> in JSON/YAML/XML format.

I think this is entirely wrong.  The entire point of having those
machine-readable output formats was to let people write tools that would
process plans in some intelligent manner.  Relocating where child plans of
a Modify appear in the data structure would certainly break any tool that
had any understanding of plan trees.  Now, maybe there are no such tools,
but in that case the whole exercise in adding those formats was a waste of
time and we should rip them out.

In any case, what I was suggesting here is only very marginally cleaner
than what got implemented, so it really doesn't seem to me to be worth
breaking backwards compatibility here, even if I bought the premise that
backwards compatibility of this output is of low priority.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: recovery_min_delay casting problems lead to busy looping
Next
From: Andres Freund
Date:
Subject: Re: recovery_min_delay casting problems lead to busy looping