lance-format / lance-format/lance
correctly categorize Error types
Open
Nobody has claimed this yet.
enhancement
- Dominant language
- Rust
- Stars
- 7.1k
- Forks
- 852
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 272
Description
as @wjones127 pointed out in #2316, currently our codebase has some errors that are returned as the wrong error type, for example:
return Err(Error::IO {
message: "HashJoiner: No data".to_string(),
location: location!(),
});
has nothing to do with IO
range_to_batches
pub fn range_to_batches(&self, range: Range<usize>) -> Result<Vec<(i32, Range<usize>)>> {
if range.end > *(self.batch_offsets.last().unwrap()) as usize {
return Err(Error::IO {
message: format!(
"Range {:?} is out of bounds {}",
range,
self.batch_offsets.last().unwrap()
),
location: location!(),
});
}
should return a Error::InvalidInput
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the Error variants used in rust/lance/src/dataset/hash_joiner.rs and rust/lance-file/src/format/metadata.rs, especially HashJoiner and range_to_batches. Check similar error returns across the codebase and confirm that errors are categorized by their actual cause, including the out-of-bounds case described in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100