feat: enrich IndexContent with describe_indices metadata#349
Open
wjones127 wants to merge 2 commits into
Open
Conversation
ListTableIndices returns IndexContent with only index_name, index_uuid, columns, and status. Consumers needing an index's type, size, or row count had to follow up with one DescribeTableIndexStats call per index — an N+1. Add the metadata that describe_indices exposes cheaply from the manifest to IndexContent: index_type, type_url, num_indexed_rows, size_bytes, num_segments, created_at, index_version, and index_details. All fields are optional for backwards compatibility with older servers. Regenerate the rust, python, and java clients from the updated spec. Closes lance-format#348
wjones127
commented
Jun 4, 2026
Comment on lines
+3245
to
+3249
| num_segments: | ||
| type: integer | ||
| format: int32 | ||
| minimum: 0 | ||
| description: Number of index deltas/segments. |
Contributor
Author
There was a problem hiding this comment.
note: I'm undecided whether we should replace this with a list of segments. Open to thoughts on that.
Contributor
Author
There was a problem hiding this comment.
One thought is that we can always add segment-level data layer. Not much harm in having the count and the list in here, even if it would be somewhat redundant.
Address review feedback: num_indexed_rows counts live rows (deletes excluded), and created_at is simply the index creation time.
Contributor
Author
|
I'm not sure if this needs a vote (think it does) but posting for initial comment now. The main question I have: does just exposing |
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.
ListTableIndicesreturnsIndexContentwith onlyindex_name,index_uuid,columns, andstatus. Consumers needing an index's type, size, or row count had to follow up with oneDescribeTableIndexStatscall per index — an N+1.This adds the metadata that
describe_indicesexposes cheaply from the manifest toIndexContent:index_typeIVF_PQ,BTREEtype_urlnum_indexed_rowssize_bytesnum_segmentscreated_atindex_versionindex_detailsAll fields are optional for backwards compatibility with older servers. The rust, python, and java clients are regenerated from the updated spec.
Server implementations populate the new fields in a follow-up (lance-format/lance#7101).
Closes #348