Re: Proposal: Progressive explain

Rafael Thofehrn Castro <rafaelthca@gmail.com>

From: Rafael Thofehrn Castro <rafaelthca@gmail.com>
To: pgsql-hackers@postgresql.org
Cc: torikoshia@oss.nttdata.com
Date: 2025-03-07T20:34:32Z
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. Add some new hooks so extensions can add details to EXPLAIN.

Attachments

> Implementation of the new GUC progressive_explain_min_duration was done
> with
> timeouts. The timeout callback function is used to initialize the
> progressive
> explain.
>
> There is a catch to this implementation. In thread
> https://www.postgresql.org/message-id/flat/d68c3ae31672664876b22d2dcbb526d2%40postgrespro.ru
> where torikoshia proposes logging of query plans it was raised concerns
> about
> logging plans in the CFI, a sensible part of the code. So torikoshia
> implemented
> a smart workaround consisting in adjusting the execProcNode wrapper of all
> nodes
> so that the plan printing can be done there.
>
> I'm not sure if this same concern applies to timeout callbacks so I also
> implemented
> a second version of the latest patch that uses that execProcNode wrapper
> strategy.
>
> The wrapper code was implemented by torikoshia (torikoshia@oss.nttdata.com),
> so
> adding the credits here.
>

Did additional benchmarks and found issues with the patch that doesn't do
execProcNode
wrapping. There are sporadic crashes with *double free or corruption (top)*

So making the patch that uses the wrapper the current one. Again, giving
the credits to
torikoshia as being the owner of that section of the code.

Rafael.

>