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