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 →
-
Add some new hooks so extensions can add details to EXPLAIN.
- 4fd02bf7cf94 18.0 cited
Attachments
- v8-0001-Proposal-for-progressive-explains.patch (application/octet-stream) patch v8-0001
> 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. >