Improve regression test coverage of GiST index building.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 30 Jul 2022 20:22:24 +0000 (16:22 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 30 Jul 2022 20:22:24 +0000 (16:22 -0400)
Add a test case that exercises the "buffering build" code path.
This covers almost all the non-error-case lines in gistbuild.c
and gistbuildbuffers.c.

Matheus Alcantara, based on earlier work by Pavel Borisov

Discussion: https://postgr.es/m/3z8Fde-IHbW57a7bEZtaf19f4YOCWu67IZoWJoGW18rKD9R16ZHHchf4d7KFI3Yg7-0N4NonFuwKEgh98HjMCZYoVx7KOioPo6Wn2nZRpf4=@pm.me

src/test/regress/expected/gist.out
src/test/regress/sql/gist.sql

index a36b4c9c5616db83516c965b2fe5d02fb9b8753d..822000cca703afadc7768b06227c73c839a2bf1e 100644 (file)
@@ -387,6 +387,9 @@ select p from gist_tbl order by circle(p,1) <-> point(0,0) limit 1;
 
 select p from gist_tbl order by circle(p,1) <-> point(0,0) limit 1;
 ERROR:  lossy distance functions are not supported in index-only scans
+-- Force an index build using buffering.
+create index gist_tbl_box_index_forcing_buffering on gist_tbl using gist (p)
+  with (buffering=on, fillfactor=50);
 -- Clean up
 reset enable_seqscan;
 reset enable_bitmapscan;
index 33602663702106ea9ab7e19c0e08a58d94f4229d..77a51bd6b390196fc360990e8c70a0a993f24119 100644 (file)
@@ -169,6 +169,10 @@ explain (verbose, costs off)
 select p from gist_tbl order by circle(p,1) <-> point(0,0) limit 1;
 select p from gist_tbl order by circle(p,1) <-> point(0,0) limit 1;
 
+-- Force an index build using buffering.
+create index gist_tbl_box_index_forcing_buffering on gist_tbl using gist (p)
+  with (buffering=on, fillfactor=50);
+
 -- Clean up
 reset enable_seqscan;
 reset enable_bitmapscan;