Skip _vector_chunks rename for non-FLAT vec0 columns#294
Open
rolf-moz wants to merge 1 commit intoasg017:mainfrom
Open
Skip _vector_chunks rename for non-FLAT vec0 columns#294rolf-moz wants to merge 1 commit intoasg017:mainfrom
rolf-moz wants to merge 1 commit intoasg017:mainfrom
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@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%02dfor 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 withno such tableand 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_chunkswhen the column's index_type is VEC0_INDEX_TYPE_FLAT.Adds a regression test exercising rename on a DiskANN-indexed table.