Skip to content

feat: add logical delete/forget API#59

Merged
beinan merged 3 commits into
lance-format:mainfrom
dcfocus:codex/delete-forget-record
Jun 9, 2026
Merged

feat: add logical delete/forget API#59
beinan merged 3 commits into
lance-format:mainfrom
dcfocus:codex/delete-forget-record

Conversation

@dcfocus

@dcfocus dcfocus commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add Context.delete()/forget() and PyO3 bindings for id or external_id deletes
  • Store deletes as internal tombstone records so default list/get/search hide forgotten rows
  • Add Rust/Python tests and docs for logical delete semantics

Testing

  • uv run --with maturin maturin develop
  • uv run --with pytest pytest python/tests/ -v
  • uv run --with pytest pytest tests/test_delete.py tests/test_search.py -v
  • uv run --with ruff ruff format --check python/
  • uv run --with ruff ruff check python/
  • uv run --with pyright pyright
  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test -p lance-context-core --lib
  • cargo test -p lance-context-core --doc

Note: broader local python/tests run has 4 pre-existing raw-fragment/compaction failures with MemWAL visibility (test_compaction..., test_persistence...). Focused delete tests and the exact workflow test path pass.

Closes #55

@beinan beinan merged commit dab6332 into lance-format:main Jun 9, 2026
7 checks passed
@dcfocus dcfocus deleted the codex/delete-forget-record branch June 27, 2026 19:10
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.

Add first-class delete/forget by stable record ID

2 participants