Re: [PG13] Planning (time + buffers) data structure in explain plan (format text)

Julien Rouhaud <rjuju123@gmail.com>

From: Julien Rouhaud <rjuju123@gmail.com>
To: Pierre Giraud <pierre.giraud@dalibo.com>
Cc: PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2020-08-07T12:52:10Z
Lists: pgsql-hackers
Hi,

On Fri, Aug 7, 2020 at 2:30 PM Pierre Giraud <pierre.giraud@dalibo.com> wrote:
>
> Hi all,
>
> As far as I understand, in the upcoming version 13, information about
> buffers used during planning is now available in the explain plan.

Indeed.

> […]
>  Planning Time: 0.203 ms
>    Buffers: shared hit=14
> […]
>
> In the JSON format, the data structure is a bit different:
>
> […]
>      "Planning": {
>        "Planning Time": 0.533,
>        "Shared Hit Blocks": 14,
>        "Shared Read Blocks": 0,
>        "Shared Dirtied Blocks": 0,
>        "Shared Written Blocks": 0,
>        "Local Hit Blocks": 0,
>        "Local Read Blocks": 0,
>        "Local Dirtied Blocks": 0,
>        "Local Written Blocks": 0,
>        "Temp Read Blocks": 0,
>        "Temp Written Blocks": 0
>      },
> […]
>
> For a matter of consistency, I wonder if it would be possible to format
> it like the following:
>
> […]
>  Planning:
>    Planning Time: 0.203 ms
>    Buffers: shared hit=14
> […]

I agree that this output looks more consistent with other output,
including JIT as you mentioned.  I'll send a patch for that if there's
no objection.

Out of curiosity, is the current text output actually harder to parse
than the one you're suggesting?



Commits

  1. Fix explain regression test failure.

  2. Rework EXPLAIN for planner's buffer usage.