> 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. >
v8-0001-Proposal-for-progressive-explains.patch
Description: Binary data