delta-io / delta-io/delta-kernel-rs
Remove embedded output_schema from ParseJsonExpression, use result_type instead
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 362
- Forks
- 217
- Avg merge
- 2d 16h
- Merged PRs (30d)
- 91
Description
Summary
ParseJsonExpression currently embeds its output_schema in the expression struct. This is redundant — the evaluator framework already threads result_type through evaluate_expression, which carries the same schema information.
MapToStruct was recently refactored (in #1895) to use result_type instead of an embedded schema, consistent with how Struct expressions work. ParseJson should follow the same pattern for consistency.
Changes needed
- Remove
output_schemafromParseJsonExpression - Update
evaluate_expressionto useresult_typeforParseJson(matching theStructandMapToStructpattern) - Update the
Expression::parse_jsonfactory method - Update FFI visitor/engine_visitor (remove schema handle parameter)
- Update transforms, Display, tests
Context
See discussion in #1895 (nicklan's comment).
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 with the MapToStruct refactor in #1895 and trace how result_type is passed through evaluate_expression for Struct and MapToStruct. Then inspect Expression::parse_json, the FFI visitor and engine_visitor, transforms, Display, and the existing tests. Done means ParseJsonExpression no longer stores output_schema and all listed callers and tests use the result_type-based path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100