Обсуждение: Regression test coverage of GiST index build is awful
This tells a pretty scary story: https://coverage.postgresql.org/src/backend/access/gist/index.html In particular, gistbuildbuffers.c is not entered *at all*, and gistbuild.c is only 21% covered. I noticed this after adding an assertion that I expected gistInitBuildBuffers to fail on, and nonetheless getting through check-world just fine. Why is this so bad? It's not like the gist regression test isn't ridiculously expensive already; I'd have expected it to provide darn near 100% coverage for what it's costing in runtime. regards, tom lane
On Wed, Apr 24, 2019 at 9:31 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > This tells a pretty scary story: > > https://coverage.postgresql.org/src/backend/access/gist/index.html > > In particular, gistbuildbuffers.c is not entered *at all*, and > gistbuild.c is only 21% covered. > > I noticed this after adding an assertion that I expected > gistInitBuildBuffers to fail on, and nonetheless getting > through check-world just fine. > > Why is this so bad? It's not like the gist regression test isn't > ridiculously expensive already; I'd have expected it to provide > darn near 100% coverage for what it's costing in runtime. I don't think there is any idea behind this. Seems to be just oversight. Do you like me to write a patch improving coverage here? ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Alexander Korotkov <a.korotkov@postgrespro.ru> writes:
> On Wed, Apr 24, 2019 at 9:31 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Why is this so bad? It's not like the gist regression test isn't
>> ridiculously expensive already; I'd have expected it to provide
>> darn near 100% coverage for what it's costing in runtime.
> I don't think there is any idea behind this. Seems to be just oversight.
After poking at it a bit, the answer seems to be that the gist buffering
code isn't invoked till we get to an index size of effective_cache_size/4,
which by default would be way too much for any regression test index.
> Do you like me to write a patch improving coverage here?
Somebody needs to... that's an awful lot of code to not be testing.
regards, tom lane