On Sun, 31 Jul 2022 at 00:33, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Matheus Alcantara <mths....@pm.me> writes:
> > On Friday, July 29th, 2022 at 19:53, Tom Lane t...@sss.pgh.pa.us wrote:
> >> I wonder if we can combine ideas from the two patches to get a
> >> better tradeoff of code coverage vs. runtime.
>
> > I was checking the Pavel patch and notice that he was using the
> fillfactor
> > parameter when creating the gist index. I changed my previous patch to
> include
> > this parameter and the code coverage of gistbuild.c and
> gistbuildbuffers.c was
> > improved to 97.7% and 92.8% respectively.
>
> Nice!
>
> I poked at this some more, wondering if we could combine the two new
> index builds into one test, and eventually realized something I should
> probably have figured out before: if you make effective_cache_size
> too small, it refuses to use buffering build at all, and you get here:
>
>     if (levelStep <= 0)
>     {
>         elog(DEBUG1, "failed to switch to buffered GiST build");
>         buildstate->buildMode = GIST_BUFFERING_DISABLED;
>         return;
>     }
>
> In fact, at least on my machine, the first test case hits this and
> thus effectively adds no coverage at all :-(.  If I remove that and
> just add the second index build, the above-quoted bit is the *only*
> thing in gistbuild.c or gistbuildbuffers.c that is missed compared
> to using both test cases.  Moreover, the runtime of the test comes
> down to ~240 ms, which is an increment of ~25ms instead of ~65ms.
> (Which shows that the non-buffering build is slower, not surprising
> I guess.)
>
> I judge that covering those three lines is not worth the extra 40ms,
> so pushed just the second test case.
>
> Thanks for poking at this!  I'm much happier now about the state of
> code coverage in that area.
>

I'm happy, that the improvement of the tests I've forgotten about so long
ago is finally committed. Thank you!

-- 
Best regards,
Pavel Borisov

Reply via email to