mirror of
https://github.com/lancedb/lancedb.git
synced 2026-10-13 07:12:27 +00:00
Changing the set meant unsetting the spec and setting it again, which drops the MemWAL and everything in its fresh tier. `set_lsm_write_spec` now accepts a repeat that differs only there and updates the set on the live index; the sharding still cannot move, because the generations already written were homed under it. The default set also stops being a snapshot. It is stored as the intent to maintain everything, which lance re-reads as the table changes, so an index created later is maintained without another call. An index of a kind the MemWAL cannot mirror is skipped under that intent rather than refusing the table, since nobody asked for it by name; a named one is still refused. The LSM read path asks the spec whether an index is maintained rather than searching the stored list, which an unnamed set leaves empty -- reading the list alone would refuse full-text and vector search on every table using the default.