From 98d7c4124e3fed34f488937697a391a2750210fb Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Wed, 1 Jul 2026 15:45:18 -0700 Subject: [PATCH] Added IVFFlat memory tests for bit [skip ci] --- test/expected/ivfflat_bit.out | 22 ++++++++++++++++++++++ test/sql/ivfflat_bit.sql | 19 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/test/expected/ivfflat_bit.out b/test/expected/ivfflat_bit.out index ab8adfd..2457e6f 100644 --- a/test/expected/ivfflat_bit.out +++ b/test/expected/ivfflat_bit.out @@ -35,3 +35,25 @@ NOTICE: ivfflat index created with little data DETAIL: This will cause low recall. HINT: Drop the index until the table has more data. DROP TABLE t; +-- memory +CREATE TABLE t (val bit(64000)); +CREATE INDEX ON t USING ivfflat (val bit_hamming_ops) WITH (lists = 32768); +ERROR: memory required is 251 MB, maintenance_work_mem is 64 MB +DROP TABLE t; +SET maintenance_work_mem = '1MB'; +CREATE TABLE t (val bit(64000)); +CREATE INDEX ON t USING ivfflat (val bit_hamming_ops); +NOTICE: ivfflat index created with little data +DETAIL: This will cause low recall. +HINT: Drop the index until the table has more data. +DROP TABLE t; +RESET maintenance_work_mem; +SET maintenance_work_mem = '29MB'; +CREATE TABLE t (val bit(64000)); +INSERT INTO t (val) VALUES (B'0'::bit(64000)); +CREATE INDEX ON t USING ivfflat (val bit_hamming_ops); +NOTICE: ivfflat index created with little data +DETAIL: This will cause low recall. +HINT: Drop the index until the table has more data. +DROP TABLE t; +RESET maintenance_work_mem; diff --git a/test/sql/ivfflat_bit.sql b/test/sql/ivfflat_bit.sql index e0f9e25..f76d8a4 100644 --- a/test/sql/ivfflat_bit.sql +++ b/test/sql/ivfflat_bit.sql @@ -21,3 +21,22 @@ CREATE INDEX ON t USING ivfflat ((val::bit(3)) bit_hamming_ops) WITH (lists = 1) CREATE INDEX ON t USING ivfflat ((val::bit(64001)) bit_hamming_ops) WITH (lists = 1); CREATE INDEX ON t USING ivfflat ((val::bit(2)) bit_hamming_ops) WITH (lists = 5); DROP TABLE t; + +-- memory + +CREATE TABLE t (val bit(64000)); +CREATE INDEX ON t USING ivfflat (val bit_hamming_ops) WITH (lists = 32768); +DROP TABLE t; + +SET maintenance_work_mem = '1MB'; +CREATE TABLE t (val bit(64000)); +CREATE INDEX ON t USING ivfflat (val bit_hamming_ops); +DROP TABLE t; +RESET maintenance_work_mem; + +SET maintenance_work_mem = '29MB'; +CREATE TABLE t (val bit(64000)); +INSERT INTO t (val) VALUES (B'0'::bit(64000)); +CREATE INDEX ON t USING ivfflat (val bit_hamming_ops); +DROP TABLE t; +RESET maintenance_work_mem;