Skip to content

Commit 90675f7

Browse files
committed
Add PGvector adapter
1 parent 97d5919 commit 90675f7

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/main/kotlin/griffio/Main.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package griffio
22

3+
import app.cash.sqldelight.ColumnAdapter
34
import app.cash.sqldelight.driver.jdbc.asJdbcDriver
5+
import com.pgvector.PGvector
6+
import griffio.migrations.Items
47
import griffio.queries.Sample
58
import org.postgresql.ds.PGSimpleDataSource
69

@@ -11,9 +14,16 @@ private fun getSqlDriver() = PGSimpleDataSource().apply {
1114
password = ""
1215
}.asJdbcDriver()
1316

17+
val vectorAdapter = object: ColumnAdapter<PGvector, String> {
18+
override fun decode(databaseValue: String): PGvector = PGvector(databaseValue)
19+
override fun encode(value: PGvector): String = value.toString()
20+
}
21+
22+
val adapters = Items.Adapter(vectorAdapter)
23+
1424
fun main() {
1525
val driver = getSqlDriver()
16-
val sample = Sample(driver)
26+
val sample = Sample(driver, adapters)
1727
sample.vectorQueries.insert()
1828
sample.vectorQueries.select().executeAsList().forEach(::println)
1929
println("embeddings")

src/main/sqldelight/griffio/migrations/V1__Initial_version.sqm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
import com.pgvector.PGvector;
2+
13
CREATE EXTENSION IF NOT EXISTS vector;
24

35
CREATE TABLE items (
46
id BIGSERIAL PRIMARY KEY,
5-
embedding VECTOR(3)
7+
embedding VECTOR(3) AS PGvector
68
);
79

810
CREATE INDEX idx_embedding_hnsw ON items USING hnsw (embedding vector_l2_ops);

0 commit comments

Comments
 (0)