> 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 (torikos...@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.

>

Attachment: v8-0001-Proposal-for-progressive-explains.patch
Description: Binary data

Reply via email to