|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [v0.17.0](https://github.com/delta-io/delta-kernel-rs/tree/v0.17.0/) (2025-11-10) |
| 4 | + |
| 5 | +[Full Changelog](https://github.com/delta-io/delta-kernel-rs/compare/v0.16.0...v0.17.0) |
| 6 | + |
| 7 | +### 🏗️ Breaking changes |
| 8 | +1. (catalog-managed): New copy_atomic StorageHandler method ([#1400]) |
| 9 | + - StorageHandler implementers must implement the copy_atomic method. |
| 10 | +2. Make expression and predicate evaluator constructors fallible ([#1452]) |
| 11 | + - Predicate and expression evaluator constructors return DeltaResult. |
| 12 | +3. (catalog-managed): add `log_tail` to `SnapshotBuilder` ([#1290]) |
| 13 | + - `into_scan_builder()` no longer exists on `Snapshot`. Must create an `Arc<Snapshot>` |
| 14 | +4. Arrow 57, MSRV 1.85+ ([#1424]) |
| 15 | + - The Minimum Required Rust Version to use kernel-rs is now 1.85. |
| 16 | +5. Add ffi for idempotent write primitives ([#1191]) |
| 17 | + - get_transform_for_row now returns new FFI-safe OptionalValue instead of Option |
| 18 | +6. Rearchitect `CommitResult` ([#1343]) |
| 19 | + - CommitResult is now an enum containing CommittedTransaction, ConflictedTransaction, |
| 20 | + and RetryableTransaction |
| 21 | +7. Add with_data_change to transaction ([#1281]) |
| 22 | + - Engines must use with_data_change on the transaction level instead of |
| 23 | + passing it to the method. add_files_schema is moved to be scoped on a the |
| 24 | + transaction. |
| 25 | +8. *(catalog-managed)* Introduce Committer (with FileSystemCommitter) ([#1349]) |
| 26 | + - Constructing a transaction now requires a committer. Ex: FileSystemCommitter |
| 27 | +9. Switch scan.execute to return pre-filtered data ([#1429]) |
| 28 | + - Connectors no longer need to filter data that is returned from `scan.execute()` |
| 29 | + |
| 30 | + |
| 31 | +### 🚀 Features / new APIs |
| 32 | + |
| 33 | +1. Add visit_string_map to the ffi ([#1342]) |
| 34 | +2. Add tags field to LastCheckpointHint ([#1455]) |
| 35 | +3. Support writing domain metadata (1/2]) ([#1274]) |
| 36 | +4. Change input to write_json_file to be FilteredEngineData ([#1312]) |
| 37 | +5. Convert DV `storage_type` to enum ([#1366]) |
| 38 | +6. Add latest_commit_file field to LogSegment ([#1364]) |
| 39 | +7. No staged commits in checkpoint/compaction ([#1374]) |
| 40 | +8. Generate In Commit Timestamp on write ([#1314]) |
| 41 | +9. *(catalog-managed)* Add `uc-catalog` crate with load_table ([#1324]) |
| 42 | +10. Snapshot should not expose delta implementation details ([#1339]) |
| 43 | +11. *(catalog-managed)* Uc-client commit API ([#1399]) |
| 44 | +12. Add row tracking support ([#1375]) |
| 45 | +13. Support writing domain metadata (2/2]) ([#1275]) |
| 46 | +14. Add parser for enableTypeWidening table property ([#1456]) |
| 47 | +15. Implement `From` trait `EngineData` into `FilteredEngineData` ([#1397]) |
| 48 | +16. Unify TableFeatures followups ([#1404]) |
| 49 | +18. Accept nullable values in "tags" HashMap in `Add` action ([#1395]) |
| 50 | +19. Enable writes to CDF enabled tables only if append only is supported ([#1449]) |
| 51 | +20. Add deletion vector file writer ([#1425]) |
| 52 | +21. Allow converting `bytes::Bytes` into a Binary Scalar ([#1373]) |
| 53 | +22. CDF API for FFI ([#1335]) |
| 54 | +23. Add optional stats field to remove action ([#1390]) |
| 55 | +24. Modify read_actions to not require callers to know details about checkpoints. ([#1407]) |
| 56 | +25. Add Accessor for `Binary` data ([#1383]) |
| 57 | + |
| 58 | +### 🐛 Bug Fixes |
| 59 | + |
| 60 | +1. Change InCommitTimestamp enablement getter function ([#1357]) |
| 61 | +2. Be adaptive to the log schema changing in inspect-table ([#1368]) |
| 62 | +3. Typo on variable name for ScanTransformFieldClassifierieldClassifier ([#1394]) |
| 63 | +4. Pin cbindgen to 0.29.0 ([#1412]) |
| 64 | +5. Unpin cbindgen ([#1414]) |
| 65 | +6. Don't return errors from ParsedLogPath::try_from ([#1433]) |
| 66 | +7. Doc issue, stray ' ([#1445]) |
| 67 | +8. Replace todo!() with proper error handling in deletion vector ([#1447]) |
| 68 | + |
| 69 | +### 📚 Documentation |
| 70 | + |
| 71 | +1. Fix scan_metadata docs ([#1450]) |
| 72 | + |
| 73 | +### 🚜 Refactor |
| 74 | + |
| 75 | +1. Pull out transform spec utils and definitions ([#1326]) |
| 76 | +2. Use expression transforms in change data feed ([#1330]) |
| 77 | +3. Remove raw pointer indexing and add unit tests for RowIndexBuilder ([#1334]) |
| 78 | +4. Make `Metadata` fields private ([#1347]) |
| 79 | +5. Remove storing UUID in LogPathFileType::UuidCheckpoint ([#1317]) |
| 80 | +6. Consolidate physical/logical info into StateInfo ([#1350]) |
| 81 | +7. Consolidate regular scan and CDF scan field handling ([#1359]) |
| 82 | +8. Make get_cdf_transform_expr return Option<ExpressionRef> ([#1401]) |
| 83 | +9. Separate domain metadata additions and removals ([#1421]) |
| 84 | +10. Unify Reader/WriterFeature into a single TableFeature ([#1345]) |
| 85 | +11. Put `DataFileMetadata::as_record_batch` under `#[internal_api]` ([#1409]) |
| 86 | +12. Create static variables for magic values in deletion vector ([#1446]) |
| 87 | + |
| 88 | +### 🧪 Testing |
| 89 | + |
| 90 | +1. E2e test for log compaction ([#1308]) |
| 91 | +2. Tombstone expiration e2e test for log compaction ([#1341]) |
| 92 | +3. Add memory tests (via DHAT) ([#1009]) |
| 93 | +4. One liner to skip read_table_version_hdfs ([#1428]) |
| 94 | + |
| 95 | +### ⚙️ Chores/CI |
| 96 | + |
| 97 | +1. Add CI for examples ([#1393]) |
| 98 | +2. Small typo's in `log_segment.rs` ([#1396]) |
| 99 | +3. Reduce log verbosity when encountering non-standard files in _delta_log ([#1416]) |
| 100 | +4. Follow up on TODO in `log_replay.rs` ([#1408]) |
| 101 | +5. Remove a stray comment in the kernel visitor ([#1457]) |
| 102 | +6. Allow passing more on the command line for all the cli examples ([#1352]) |
| 103 | +7. add back arrow-55 support ([#1458]) |
| 104 | +8. Rename log_schema to commit_schema ([#1419]) |
| 105 | + |
| 106 | +[#1326]: https://github.com/delta-io/delta-kernel-rs/pull/1326 |
| 107 | +[#1308]: https://github.com/delta-io/delta-kernel-rs/pull/1308 |
| 108 | +[#1342]: https://github.com/delta-io/delta-kernel-rs/pull/1342 |
| 109 | +[#1290]: https://github.com/delta-io/delta-kernel-rs/pull/1290 |
| 110 | +[#1274]: https://github.com/delta-io/delta-kernel-rs/pull/1274 |
| 111 | +[#1330]: https://github.com/delta-io/delta-kernel-rs/pull/1330 |
| 112 | +[#1334]: https://github.com/delta-io/delta-kernel-rs/pull/1334 |
| 113 | +[#1347]: https://github.com/delta-io/delta-kernel-rs/pull/1347 |
| 114 | +[#1312]: https://github.com/delta-io/delta-kernel-rs/pull/1312 |
| 115 | +[#1352]: https://github.com/delta-io/delta-kernel-rs/pull/1352 |
| 116 | +[#1357]: https://github.com/delta-io/delta-kernel-rs/pull/1357 |
| 117 | +[#1317]: https://github.com/delta-io/delta-kernel-rs/pull/1317 |
| 118 | +[#1341]: https://github.com/delta-io/delta-kernel-rs/pull/1341 |
| 119 | +[#1350]: https://github.com/delta-io/delta-kernel-rs/pull/1350 |
| 120 | +[#1009]: https://github.com/delta-io/delta-kernel-rs/pull/1009 |
| 121 | +[#1366]: https://github.com/delta-io/delta-kernel-rs/pull/1366 |
| 122 | +[#1364]: https://github.com/delta-io/delta-kernel-rs/pull/1364 |
| 123 | +[#1368]: https://github.com/delta-io/delta-kernel-rs/pull/1368 |
| 124 | +[#1339]: https://github.com/delta-io/delta-kernel-rs/pull/1339 |
| 125 | +[#1373]: https://github.com/delta-io/delta-kernel-rs/pull/1373 |
| 126 | +[#1359]: https://github.com/delta-io/delta-kernel-rs/pull/1359 |
| 127 | +[#1343]: https://github.com/delta-io/delta-kernel-rs/pull/1343 |
| 128 | +[#1374]: https://github.com/delta-io/delta-kernel-rs/pull/1374 |
| 129 | +[#1314]: https://github.com/delta-io/delta-kernel-rs/pull/1314 |
| 130 | +[#1394]: https://github.com/delta-io/delta-kernel-rs/pull/1394 |
| 131 | +[#1393]: https://github.com/delta-io/delta-kernel-rs/pull/1393 |
| 132 | +[#1396]: https://github.com/delta-io/delta-kernel-rs/pull/1396 |
| 133 | +[#1281]: https://github.com/delta-io/delta-kernel-rs/pull/1281 |
| 134 | +[#1324]: https://github.com/delta-io/delta-kernel-rs/pull/1324 |
| 135 | +[#1401]: https://github.com/delta-io/delta-kernel-rs/pull/1401 |
| 136 | +[#1412]: https://github.com/delta-io/delta-kernel-rs/pull/1412 |
| 137 | +[#1349]: https://github.com/delta-io/delta-kernel-rs/pull/1349 |
| 138 | +[#1407]: https://github.com/delta-io/delta-kernel-rs/pull/1407 |
| 139 | +[#1414]: https://github.com/delta-io/delta-kernel-rs/pull/1414 |
| 140 | +[#1416]: https://github.com/delta-io/delta-kernel-rs/pull/1416 |
| 141 | +[#1191]: https://github.com/delta-io/delta-kernel-rs/pull/1191 |
| 142 | +[#1399]: https://github.com/delta-io/delta-kernel-rs/pull/1399 |
| 143 | +[#1375]: https://github.com/delta-io/delta-kernel-rs/pull/1375 |
| 144 | +[#1419]: https://github.com/delta-io/delta-kernel-rs/pull/1419 |
| 145 | +[#1275]: https://github.com/delta-io/delta-kernel-rs/pull/1275 |
| 146 | +[#1400]: https://github.com/delta-io/delta-kernel-rs/pull/1400 |
| 147 | +[#1335]: https://github.com/delta-io/delta-kernel-rs/pull/1335 |
| 148 | +[#1397]: https://github.com/delta-io/delta-kernel-rs/pull/1397 |
| 149 | +[#1421]: https://github.com/delta-io/delta-kernel-rs/pull/1421 |
| 150 | +[#1345]: https://github.com/delta-io/delta-kernel-rs/pull/1345 |
| 151 | +[#1428]: https://github.com/delta-io/delta-kernel-rs/pull/1428 |
| 152 | +[#1404]: https://github.com/delta-io/delta-kernel-rs/pull/1404 |
| 153 | +[#1433]: https://github.com/delta-io/delta-kernel-rs/pull/1433 |
| 154 | +[#1445]: https://github.com/delta-io/delta-kernel-rs/pull/1445 |
| 155 | +[#1408]: https://github.com/delta-io/delta-kernel-rs/pull/1408 |
| 156 | +[#1429]: https://github.com/delta-io/delta-kernel-rs/pull/1429 |
| 157 | +[#1450]: https://github.com/delta-io/delta-kernel-rs/pull/1450 |
| 158 | +[#1395]: https://github.com/delta-io/delta-kernel-rs/pull/1395 |
| 159 | +[#1390]: https://github.com/delta-io/delta-kernel-rs/pull/1390 |
| 160 | +[#1449]: https://github.com/delta-io/delta-kernel-rs/pull/1449 |
| 161 | +[#1425]: https://github.com/delta-io/delta-kernel-rs/pull/1425 |
| 162 | +[#1409]: https://github.com/delta-io/delta-kernel-rs/pull/1409 |
| 163 | +[#1452]: https://github.com/delta-io/delta-kernel-rs/pull/1452 |
| 164 | +[#1424]: https://github.com/delta-io/delta-kernel-rs/pull/1424 |
| 165 | +[#1447]: https://github.com/delta-io/delta-kernel-rs/pull/1447 |
| 166 | +[#1456]: https://github.com/delta-io/delta-kernel-rs/pull/1456 |
| 167 | +[#1455]: https://github.com/delta-io/delta-kernel-rs/pull/1455 |
| 168 | +[#1457]: https://github.com/delta-io/delta-kernel-rs/pull/1457 |
| 169 | +[#1458]: https://github.com/delta-io/delta-kernel-rs/pull/1458 |
| 170 | +[#1383]: https://github.com/delta-io/delta-kernel-rs/pull/1383 |
| 171 | +[#1446]: https://github.com/delta-io/delta-kernel-rs/pull/1446 |
| 172 | + |
| 173 | + |
3 | 174 | ## [v0.16.0](https://github.com/delta-io/delta-kernel-rs/tree/v0.16.0/) (2025-09-19) |
4 | 175 |
|
5 | 176 | [Full Changelog](https://github.com/delta-io/delta-kernel-rs/compare/v0.15.2...v0.16.0) |
|
0 commit comments