drizzle-team / drizzle-team/drizzle-orm
[FEATURE]: Implement CREATE VECTOR INDEX for MySQL
- Dominant language
- TypeScript
- Stars
- 35.8k
- Forks
- 1.6k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 4
Description
### Feature hasn't been suggested before.
- [X] I have verified this feature I'm about to request hasn't been suggested before.
### Describe the enhancement you want to request
MySQL 9.0 is shipping with the VECTOR column type. Some MySQL providers have already start giving early access too. Additionally, Oracle has documented a VECTOR INDEX in the new version: https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/create-vector-index.html
PlanetScale also supports this syntax, but there's no way of defining it with Drizzle.
```typescript
import { datetime, index, mediumtext, mysqlTable, varchar } from 'drizzle-orm/mysql-core';
const myTable = mysqlTable('my_table', {
// a custom type implementing the VECTOR column type
embedding: vector('embedding', { length: 1024 }),
}, (table) => ({
embeddingIdx: vectorIndex('embedding_idx').on(table.embedding),
});
```
Equivalent SQL:
```sql
CREATE VECTOR INDEX embedding_idx ON my_table(embedding);
```
It's currently not possible even if trying to use raw SQL to define the index, so it's a bit of a blocker.
Contributor guide
Assessment
This issue has not been assessed yet.