Skip to content

Commit c76d00a

Browse files
1 parent 7e367aa commit c76d00a

File tree

5 files changed

+176
-5
lines changed

5 files changed

+176
-5
lines changed

CHANGELOG.md

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,176 @@
11
# Changelog
22

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+
3174
## [v0.16.0](https://github.com/delta-io/delta-kernel-rs/tree/v0.16.0/) (2025-09-19)
4175

5176
[Full Changelog](https://github.com/delta-io/delta-kernel-rs/compare/v0.15.2...v0.16.0)

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ license = "Apache-2.0"
2727
repository = "https://github.com/delta-io/delta-kernel-rs"
2828
readme = "README.md"
2929
rust-version = "1.85"
30-
version = "0.16.0"
30+
version = "0.17.0"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ consumer's own `Engine` trait, the kernel has a feature flag to enable a default
5252
```toml
5353
# fewer dependencies, requires consumer to implement Engine trait.
5454
# allows consumers to implement their own in-memory format
55-
delta_kernel = "0.16.0"
55+
delta_kernel = "0.17.0"
5656

5757
# or turn on the default engine, based on latest arrow
58-
delta_kernel = { version = "0.16.0", features = ["default-engine", "arrow"] }
58+
delta_kernel = { version = "0.17.0", features = ["default-engine", "arrow"] }
5959
```
6060

6161
### Feature flags

ffi/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ url = "2"
2525
delta_kernel = { path = "../kernel", default-features = false, features = [
2626
"internal-api",
2727
] }
28-
delta_kernel_ffi_macros = { path = "../ffi-proc-macros", version = "0.16.0" }
28+
delta_kernel_ffi_macros = { path = "../ffi-proc-macros", version = "0.17.0" }
2929

3030
[build-dependencies]
3131
cbindgen = "0.29.2"

kernel/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ pre-release-hook = [
3939
]
4040

4141
[dependencies]
42-
delta_kernel_derive = { path = "../derive-macros", version = "0.16.0" }
42+
delta_kernel_derive = { path = "../derive-macros", version = "0.17.0" }
4343
bytes = "1.10"
4444
chrono = "0.4.41"
4545
crc = "3.2.2"

0 commit comments

Comments
 (0)