mirror of
https://github.com/lancedb/lancedb.git
synced 2026-11-14 14:46:53 +00:00
refactor: fold the maintained-index API down to one entry point
Three cleanups to the LsmWriteSpec surface, all removing something: `with_no_maintained_indexes` is gone. `with_maintained_indexes` now takes `impl Into<Option<Vec<String>>>`, so `None` asks for every supported index, a list pins an exact set, and an empty list maintains none — one method covering what two did, and the argument reads the same as the field it sets. `IndexConfig::is_memwal_maintainable` is gone. What a memtable can build is lance's to say, and lance already says it via `is_maintainable_index_type`; mirroring that onto a lancedb type only added a place for the two to drift. `resolve_maintained_indexes` is now public and takes `&[IndexConfig]` rather than a table. It was already the whole of the resolution rules — infer from the committed set, or validate a named one — and a server installing specs on a caller's behalf needs exactly those rules. Sharing it means sophon no longer keeps a second copy that could disagree about what an absent list means, and the error now names the table's indexes so a rejected call says what was actually available. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
dd197ad0ff
commit
4bb0effcb2
+4
-6
@@ -805,13 +805,11 @@ impl TryFrom<LsmWriteSpec> for lancedb::table::LsmWriteSpec {
|
||||
)));
|
||||
}
|
||||
};
|
||||
// An omitted `maintainedIndexes` keeps the spec's default of "every
|
||||
// An omitted `maintainedIndexes` is the spec's default of "every
|
||||
// index the MemWAL can maintain".
|
||||
let spec = match value.maintained_indexes {
|
||||
Some(names) => spec.with_maintained_indexes(names),
|
||||
None => spec,
|
||||
};
|
||||
Ok(spec.with_writer_config_defaults(writer_config_defaults))
|
||||
Ok(spec
|
||||
.with_maintained_indexes(value.maintained_indexes)
|
||||
.with_writer_config_defaults(writer_config_defaults))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user