statement ok SET enable_seqscan = off; statement ok CREATE TABLE t_column (id integer, val vector(3)); statement ok INSERT INTO t_column (id, val) SELECT id, ARRAY[id, id, id]::real[] FROM generate_series(1, 10000) s(id); statement ok CREATE INDEX ON t_column USING vchordrq (val vector_l2_ops) WITH (options = $$ residual_quantization = false rerank_in_table = false [build.internal] lists = [] $$); statement ok SET vchordrq.probes = ''; query I SELECT id FROM t_column ORDER BY val <-> '[1.9, 1.9, 1.9]' limit 9; ---- 2 1 3 4 5 6 7 8 9 statement ok DROP TABLE t_column; statement ok CREATE TABLE t_expr (id integer); statement ok INSERT INTO t_expr (id) SELECT id FROM generate_series(1, 10000) s(id); statement ok CREATE INDEX ON t_expr USING vchordrq ((ARRAY[id::real, id::real, id::real]::vector(3)) vector_l2_ops) WITH (options = $$ residual_quantization = false rerank_in_table = false [build.internal] lists = [] $$); statement ok SET vchordrq.probes = ''; query I SELECT id FROM t_expr ORDER BY ARRAY[id::real, id::real, id::real]::vector(3) <-> '[1.9, 1.9, 1.9]' limit 9; ---- 2 1 3 4 5 6 7 8 9 query I SELECT id FROM t_expr WHERE id <= 5 OR id % 2 = 1 ORDER BY ARRAY[id::real, id::real, id::real]::vector(3) <-> '[1.9, 1.9, 1.9]' LIMIT 9; ---- 2 1 3 4 5 7 9 11 13 statement ok SET vchordrq.prefilter to off; query I SELECT ARRAY(SELECT id FROM t_expr WHERE (id <= 5 OR id % 2 = 1) OR e >= 2000 ORDER BY ARRAY[id::real, id::real, id::real]::vector(3) <-> q LIMIT 9) FROM (VALUES ('[1.9,1.99,1.999]'::vector, 1999), ('[2.1,2.11,2.111]', 2111)) AS t(q, e); ---- {2,1,3,4,5,7,9,11,13} {2,3,1,4,5,6,7,8,9} statement ok SET vchordrq.prefilter to on; query I SELECT ARRAY(SELECT id FROM t_expr WHERE (id <= 5 OR id % 2 = 1) OR e >= 2000 ORDER BY ARRAY[id::real, id::real, id::real]::vector(3) <-> q LIMIT 9) FROM (VALUES ('[1.9,1.99,1.999]'::vector, 1999), ('[2.1,2.11,2.111]', 2111)) AS t(q, e); ---- {2,1,3,4,5,7,9,11,13} {2,3,1,4,5,6,7,8,9} statement ok DROP TABLE t_expr;