Skip to content

Skip _vector_chunks rename for non-FLAT vec0 columns#294

Open
rolf-moz wants to merge 1 commit intoasg017:mainfrom
rolf-moz:fix-rename-non-flat-vector-chunks
Open

Skip _vector_chunks rename for non-FLAT vec0 columns#294
rolf-moz wants to merge 1 commit intoasg017:mainfrom
rolf-moz:fix-rename-non-flat-vector-chunks

Conversation

@rolf-moz
Copy link
Copy Markdown

@rolf-moz rolf-moz commented May 5, 2026

@asg017 I was using table renaming in order to force a flush in the DiskANN and this bug popped up with alter tables. I should note that don't know the sqlite-vec code very well and relied on Claude to identify this, so take with a grain of salt.

vec0Rename emits an unconditional ALTER TABLE on <name>_vector_chunks%02d for every vector column, but non-FLAT columns (rescore, IVF, DiskANN) don't create that shadow table — so ALTER TABLE RENAME on a DiskANN-indexed (or rescore/IVF) vec0 table fails with no such table and leaves any cached prepared statements still referencing the old name.

Mirror the guard already used at create time in vec0_init around VEC0_SHADOW_VECTOR_N_CREATE: only rename _vector_chunks when the column's index_type is VEC0_INDEX_TYPE_FLAT.

Adds a regression test exercising rename on a DiskANN-indexed table.

vec0Rename emits an unconditional ALTER TABLE on `<name>_vector_chunks%02d`
for every vector column, but non-FLAT columns (rescore, IVF, DiskANN) don't
create that shadow table — so ALTER TABLE RENAME on a DiskANN-indexed (or
rescore/IVF) vec0 table fails with `no such table` and leaves any cached
prepared statements still referencing the old name.

Mirror the guard already used at create time in vec0_init around
VEC0_SHADOW_VECTOR_N_CREATE: only rename `_vector_chunks` when the column's
index_type is VEC0_INDEX_TYPE_FLAT.

Adds a regression test exercising rename on a DiskANN-indexed table.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant