Provid indexing for the CTable object#620
Merged
FrancescAlted merged 10 commits intoctable4from Apr 15, 2026
Merged
Conversation
- New CTableIndex handle with col_name, kind, name, stale properties - create_index(), drop_index(), rebuild_index(), compact_index() methods - index() lookup and indexes property on CTable - _CTableIndexProxy duck-type shim routes sidecar files to <table.b2d>/_indexes/<col_name>/ for persistent tables - Index catalog stored in /_meta vlmeta; survives table close/reopen - where() automatically uses a fresh index; falls back to scan when stale - Epoch tracking: mutations (append, extend, setitem, assign, sort_by, compact) mark all indexes stale; delete() bumps visibility_epoch only - Views raise ValueError for all index management methods - Add _indexes to reserved column names in schema_compiler - 32 new tests in tests/ctable/test_ctable_indexing.py - New example examples/ctable/indexing.py - New tutorial doc/getting_started/tutorials/15.indexing-ctables.ipynb Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix CTable index lifecycle for schema mutations by removing index catalog entries and sidecars when indexed columns are dropped, and rebuilding indexes under the new name after column renames. Improve indexed CTable filtering so where() can expose multiple usable column indexes to the planner for conjunctive predicates, and raise a clear error for malformed table-owned index metadata instead of silently falling back to scans. Add regression coverage for indexed column rename/drop behavior, multi-column indexed conjunctions, and malformed catalog entries. Wire the CTable indexing tutorial into the docs toctree.
Implement the first phase of plans/changing-default-open-mode.md by tracking omitted mode= with a sentinel and emitting a FutureWarning when blosc2.open() relies on the current implicit "a" behavior. Update mmap-related tests, examples, and docstrings to pass explicit mode="r" so they keep exercising their intended paths without tripping the migration warning.
Member
Author
|
NOTE: once this is merged, we will need to remember that there is an ongoing transition towards making 'r'eadonly the default open mode in |
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.
This PR implements the CTable indexing work planned in plans/ctable-indexing.md and rounds it out with follow-up fixes, docs, and usability improvements.
What it adds
Supporting work
Usability improvements
Validation