Trying to add more tests to gistbuild.c

Matheus Alcantara <mths.dev@pm.me>

From: Matheus Alcantara <mths.dev@pm.me>
To: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2022-05-06T13:19:43Z
Lists: pgsql-hackers

Attachments

I'm studying how the gist index works trying to improve the test coverage of gistbuild.c.

Reading the source code I noticed that the gistInitBuffering function is not covered, so I decided to start with it.
Reading the documentation and the source I understood that for this function to be executed it is necessary to force
bufferring=on when creating the index or the index to be created is big enough to not fit in the cache, am I correct?

Considering the above, I added two new index creation statements in the gist regression test (patch attached) to create
an index using buffering=on and another to try to simulate an index that does not fit in the cache.

With these new tests the coverage went from 45.3% to 85.5%, but I have some doubts:
- Does this test make sense?
- Would there be a way to validate that the buffering was done correctly?
- Is this test necessary?

I've been studying Postgresql implementations and I'm just trying to start contributing the source code.


--
Matheus Alcantara

Commits

  1. Improve regression test coverage of GiST index building.