Re: making EXPLAIN extensible

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Andrei Lepikhov <lepihov@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-04T15:14:18Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. pg_overexplain: Use PG_MODULE_MAGIC_EXT.

  2. pg_overexplain: Call previous hooks as appropriate.

  3. pg_overexplain: Additional EXPLAIN options for debugging.

  4. Add an additional hook for EXPLAIN option validation.

  5. Add some new hooks so extensions can add details to EXPLAIN.

  6. Make it possible for loadable modules to add EXPLAIN options.

On Tue, Mar 4, 2025 at 10:12 AM Andrei Lepikhov <lepihov@gmail.com> wrote:
> Also, I think this feature is quite close to the discussion on the
> possibility of adding an extensible list field into Query, PlanState,
> Plan, etc. nodes to let extensions gather and transfer some additional
> data starting with the first 'analyze' hook up to the end of execution.
> For example, in solving user issues, I frequently need to know
> predictions on the number of groups in Memoize, IncrementalSort and some
> other nodes. Such extensibility could allow an extension to gather such
> internal data during the planning stage and show it in the explain
> without any changes in the core!

If you're saying there's a -hackers discussion on this, could you
provide a link? I haven't seen it.

-- 
Robert Haas
EDB: http://www.enterprisedb.com