@@ -345,6 +345,33 @@ do_execsql_test vector-f64-compress-f32 {
345345 SELECT * FROM vector_top_k('t_f64_f32_idx', vector64('[10,-10,-20,20]'), 4);
346346} {3 1 2}
347347
348+ do_execsql_test vector-f32-compress-f8 {
349+ CREATE TABLE t_f32_f8( v FLOAT32(4) );
350+ CREATE INDEX t_f32_f8_idx ON t_f32_f8( libsql_vector_idx(v, 'compress_neighbors=float8') );
351+ INSERT INTO t_f32_f8 VALUES ( vector('[1,-1,1,-1]') );
352+ INSERT INTO t_f32_f8 VALUES ( vector('[-1,1,1,-1]') );
353+ INSERT INTO t_f32_f8 VALUES ( vector('[1,-1,-1,1]') );
354+ SELECT * FROM vector_top_k('t_f32_f8_idx', vector('[10,-10,-20,20]'), 4);
355+ } {3 1 2}
356+
357+ do_execsql_test vector-f8 {
358+ CREATE TABLE t_f8( v FLOAT8(4) );
359+ CREATE INDEX t_f8_idx ON t_f8( libsql_vector_idx(v) );
360+ INSERT INTO t_f8 VALUES ( vector8('[1,-1,1,-1]') );
361+ INSERT INTO t_f8 VALUES ( vector8('[-1,1,1,-1]') );
362+ INSERT INTO t_f8 VALUES ( vector8('[1,-1,-1,1]') );
363+ SELECT * FROM vector_top_k('t_f8_idx', vector8('[10,-10,-20,20]'), 4);
364+ } {3 1 2}
365+
366+ do_execsql_test vector-f8-compress-1bit {
367+ CREATE TABLE t_f8_1bit( v FLOAT8(4) );
368+ CREATE INDEX t_f8_1bit_idx ON t_f8_1bit( libsql_vector_idx(v, 'compress_neighbors=float1bit') );
369+ INSERT INTO t_f8_1bit VALUES ( vector8('[1,-1,1,-1]') );
370+ INSERT INTO t_f8_1bit VALUES ( vector8('[-1,1,1,-1]') );
371+ INSERT INTO t_f8_1bit VALUES ( vector8('[1,-1,-1,1]') );
372+ SELECT * FROM vector_top_k('t_f8_1bit_idx', vector8('[10,-10,-20,20]'), 4);
373+ } {3 1 2}
374+
348375proc error_messages {sql} {
349376 set ret ""
350377 catch {
@@ -355,6 +382,8 @@ proc error_messages {sql} {
355382 set ret [sqlite3_errmsg db]
356383}
357384
385+ reset_db
386+
358387do_test vector-errors {
359388 set ret [list]
360389 lappend ret [error_messages {CREATE INDEX t_no_idx ON t_no( libsql_vector_idx(v) )}]
0 commit comments