From 8b1ea42d424d00e0f91064e7ed9849c4cfe5ff71 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Sat, 12 Aug 2023 12:41:27 -0700 Subject: [PATCH] Improved HNSW vacuum test --- test/t/011_hnsw_vacuum.pl | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/test/t/011_hnsw_vacuum.pl b/test/t/011_hnsw_vacuum.pl index ff80e29..10c301f 100644 --- a/test/t/011_hnsw_vacuum.pl +++ b/test/t/011_hnsw_vacuum.pl @@ -23,7 +23,7 @@ $node->start; $node->safe_psql("postgres", "CREATE EXTENSION vector;"); $node->safe_psql("postgres", "CREATE TABLE tst (i int4, v vector($dim));"); $node->safe_psql("postgres", - "INSERT INTO tst SELECT i % 10, ARRAY[$array_sql] FROM generate_series(1, 10000) i;" + "INSERT INTO tst SELECT i, ARRAY[$array_sql] FROM generate_series(1, 10000) i;" ); $node->safe_psql("postgres", "CREATE INDEX ON tst USING hnsw (v vector_l2_ops);"); @@ -34,7 +34,7 @@ my $size = $node->safe_psql("postgres", "SELECT pg_total_relation_size('tst_v_id $node->safe_psql("postgres", "DELETE FROM tst;"); $node->safe_psql("postgres", "VACUUM tst;"); $node->safe_psql("postgres", - "INSERT INTO tst SELECT i % 10, ARRAY[$array_sql] FROM generate_series(1, 10000) i;" + "INSERT INTO tst SELECT i, ARRAY[$array_sql] FROM generate_series(1, 10000) i;" ); # Check size @@ -42,4 +42,13 @@ $node->safe_psql("postgres", my $new_size = $node->safe_psql("postgres", "SELECT pg_total_relation_size('tst_v_idx');"); cmp_ok($new_size, "<=", $size * 1.02, "size does not increase too much"); +# Delete all but one +$node->safe_psql("postgres", "DELETE FROM tst WHERE i != 123;"); +$node->safe_psql("postgres", "VACUUM tst;"); +my $res = $node->safe_psql("postgres", qq( + SET enable_seqscan = off; + SELECT i FROM tst ORDER BY v <-> '[0,0,0]' LIMIT 10; +)); +is($res, 123); + done_testing();