What's changed
🚀 Features
- Define Hudi error types across hudi-core (#124) by @gohalo
- Support filter pushdown for datafusion (#203) by @jonathanc-n
- Add demo app and integration tests (#226) by @xushiyan
- Add
TimelineSelector
to support timeline loading (#233) by @xushiyan - Add
hoodie.read.listing.parallelism
config (#235) by @xushiyan - Support row filters for
FileGroupReader
(#237) by @xushiyan - Implement incremental query for COW tables (#236) by @xushiyan
- Implement log file reader for parquet log block (#244) by @xushiyan
- Implement basic record merge semantics (#249) by @xushiyan
- Add APIs for MOR snapshot reads (#247) by @xushiyan
- Support time travel query for MOR tables (#256) by @xushiyan
- Support incremental read MOR tables (#258) by @xushiyan
- Support MOR read-optimized query (#259) by @xushiyan
- Support reading MOR with rollback (#264) by @xushiyan
- Align python table APIs with rust (#267) by @xushiyan
- Add APIs to support incremental query impl (#272) by @xushiyan
🐛 Bug Fixes
- Simplify partition filter format by taking tuple of strings (#170) by @kazdy
- Improve api to get file slices splits (#185) by @xushiyan
- Handle schema retrieval for datafusion api (#187) by @xushiyan
- Include commit_seqno for merge order (#250) by @xushiyan
- Format Hudi config enum should show the full config key (#254) by @Kunal-Singh-Dadhwal
- Derive record merge strategy based on table configs (#260) by @xushiyan
- Handle as-of timestamp for excluding file groups (#268) by @xushiyan
- Build up incremental file groups (#273) by @xushiyan
🚜 Refactor
- Reorganize custom error types (#215) by @xushiyan
- Add API stubs for performing incremental queries (#220) by @xushiyan
- Enhance
Filter
and related structs (#221) by @xushiyan - Improve
TimelineSelector
API (#234) by @xushiyan - Improve
BaseFile
APIs (#239) by @xushiyan - Improve file system view's listing flow (#251) by @xushiyan
- Use static MetaField schema for incr query (#252) by @xushiyan
- Rename crate
hudi-tests
tohudi-test
(#262) by @xushiyan - Remove use of
Filter
from public APIs (#266) by @xushiyan
📚 Documentation
- Update README examples (#194) by @xushiyan
- Update release and dev guides (#195) by @xushiyan
- Add example to
hudi-datafusion
crate (#202) by @jonathanc-n - Add
CREATE EXTERNAL TABLE
example in datafusion crate (#213) by @jonathanc-n - Clarify issues in the dev guide (#224) by @xushiyan
- Add in-code docs for
FileGroup
(#269) by @xushiyan - Update
README.md
to show table API examples (#274) by @xushiyan
🛠️ Build
- (deps) Bump codecov/codecov-action from 4 to 5 (#184) by @dependabot[bot]
- (deps) Upgrade datafusion and object store (#182) by @kazdy
- (deps) Upgrade datafusion to 42.2.0 (#192) by @xushiyan
- (deps) Upgrade Datafusion, Arrow, and Rust versions (#197) by @jonathanc-n
- (deps) Update pyo3 requirement from 0.22.2 to 0.22.4 (#212) by @jonathanc-n
- (deps) Clean up dependencies (#240) by @xushiyan
- (dep) Upgrade rustc, arrow, and tarpaulin setting (#276) by @xushiyan
⚙️ Miscellaneous Tasks
- Update release script and guide (#200) by @xushiyan
- Update changelog for 0.2.0 (#201) by @xushiyan
- Update pull request guidelines for contributors (#204) by @jonathanc-n
- Add more dev commands and update the project's short description (#217) by @xushiyan
- Update codecov threshold (#222) by @xushiyan
- Update codecov config (#245) by @xushiyan
- Update codecov-action to v5 (#248) by @K-dash
- (ci) Add rust dependency caching with rust-cache action (#265) by @K-dash
- Fix src verify script (#279)
- Update release guide and issue templates (#282)
New Contributors
-
@Kunal-Singh-Dadhwal made their first contribution in #254
-
@jonathanc-n made their first contribution in #203