You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat!: Make expression and predicate evaluator constructors fallible (#1452)
This PR refactors the `new_expression_evaluator` and
`new_predicate_evaluator` methods in the `EvaluationHandler` trait to
return `DeltaResult` instead of being infallible. Addresses
#566.
## What changes are proposed in this pull request?
This is a breaking API change that enables:
- Better error reporting at evaluator construction time rather than
evaluation
- Early validation of expression/predicate compatibility with input
schemas
- More idiomatic Rust error handling patterns
### This PR affects the following public APIs
`new_expression_evaluator` and `new_predicate_evaluator` in
`EvaluationHandler`
**Changes:**
- Updated `EvaluationHandler` trait signatures to return
`DeltaResult<Arc<dyn Evaluator>>`
- Updated `ArrowEvaluationHandler` implementation to wrap returns in
`Ok(...)`
- Made `ScanLogReplayProcessor::new` fallible
- Updated `scan_action_iter` to return `DeltaResult<impl Iterator<...>>`
- Updated 12 callsites across the codebase to propagate errors with `?`
operator
- Updated FFI layer to handle errors using ExternResult
## How was this change tested?
- All 630 existing kernel tests pass
- All 18 FFI tests pass
- Verified compilation with `cargo check --all-features`
- No functional changes - purely refactoring error handling patterns
0 commit comments