|
1 | 1 | (ql:quickload :cl-dbi)
|
2 | 2 |
|
3 |
| -(defvar *db* |
| 3 | +(defvar *conn* |
4 | 4 | (dbi:connect :postgres
|
5 | 5 | :database-name "pgvector_lisp_test"))
|
6 | 6 |
|
7 |
| -(dbi:do-sql *db* "CREATE EXTENSION IF NOT EXISTS vector") |
| 7 | +(dbi:do-sql *conn* "CREATE EXTENSION IF NOT EXISTS vector") |
8 | 8 |
|
9 |
| -(dbi:do-sql *db* "DROP TABLE IF EXISTS items") |
| 9 | +(dbi:do-sql *conn* "DROP TABLE IF EXISTS items") |
10 | 10 |
|
11 |
| -(dbi:do-sql *db* "CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3))") |
| 11 | +(dbi:do-sql *conn* "CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3))") |
12 | 12 |
|
13 |
| -(dbi:do-sql *db* "INSERT INTO items (embedding) VALUES (?)" (list "[1,1,1]")) |
14 |
| -(dbi:do-sql *db* "INSERT INTO items (embedding) VALUES (?)" (list "[2,2,2]")) |
15 |
| -(dbi:do-sql *db* "INSERT INTO items (embedding) VALUES (?)" (list "[1,1,2]")) |
| 13 | +(dbi:do-sql *conn* "INSERT INTO items (embedding) VALUES (?)" (list "[1,1,1]")) |
| 14 | +(dbi:do-sql *conn* "INSERT INTO items (embedding) VALUES (?)" (list "[2,2,2]")) |
| 15 | +(dbi:do-sql *conn* "INSERT INTO items (embedding) VALUES (?)" (list "[1,1,2]")) |
16 | 16 |
|
17 |
| -(format t "~a~%" (dbi:fetch-all (dbi:execute (dbi:prepare *db* "SELECT * FROM items ORDER BY embedding <-> ? LIMIT 5") (list "[1,1,1]")))) |
| 17 | +(format t "~a~%" (dbi:fetch-all (dbi:execute (dbi:prepare *conn* "SELECT * FROM items ORDER BY embedding <-> ? LIMIT 5") (list "[1,1,1]")))) |
18 | 18 |
|
19 |
| -(dbi:do-sql *db* "CREATE INDEX ON items USING hnsw (embedding vector_l2_ops)") |
| 19 | +(dbi:do-sql *conn* "CREATE INDEX ON items USING hnsw (embedding vector_l2_ops)") |
0 commit comments