Re: making EXPLAIN extensible

From: Sami Imseih <samimseih(at)gmail(dot)com>
To: Andrei Lepikhov <lepihov(at)gmail(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Jeff Davis <pgsql(at)j-davis(dot)com>, Thom Brown <thom(at)linux(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: making EXPLAIN extensible
Date: 2025-03-20 14:04:08
Message-ID: CAA5RZ0t+c254k0AzAA+PAvS3Cd-z+ZjN7pfZHX0Vr436ghpvTw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

>
> On 19/3/2025 21:51, Sami Imseih wrote:
> >> Why do you think this hook is not redundant?
> > what is it redundant with?
> >
> >> It would be better to add the parameter "type: EXPLAIN_ONLY |
> >> ANALYZE_ONLY | BOTH" to the RegisterExtensionExplainOption() routine.
> >> This value will be saved inside the ExplainExtensionOption structure and
> >> processed by the core inside the ParseExplainOptionList.
> >
> > hmm, IIUC, what you are describing is flag that will be limited to
> > only check if an option can be used with EXPLAIN_ONLY, ANALYZE_ONLY
> > or both. But what about if I have a case to check against between other
> > extension options? let's say ExtensionAOptionA and ExtensionAoptionB.
> > How would that work with the way you are suggesting?
> That makes sense. It would be more effective to include the meaningful
> example in Robert's extension for v7-0001.

While it will be good to provide an example in v7-0001, I can't see
any of the pg_overexplain options needing such validation.

> I'm sorry, I was confused; previously, the difficulties faced by
> extension developers were always attributed to him (refer to the
> discussion on the selectivity hook). However, now you're introducing a
> hook for a trivial operation that could simply be resolved at the end of
> execution within a per-node hook with tiny inconsistency in output. I'm
> pleased to see a change in the narrative.

I think you are referring to the idea to put a hook before
/* in text format, the first line ends here */

After considering the comments, I do see that was not a good proposal. You are
correct, and the per-node hook is enough.

--
Sami Imseih
Amazon Web Services (AWS)

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2025-03-20 14:18:07 Re: SQL:2023 JSON simplified accessor support
Previous Message Ilia Evdokimov 2025-03-20 14:03:25 Re: Add estimated hit ratio to Memoize in EXPLAIN to explain cost adjustment