@@ -53,26 +53,26 @@ mod tests {
53
53
client. execute ( "CREATE EXTENSION IF NOT EXISTS vector" , & [ ] ) ?;
54
54
client. execute ( "DROP TABLE IF EXISTS postgres_bit_items" , & [ ] ) ?;
55
55
client. execute (
56
- "CREATE TABLE postgres_bit_items (id bigserial PRIMARY KEY, embedding bit(8 ))" ,
56
+ "CREATE TABLE postgres_bit_items (id bigserial PRIMARY KEY, embedding bit(3 ))" ,
57
57
& [ ] ,
58
58
) ?;
59
59
60
- let vec = Bit :: from_bytes ( & [ 0b10101010 ] ) ;
61
- let vec2 = Bit :: from_bytes ( & [ 0b01010101 ] ) ;
60
+ let vec = Bit :: new ( & [ true , false , true ] ) ;
61
+ let vec2 = Bit :: new ( & [ false , true , false ] ) ;
62
62
client. execute (
63
63
"INSERT INTO postgres_bit_items (embedding) VALUES ($1), ($2), (NULL)" ,
64
64
& [ & vec, & vec2] ,
65
65
) ?;
66
66
67
- let query_vec = Bit :: from_bytes ( & [ 0b10101010 ] ) ;
67
+ let query_vec = Bit :: new ( & [ true , false , true ] ) ;
68
68
let row = client. query_one (
69
69
"SELECT embedding FROM postgres_bit_items ORDER BY embedding <~> $1 LIMIT 1" ,
70
70
& [ & query_vec] ,
71
71
) ?;
72
72
let res_vec: Bit = row. get ( 0 ) ;
73
73
assert_eq ! ( vec, res_vec) ;
74
- assert_eq ! ( 8 , res_vec. len( ) ) ;
75
- assert_eq ! ( & [ 0b10101010 ] , res_vec. as_bytes( ) ) ;
74
+ assert_eq ! ( 3 , res_vec. len( ) ) ;
75
+ assert_eq ! ( & [ 0b10100000 ] , res_vec. as_bytes( ) ) ;
76
76
77
77
let null_row = client. query_one (
78
78
"SELECT embedding FROM postgres_bit_items WHERE embedding IS NULL LIMIT 1" ,
@@ -87,15 +87,15 @@ mod tests {
87
87
& [ ] ,
88
88
) ?;
89
89
let text_res: String = text_row. get ( 0 ) ;
90
- assert_eq ! ( "10101010 " , text_res) ;
90
+ assert_eq ! ( "101 " , text_res) ;
91
91
92
92
// copy
93
93
let bit_type = Type :: BIT ;
94
94
let writer = client
95
95
. copy_in ( "COPY postgres_bit_items (embedding) FROM STDIN WITH (FORMAT BINARY)" ) ?;
96
96
let mut writer = BinaryCopyInWriter :: new ( writer, & [ bit_type] ) ;
97
- writer. write ( & [ & Bit :: from_bytes ( & [ 0b10101010 ] ) ] ) ?;
98
- writer. write ( & [ & Bit :: from_bytes ( & [ 0b01010101 ] ) ] ) ?;
97
+ writer. write ( & [ & Bit :: new ( & [ true , false , true ] ) ] ) ?;
98
+ writer. write ( & [ & Bit :: new ( & [ false , true , false ] ) ] ) ?;
99
99
writer. finish ( ) ?;
100
100
101
101
Ok ( ( ) )
0 commit comments