Commit d9dd7af
authored
feat: Add RowDeltaAction for row-level deletes via delete files (#28)
Add a new RowDeltaAction transaction action that supports adding both
data files and delete files (equality and positional) in a single atomic
operation. This enables row-level deletes using Iceberg's merge-on-read
strategy.
Changes:
- Add RowDeltaAction in transaction/row_delta.rs with full test coverage
- Extend SnapshotProducer to support writing delete manifests alongside
data manifests
- Add Transaction::row_delta() method for creating row delta actions
- Operation is Delete when only delete files are added, Overwrite when
both data and delete files are added
- Validates format version >= 2 for delete files
- Fix pre-existing test compilation errors (missing limit field)1 parent 5bd72bc commit d9dd7af
5 files changed
Lines changed: 681 additions & 5 deletions
File tree
- crates/iceberg/src
- arrow
- transaction
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
940 | 940 | | |
941 | 941 | | |
942 | 942 | | |
| 943 | + | |
943 | 944 | | |
944 | 945 | | |
945 | 946 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2411 | 2411 | | |
2412 | 2412 | | |
2413 | 2413 | | |
| 2414 | + | |
2414 | 2415 | | |
2415 | 2416 | | |
2416 | 2417 | | |
| |||
2428 | 2429 | | |
2429 | 2430 | | |
2430 | 2431 | | |
| 2432 | + | |
2431 | 2433 | | |
2432 | 2434 | | |
2433 | 2435 | | |
| |||
2556 | 2558 | | |
2557 | 2559 | | |
2558 | 2560 | | |
| 2561 | + | |
2559 | 2562 | | |
2560 | 2563 | | |
2561 | 2564 | | |
| |||
2728 | 2731 | | |
2729 | 2732 | | |
2730 | 2733 | | |
| 2734 | + | |
2731 | 2735 | | |
2732 | 2736 | | |
2733 | 2737 | | |
| |||
2946 | 2950 | | |
2947 | 2951 | | |
2948 | 2952 | | |
| 2953 | + | |
2949 | 2954 | | |
2950 | 2955 | | |
2951 | 2956 | | |
| |||
3157 | 3162 | | |
3158 | 3163 | | |
3159 | 3164 | | |
| 3165 | + | |
3160 | 3166 | | |
3161 | 3167 | | |
3162 | 3168 | | |
| |||
3261 | 3267 | | |
3262 | 3268 | | |
3263 | 3269 | | |
| 3270 | + | |
3264 | 3271 | | |
3265 | 3272 | | |
3266 | 3273 | | |
| |||
3359 | 3366 | | |
3360 | 3367 | | |
3361 | 3368 | | |
| 3369 | + | |
3362 | 3370 | | |
3363 | 3371 | | |
3364 | 3372 | | |
| |||
3446 | 3454 | | |
3447 | 3455 | | |
3448 | 3456 | | |
| 3457 | + | |
3449 | 3458 | | |
3450 | 3459 | | |
3451 | 3460 | | |
| |||
3547 | 3556 | | |
3548 | 3557 | | |
3549 | 3558 | | |
| 3559 | + | |
3550 | 3560 | | |
3551 | 3561 | | |
3552 | 3562 | | |
| |||
3677 | 3687 | | |
3678 | 3688 | | |
3679 | 3689 | | |
| 3690 | + | |
3680 | 3691 | | |
3681 | 3692 | | |
3682 | 3693 | | |
| |||
3774 | 3785 | | |
3775 | 3786 | | |
3776 | 3787 | | |
| 3788 | + | |
3777 | 3789 | | |
3778 | 3790 | | |
3779 | 3791 | | |
| |||
3884 | 3896 | | |
3885 | 3897 | | |
3886 | 3898 | | |
| 3899 | + | |
3887 | 3900 | | |
3888 | 3901 | | |
3889 | 3902 | | |
| |||
4024 | 4037 | | |
4025 | 4038 | | |
4026 | 4039 | | |
| 4040 | + | |
4027 | 4041 | | |
4028 | 4042 | | |
4029 | 4043 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| |||
71 | 72 | | |
72 | 73 | | |
73 | 74 | | |
| 75 | + | |
74 | 76 | | |
75 | 77 | | |
76 | 78 | | |
| |||
141 | 143 | | |
142 | 144 | | |
143 | 145 | | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
144 | 151 | | |
145 | 152 | | |
146 | 153 | | |
| |||
0 commit comments