SET enable_seqscan = off; CREATE TABLE t (val vector(3)); INSERT INTO t (val) VALUES ('[0,0,0]'), ('[1,2,3]'), ('[1,1,1]'), (NULL); CREATE INDEX ON t USING ivfflat (val vector_l2_ops) WITH (lists = 1); INSERT INTO t (val) VALUES ('[1,2,4]'); SELECT * FROM t ORDER BY val <-> '[3,3,3]'; val --------- [1,2,3] [1,2,4] [1,1,1] [0,0,0] (4 rows) SELECT * FROM t ORDER BY val <-> (SELECT NULL::vector); val --------- [0,0,0] [1,1,1] [1,2,3] [1,2,4] (4 rows) SELECT COUNT(*) FROM t; count ------- 5 (1 row) TRUNCATE t; NOTICE: ivfflat index created with little data DETAIL: This will cause low recall. HINT: Drop the index until the table has more data. SELECT * FROM t ORDER BY val <-> '[3,3,3]'; val ----- (0 rows) DROP TABLE t;