@@ -5,39 +5,40 @@ import Testing
55
66final class PostgresNIOTests {
77 @Test func example( ) async throws {
8- let config = PostgresConnection . Configuration (
8+ let config = PostgresClient . Configuration (
99 host: " localhost " ,
1010 port: 5432 ,
1111 username: ProcessInfo . processInfo. environment [ " USER " ] !,
1212 password: nil ,
1313 database: " pgvector_swift_test " ,
1414 tls: . disable
1515 )
16- let logger = Logger ( label: " postgres-logger " )
1716
18- let connection = try await PostgresConnection . connect (
19- configuration: config,
20- id: 1 ,
21- logger: logger
22- )
17+ let client = PostgresClient ( configuration: config)
2318
24- try await connection. query ( " CREATE EXTENSION IF NOT EXISTS vector " , logger: logger)
25- try await connection. query ( " DROP TABLE IF EXISTS nio_items " , logger: logger)
26- try await connection. query ( " CREATE TABLE nio_items (id bigserial PRIMARY KEY, embedding vector(3)) " , logger: logger)
19+ try await withThrowingTaskGroup ( of: Void . self) { taskGroup in
20+ taskGroup. addTask {
21+ await client. run ( )
22+ }
2723
28- let embedding1 = " [1,1,1] "
29- let embedding2 = " [2,2,2] "
30- let embedding3 = " [1,1,2] "
31- try await connection. query ( " INSERT INTO nio_items (embedding) VALUES ( \( embedding1) ::vector), ( \( embedding2) ::vector), ( \( embedding3) ::vector) " , logger: logger)
24+ try await client. query ( " CREATE EXTENSION IF NOT EXISTS vector " )
25+ try await client. query ( " DROP TABLE IF EXISTS nio_items " )
26+ try await client. query ( " CREATE TABLE nio_items (id bigserial PRIMARY KEY, embedding vector(3)) " )
3227
33- let embedding = " [1,1,1] "
34- let rows = try await connection. query ( " SELECT id, embedding::text FROM nio_items ORDER BY embedding <-> \( embedding) ::vector LIMIT 5 " , logger: logger)
35- for try await row in rows {
36- print ( row)
37- }
28+ let embedding1 = " [1,1,1] "
29+ let embedding2 = " [2,2,2] "
30+ let embedding3 = " [1,1,2] "
31+ try await client. query ( " INSERT INTO nio_items (embedding) VALUES ( \( embedding1) ::vector), ( \( embedding2) ::vector), ( \( embedding3) ::vector) " )
3832
39- try await connection. query ( " CREATE INDEX ON nio_items USING ivfflat (embedding vector_l2_ops) WITH (lists = 1) " , logger: logger)
33+ let embedding = " [1,1,1] "
34+ let rows = try await client. query ( " SELECT id, embedding::text FROM nio_items ORDER BY embedding <-> \( embedding) ::vector LIMIT 5 " )
35+ for try await row in rows {
36+ print ( row)
37+ }
4038
41- try await connection. close ( )
39+ try await client. query ( " CREATE INDEX ON nio_items USING ivfflat (embedding vector_l2_ops) WITH (lists = 1) " )
40+
41+ taskGroup. cancelAll ( )
42+ }
4243 }
4344}
0 commit comments