Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
635 commits
Select commit Hold shift + click to select a range
f995e3f
feat: support more cases for `snap.write_checksum` (#2853)
scottsand-db Jul 8, 2026
8bf28e1
docs: add incremental scan user-guide page (#2863)
DrakeLin Jul 8, 2026
20c4d1a
fix: tolerate stale column mapping annotations when disabled (#2886)
sanujbasu Jul 9, 2026
a2188d2
fix: rename IntoArray::into_array to avoid std name collision on Rust…
rliao147 Jul 9, 2026
2e1f36e
feat!: Add reader/writer features for AMT (#2871)
emkornfield Jul 9, 2026
e3603f2
feat: add checkpoint-shape resolution via PlanExecutor (#2779)
OussamaSaoudi Jul 10, 2026
7e7f8ac
feat!: Improve the column_name! macro and friends (#2891)
scovich Jul 10, 2026
e1739b4
feat: add generic REST/HTTP ObjectStore for the default engine (#2661)
chiinlquah Jul 13, 2026
fc3f2de
feat: add SQL predicate tokenizer for CHECK constraints (#2882)
wangm22 Jul 13, 2026
84e2c4a
docs: recommend TestTableBuilder for integration test setup (#2873)
DrakeLin Jul 13, 2026
ad86b1a
feat: expose if a snapshot is built as latest from intent level (#2905)
dengsh12 Jul 13, 2026
dd68e9f
feat!: support iceberg compat v3 with column defaults (#2846)
Jameson-Crate Jul 13, 2026
b14b4b8
chore: release v0.26.0 (#2921)
thinh2 Jul 14, 2026
0833777
feat: add predicate pushdown to incremental scan (#2860)
DrakeLin Jul 14, 2026
a460e58
feat: Add method to calculate base stats field IDs (#2923)
emkornfield Jul 14, 2026
07b2778
feat: strip newly-introduced column mapping metadata on none-mode wri…
sanujbasu Jul 15, 2026
3af0b08
feat!: support a fallback on PlanBasedEngine (#2924)
kyli87 Jul 15, 2026
ba3f9de
feat: add UC Delta-Tables API wire models and UpdateTableClient trait…
rliao147 Jul 15, 2026
b03af65
feat: send User-Agent header on UC Delta-Tables API requests (#2909)
rliao147 Jul 15, 2026
42717c1
feat: add UC OSS-server live integration test CI for get_config and l…
rliao147 Jul 16, 2026
2bddf72
feat!: read interval types in default engine (#2769)
rajayush143 Jul 16, 2026
0d1bebf
feat!: register intervalType reader-writer table feature (#2880)
rajayush143 Jul 16, 2026
e0faf1b
feat: expose several internal apis for connectors to do log cleanup (…
dengsh12 Jul 16, 2026
a614cfb
refactor: extract log_tail_from_commits helper in UC kernel client (#…
rliao147 Jul 17, 2026
a4f8e26
feat: add UC Delta-Tables credential-vending wire types and client me…
rliao147 Jul 17, 2026
beab39d
fix!: change PlanBasedEngine FFI to not free fallback engine (#2943)
kyli87 Jul 17, 2026
c591294
feat: add single-comparison parser for CHECK constraint predicates (#…
wangm22 Jul 19, 2026
29a43b1
feat: expose incremental scan via FFI (#2864)
DrakeLin Jul 20, 2026
f88ecc5
feat!: column defaults flag removal (#2922)
Jameson-Crate Jul 20, 2026
67e718a
feat!: re-introduce CRC caching (#2908)
scottsand-db Jul 20, 2026
c6cc57d
feat!: emit P&MLoad metric on every snapshot-load with a source label…
scottsand-db Jul 20, 2026
7a8eb0c
feat!: added write support with nullCount stats (#2845)
rajayush143 Jul 20, 2026
bae8ed0
fix: clarify schema JSON recursion limit errors (#2940)
dengsh12 Jul 20, 2026
3ba5d43
feat: add benchmark registry (#2918)
Jameson-Crate Jul 20, 2026
5700575
fix: bump parquet to 58.1 and preserve exact zero null counts (#2952)
DrakeLin Jul 20, 2026
c6328eb
feat: add UC Delta-Tables create-table wire types and staging E2E tes…
rliao147 Jul 20, 2026
b677b14
feat: Declarative P&M query (#2874)
scovich Jul 21, 2026
be9a9b6
refactor: rename NullGuarded to Checkpoint data skipping creator (#2960)
DrakeLin Jul 21, 2026
d794da6
refactor: extract StatColumns and emit prefixes from the checkpoint c…
DrakeLin Jul 22, 2026
f3384a6
fix: stop tracing events from warning on metrics (#2799)
Jameson-Crate Jul 22, 2026
9f15138
feat!: add Cast expression node (#2962)
DrakeLin Jul 22, 2026
0cef488
feat!: add geometry and geography schema types (#2930)
thinh2 Jul 22, 2026
72d97de
feat: Add CDF file listing implementation for read time CDF (#2803)
Omar-Saleh Jul 22, 2026
3aaf823
fix: source checkpoint partition columns from physical schema (#2976)
DrakeLin Jul 22, 2026
675ee48
fix!: interval table feature cleanup (#2959)
rajayush143 Jul 23, 2026
03e2537
refactor: expose treemap to bool functions from internal api (#2986)
hntd187 Jul 23, 2026
c15d4e6
feat: Enhance ToSchema macro with additional field tags (#2932)
emkornfield Jul 23, 2026
8547538
perf: skip non-add checkpoint row groups during scans (#2991)
DrakeLin Jul 24, 2026
24390ba
feat(ffi): expose with_stats with_partition_values scan builder APIs …
kyli87 Jul 24, 2026
9f411b4
feat: enable checkpoint row group skipping for partition columns (#2978)
DrakeLin Jul 24, 2026
bdd5b5b
feat: Add base Structs for modelling AMT (#2933)
emkornfield Jul 24, 2026
cdbbd05
feat(ffi): expose snapshot file stats from CRC (#2977)
chiinlquah Jul 24, 2026
64a36ca
feat!: add cooperative cancellation to scan_metadata (#2937)
sanujbasu Jul 24, 2026
770b259
feat: use stale CRC in DomainMetadata queries (#2961)
scottsand-db Jul 24, 2026
65288d4
fix: make generic errors more specific in snapshot creation (#2987)
Jameson-Crate Jul 24, 2026
7fd9a24
feat: Add checkpoint structure/schema for adaptive metadata tree. (#2…
emkornfield Jul 24, 2026
3a0cbb4
feat: validation for required addFile fields at commit time (#2856)
dengsh12 Jul 24, 2026
7f581f2
feat: add retry when data skipping before dedup fails (#2944)
dengsh12 Jul 24, 2026
75d66b3
fix!: reclassify MalformedJson error during schema parsing to Schema …
kyli87 Jul 24, 2026
28b245f
feat(ffi): expose snapshot_publish_with_committer for catalog-managed…
chiinlquah Jul 25, 2026
2403501
feat: enable reading tables with geospatial columns (#2931)
thinh2 Jul 25, 2026
0093ca8
feat!: label snapshot-load events as fresh vs incremental (#2916)
scottsand-db Jul 27, 2026
4aa6203
fix: normalize decimal scalar parsing failures to ParseError (#2954)
SAY-5 Jul 27, 2026
f5dcef0
perf: omit raw checkpoint stats when structured stats are compatible …
DrakeLin Jul 27, 2026
619bc52
fix: accept `timestampWithoutTimezone` feature alias for legacy table…
BoazC-MSFT Jul 27, 2026
4f0a13a
feat!: scalars and partition values (#2854)
rajayush143 Jul 27, 2026
e46f68f
feat!: add interval support to FFI visitors (#2903)
rajayush143 Jul 27, 2026
81355d4
feat!: push checkpoint partition casts to parquet handlers (#2983)
DrakeLin Jul 28, 2026
c85608d
fix: include offending feature in InvalidProtocol feature-validation …
sanujbasu Jul 28, 2026
9844985
feat: add declarative metadata scan plan (#2887)
scovich Jul 28, 2026
adf73f1
feat: expose parquet stats collection (#3022)
DrakeLin Jul 29, 2026
1288af2
docs: document plan expression semantics for executor authors (#3017)
scottsand-db Jul 29, 2026
5b75854
fix: three plan/executor improvements (#3029)
scottsand-db Jul 29, 2026
776d4ed
feat!: migrate UC integration to Delta Tables LoadTable and UpdateTab…
rliao147 Jul 30, 2026
3adc58d
feat(ffi): Expose declarative metadata scan plan (#3023)
kyli87 Jul 30, 2026
6563c71
feat!: create Unity Catalog managed tables via the Delta Tables API (…
rliao147 Jul 30, 2026
3b3d688
fix: correctly generate `extendedFileMetadata` for removeFile (#3006)
dengsh12 Jul 30, 2026
ca8b206
refactor: consolidate test engine wrappers behind DelegatingEngine (#…
scottsand-db Jul 30, 2026
bfa69d0
ci: split no-declarative-plans tests into a parallel job (#3038)
scottsand-db Jul 30, 2026
469b22e
feat: SetTxn queries: fix retention bug, root in CRC (#3001)
scottsand-db Jul 31, 2026
8ed72c9
chore: scaffold datafusion-executor crate (#2928)
aaronlinear Jul 31, 2026
8f0c3c5
feat(ffi): track peak native memory via optional tracking allocator (…
chiinlquah Jul 31, 2026
d8dfa2f
feat: add DataFusionExecutor struct (#2929)
aaronlinear Jul 31, 2026
bdcb019
feat: kernel to datafusion scalar conversion (#2957)
aaronlinear Aug 1, 2026
322f09d
feat!: validate add file partition columns (#2939)
dengsh12 Aug 1, 2026
ab38344
feat: add UC Delta-Tables reportMetrics wire types and client method …
rliao147 Aug 1, 2026
fb30159
feat: add FileStatsAccumulator to merge per-row-group stats (#3010)
arnav-databricks Aug 1, 2026
73dfcde
feat!: respect scan metadata output options in declarative plans (#3015)
OussamaSaoudi Aug 3, 2026
90422f0
refactor: extract unit test utils from `kernel/src/utils.rs` (#3018)
dengsh12 Aug 3, 2026
a178327
feat!: add column defaults ack method (#3036)
Jameson-Crate Aug 3, 2026
24aec0a
feat: expression conversion (#2958)
aaronlinear Aug 4, 2026
5f32a2a
fix: dv update respect shorten selection vector (#3051)
dengsh12 Aug 4, 2026
8177af9
feat!: tag UC client User Agent and rename unity-catalog-delta-rest-c…
rliao147 Aug 4, 2026
bf11f2f
feat: add create_staging_table and create_table to UCClient (#3034)
rliao147 Aug 4, 2026
dc3677a
feat!(ffi): expose clustering column infos read path (#2573)
chiinlquah Aug 4, 2026
eca870c
fix!: deterministically select among complete checkpoints at one vers…
sanujbasu Aug 5, 2026
063c1fd
fix!: remove `interval-type-in-dev` feature flag (#3041)
rajayush143 Aug 5, 2026
51ce398
fix: truncate timestamp stats to milliseconds in JSON encoding (#3073)
rliao147 Aug 7, 2026
efcee2b
docs: add crate metadata and READMEs for the UC crates (#3061)
rliao147 Aug 7, 2026
ebff0dc
chore: version the UC crates independently at 0.1.0 (#3062)
rliao147 Aug 7, 2026
47da584
feat: Utilities for converting between AMT and Delta DV structs (#3021)
emkornfield Aug 7, 2026
014f341
feat: Define and use Predicate TRUE/FALSE/NULL constants (#3065)
scovich Aug 7, 2026
d1f7f52
feat: make the PlanBasedEngine fallback optional (#3069)
chiinlquah Aug 8, 2026
d0215b7
fix: dv resolution when multiple batches are produced (#3077)
hntd187 Aug 10, 2026
de609db
feat!: gate vendored protoc behind its own feature (#3054)
scottsand-db Aug 10, 2026
4dfd13a
docs: explain why timestamp stats are floored, not rounded or ceiled …
rliao147 Aug 10, 2026
fb8e997
feat!: rename Load to DynamicScan and require file metadata (#3024)
OussamaSaoudi Aug 10, 2026
5fcc122
perf: speed up the Miri CI job and widen its coverage (#3035)
scottsand-db Aug 10, 2026
feab5df
refactor: Move plan construction to `Scan` (#3039)
OussamaSaoudi Aug 10, 2026
5cde0ce
fix: block dataChange removeFile for appendOnly tables (#3042)
dengsh12 Aug 10, 2026
64fe8e9
feat!: preserve typed schema-field metadata across FFI (#3086)
chiinlquah Aug 11, 2026
c3e8f42
feat!: Refine agg definitions and sync engine impl (#3081)
scovich Aug 11, 2026
44a454d
docs: explain why kernel fails on a dangling _last_checkpoint hint (#…
thinh2 Aug 11, 2026
3d9fbf1
refactor!: Make the col! macro a preferred alias of column_expr! (#3071)
scovich Aug 11, 2026
dc5ec4e
feat!: 3-arg Min/MaxNotNullBy (#3082)
scovich Aug 11, 2026
e5f227b
chore: Use col! instead of column_expr! (#3074)
scovich Aug 11, 2026
1122a73
feat!: Define and implement SUM/COUNT aggregates (#3083)
scovich Aug 11, 2026
c4c0307
fix: remove version from kernel in datafusion executor (#3108)
aaronlinear Aug 13, 2026
3e7b2c9
feat: initial predicate conversion (#2971)
aaronlinear Aug 13, 2026
41ee7dc
fix: logical comparison for NULL instead of physical comparison (#3085)
aaronlinear Aug 13, 2026
acc0b93
fix: read tables with orphaned columnMapping reader feature (#3097)
sanujbasu Aug 13, 2026
dad0a1e
feat: typed Struct and StructPatch expression conversion (#2972)
aaronlinear Aug 13, 2026
5c1369b
test: strengthen scan metadata struct columns coverage (#3053)
DrakeLin Aug 13, 2026
bade178
feat: convert MapToStruct expressions to DataFusion (#2996)
aaronlinear Aug 13, 2026
cd2ca4e
feat: lower ParseJson to a kernel-delegating scalar UDF (#3056)
aaronlinear Aug 13, 2026
0950f13
feat: validate required fields for dv update (#3026)
dengsh12 Aug 13, 2026
b8f31c3
fix: supurious delta acceptance failure due to network conn issues (#…
jtuglu1 Aug 13, 2026
83c52e2
feat!: Derive macro for converting POD structs to Scalar::Struct (#3095)
scovich Aug 13, 2026
a8b6e8c
chore: release v0.27.0 (#3107)
chiinlquah Aug 13, 2026
96bf8d8
feat!: Add derive macro for populating a struct from a Scalar (#3101)
scovich Aug 13, 2026
0aefffb
chore: Use col and col_name macros everywhere they make sense (#3121)
scovich Aug 13, 2026
7f4b02c
fix: import CollectInto from crate::utils to fix default-feature buil…
chiinlquah Aug 14, 2026
728aeb9
chore: release v0.27.1 (#3125)
chiinlquah Aug 14, 2026
be53df8
ci: isolate kernel no-default-features check (#3124)
chiinlquah Aug 14, 2026
3a60e9b
feat!: Add ability to visit lists of structs (#3072)
emkornfield Aug 14, 2026
f33a2d8
docs: correct stale CLAUDE.md and related docs (#3126)
scottsand-db Aug 14, 2026
cc7e83c
refactor!: Simpler parquet masking (#2879)
scovich Aug 14, 2026
0ff2c43
fix: allow incremental CRC replay for streaming updates (#3132)
DrakeLin Aug 14, 2026
18fafc4
fix!: report exact JSON write sizes (#3063)
longvu-db Aug 14, 2026
b37cd9e
refactor!: Use lit, define and use null_lit, remove redundant helpers…
scovich Aug 14, 2026
1af2529
feat: validate required fields for `removeFile` (#2974)
dengsh12 Aug 14, 2026
df75c4c
refactor: use schema macros for declarative schemas (#3127)
scottsand-db Aug 16, 2026
6d3f8e0
fix: silence no-default internal dead-code warnings (#3140)
chiinlquah Aug 17, 2026
6d42983
feat!: emit geometry/geography over the FFI schema visitor (#3113)
thinh2 Aug 17, 2026
87134da
feat!: pass column field parts as a structured array over the FFI (#3…
thinh2 Aug 17, 2026
a61ed06
fix: block dv + addFile + dataChange txn when cdf enabled (#3068)
dengsh12 Aug 17, 2026
470c61a
refactor: use explicit StructField nullability constructors (#3139)
scottsand-db Aug 17, 2026
348864a
feat: expose FileStats histogram over FFI (#3115)
jtuglu1 Aug 17, 2026
1ae6dbc
ci: clean up no-default check aliases (#3141)
chiinlquah Aug 18, 2026
c37e91d
refactor(test): add TableConfigBuilder to simplify unit test boilerpl…
jtuglu1 Aug 18, 2026
aa61d0e
feat: allow delta.checkpointPolicy in CREATE TABLE (#3145)
rliao147 Aug 18, 2026
4e31fe2
docs: update alter table column mapping docs (#3148)
chiinlquah Aug 19, 2026
bf2c5b3
feat!: add imperative distributed writes (#3089)
Jameson-Crate Aug 19, 2026
6699a25
fix: check read/write support before writing checkpoint/checksum (#3138)
dengsh12 Aug 19, 2026
fc2a809
feat: re-export UC wire models from unity-catalog-delta-rest-client (…
rliao147 Aug 19, 2026
7a2722b
docs: share agent instructions across tools (#3137)
scottsand-db Aug 19, 2026
ecb424a
feat!: make CancellationToken downcastable to recover the caller's to…
sanujbasu Aug 20, 2026
25e5c47
feat: Allow round tripping checkpoint actions (#3093)
emkornfield Aug 20, 2026
d265e8f
chore: fix new warnings from clippy upgrade (#3164)
emkornfield Aug 20, 2026
ebc6c0c
fix: omit recursive for REST offset listings (#3161)
chiinlquah Aug 20, 2026
10bc168
feat!: Add AMT stats schema generation (#3091)
emkornfield Aug 20, 2026
2f73bef
perf!: reduce write-path allocation churn (#3166)
scottsand-db Aug 21, 2026
5a9abef
fix: allow nullable commit info operation parameters (#3168)
chiinlquah Aug 21, 2026
12def00
docs: cross-cloud testing for engine changes (#3172)
dengsh12 Aug 21, 2026
b14c3fb
feat!: fix ScanMetrics parity with java kernel (#3169)
jtuglu1 Aug 21, 2026
bda554d
feat: allow create table with variant/variantShredding feature (#3177)
thinh2 Aug 24, 2026
7c4f4ca
refactor!: remove write context apis on transaction (#3151)
Jameson-Crate Aug 24, 2026
94a0e83
docs: document connector-native plan results (#3182)
scottsand-db Aug 24, 2026
d7e4754
fix!: preserve outer-list nullability on column reorder (#3170)
amogh-jahagirdar Aug 24, 2026
62de544
ci!: prototype AI PR review workflow (#3096)
chiinlquah Aug 25, 2026
d628b23
feat: add cancellation-aware StorageHandler list and read (#3156)
sanujbasu Aug 25, 2026
512e19e
ci: prevent semver tool failures from adding breaking-change labels (…
scottsand-db Aug 25, 2026
1b1044a
refactor: remove cm witness in create table (#3180)
dengsh12 Aug 25, 2026
4a1cfc4
feat: introduce plan and scalar + filter operator conversion (#3079)
aaronlinear Aug 25, 2026
6483183
ci: install AI reviewer CLIs (#3187)
chiinlquah Aug 25, 2026
8bade52
fix!: expose commit info operation metrics (#3190)
chiinlquah Aug 26, 2026
b3e392c
feat!: lower project operator (#3094)
aaronlinear Aug 26, 2026
35f1e26
feat!: implement aggregator operator (#3102)
aaronlinear Aug 26, 2026
34c58a1
feat!: support type-widening writes (#3183)
chiinlquah Aug 27, 2026
44d332e
feat(ffi): expose column defaults over the FFI read path (#3175)
thinh2 Aug 27, 2026
3caa0cb
feat: lower semijoin and unionall (#3114)
aaronlinear Aug 27, 2026
e59d887
fix!: relax commit action projection nullability (#3191)
chiinlquah Aug 27, 2026
66f61d2
feat!(checkpoint): surface protocol and metadata in manifest commit c…
amogh-jahagirdar Aug 28, 2026
f76b40b
ci: review PR head checkout (#3194)
chiinlquah Aug 28, 2026
07a46e9
feat: expose commit protocol metadata (#3201)
arnav-databricks Aug 28, 2026
b69ebcf
fix: avoid tokio blocking pool handoff deadlock (#3202)
chiinlquah Aug 29, 2026
7316cb6
chore: apply current nightly rustfmt (#3218)
chiinlquah Aug 31, 2026
2677b7c
ci: route AI review models through gateway (#3208)
chiinlquah Aug 31, 2026
b77d651
chore: release/0.28.0 (#3200)
Jameson-Crate Aug 31, 2026
7b15e7f
fix: validate deletion vector visitor inputs (#3205)
chiinlquah Sep 1, 2026
d36f7b8
fix: preserve scan file modification time (#3206)
chiinlquah Sep 1, 2026
b9f1ae2
fix: omit the dv column when scanning v2 checkpoint sidecars (#3217)
rliao147 Sep 1, 2026
2fe7daf
ci: fix AI review gateway endpoints (#3220)
chiinlquah Sep 1, 2026
7e94e33
fix: decode storage read paths once (#3204)
chiinlquah Sep 1, 2026
ea96500
ci: support automatic AI review for forks (#3228)
chiinlquah Sep 1, 2026
ddbedef
feat: optimize checkpoint shape resolution using sidecarSchema tag (#…
kyli87 Sep 2, 2026
2f8b8cd
ci: bind AI reviewer dispatches to PR context (#3237)
chiinlquah Sep 2, 2026
307bc8b
test: remove racy allocator assertion (#3244)
chiinlquah Sep 2, 2026
e56f511
feat: support reading stable row commit version (#3224)
dengsh12 Sep 2, 2026
9230808
feat!: introduce writectx builder (#3226)
dengsh12 Sep 2, 2026
2298d45
refactor: Eliminate the CommitReader class (#3238)
scovich Sep 3, 2026
07b28d5
ci: prototype inline AI review comments (#3245)
chiinlquah Sep 3, 2026
da2bc5e
feat!: Add ability to project AMT schema (#3171)
emkornfield Sep 3, 2026
d859701
chore!: Use DeltaResultIterator[Static] type alias (#3241)
scovich Sep 3, 2026
ae7d40d
ci: fix inline AI review startup (#3255)
chiinlquah Sep 3, 2026
04c1732
ci: validate AI review source before runtime rewrite (#3256)
chiinlquah Sep 3, 2026
f34526a
feat!: let scans request stats for columns beyond dataSkippingNumInde…
sanujbasu Sep 3, 2026
45cb88d
docs: clarify MapToStruct contract (#3231)
kyli87 Sep 3, 2026
9d6ec28
docs: add todo in code for issues (#3242)
dengsh12 Sep 4, 2026
21e06fc
ci: clarify AI review finding IDs (#3258)
chiinlquah Sep 4, 2026
c55ba15
feat!: add row tracking metadata cols into writecontext (#3229)
dengsh12 Sep 4, 2026
987f331
refactor: tighten unity-catalog-delta-rest-client public surface (#3264)
rliao147 Sep 4, 2026
4724eef
feat!: add row tracking metadata ackowledgement (#3252)
dengsh12 Sep 4, 2026
6d65a8a
fix: fix dv descriptor map insert potential FFI pointer leak (#3265)
jtuglu1 Sep 5, 2026
0eeb2a6
feat!: schema evolution API and nested add-column paths (#3103)
raulandrei00 Sep 7, 2026
7fff24b
chore: git-ignore editor backup files with names like #foo.rs# (#3270)
scovich Sep 8, 2026
1091824
refactor: SnapshotBuilder::build should use ? instead of and_then cha…
scovich Sep 8, 2026
0629215
fix: use platform c_char in FFI test (#3277)
jtuglu1 Sep 8, 2026
cf9514f
ci: test workspace on ubuntu arm64 (#3276)
jtuglu1 Sep 8, 2026
51046b7
feat(ffi): add create-table domain metadata setter (#3267)
chiinlquah Sep 8, 2026
3f070d0
feat(ffi): add row-tracking high-water-mark setter (#3266)
chiinlquah Sep 8, 2026
6dd5a96
fix: tolerate negative file sizes in CRC replay (#3259)
DrakeLin Sep 8, 2026
d634b50
feat: add void schema field visitor (#3275)
thinh2 Sep 9, 2026
570861e
refactor!: reclassify generic log segment errors (#3195)
Jameson-Crate Sep 9, 2026
bc2e86a
feat: add option to skip checkpoints during incremental snapshot upda…
scottsand-db Sep 9, 2026
b2bffee
feat!: emit row tracking preservation tag in commitInfo (#3268)
dengsh12 Sep 9, 2026
14d6d8c
ci: default automatic AI reviews to inline (#3262)
chiinlquah Sep 9, 2026
0094976
feat!: add SnapshotHint builder support (#3222)
jtuglu1 Sep 10, 2026
c9490a1
refactor!: Overhaul EvaluationHandler::create_xxx methods (#3285)
scovich Sep 10, 2026
9b25e81
fix: harden multipart checkpoint validation (#3298)
jtuglu1 Sep 10, 2026
b3ce999
chore: Remove MODIFIED status (#3303)
Fokko Sep 11, 2026
ae50258
chore: Make `location` and `file_size_in_bytes` required (#3304)
Fokko Sep 11, 2026
0aeadfb
ci: ignore issue-tracked review findings (#3299)
chiinlquah Sep 11, 2026
e315ecf
fix: cast widened array elements during parquet reads (#3261)
DrakeLin Sep 11, 2026
048ffbe
refactor: use Markdown reviewer prompts (#3305)
chiinlquah Sep 11, 2026
3fc6dbf
feat!: expose SnapshotHint through FFI (#3284)
jtuglu1 Sep 12, 2026
09b93f4
docs: doc the requirement for ParquetHandler to do type widening (#3313)
dengsh12 Sep 14, 2026
9496753
feat: add frame reporting support to metrics layers (#3306)
kyli87 Sep 14, 2026
94d0561
fix: harden the release workflow (#3283)
DrakeLin Sep 14, 2026
6f8e749
feat!: validate default evaluator input schemas at top level (#3274)
dengsh12 Sep 14, 2026
03c39a6
feat: annotate call sites with frame graph tracing events (#3327)
kyli87 Sep 14, 2026
6b2a166
perf!: make log listing single-directory
DrakeLin Sep 14, 2026
b99e516
fix: preserve shallow cloud listing
DrakeLin Sep 14, 2026
dde0f89
test: cover paginated cloud continuation
DrakeLin Sep 14, 2026
333c14d
test: cover recursive listing compatibility
DrakeLin Sep 15, 2026
39d3d06
fix: make listing order guarantees explicit
DrakeLin Sep 28, 2026
722a75b
perf: prototype bounded log listing
DrakeLin Sep 28, 2026
6fb85a1
f
damn-am-star Oct 10, 2026
56e317d
f
damn-am-star Oct 10, 2026
a7a142e
g
damn-am-star Oct 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
48 changes: 48 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
[alias]
clippy-no-default-kernel-dependents = [
"clippy",
"--unlocked",
"--vmwareworkspaceone",
"--no-default-features",
"--exclude",
"delta_kernel",
"--exclude",
"delta_kernel_ffi",
"--exclude",
"delta_kernel_derive",
"--exclude",
"delta_kernel_ffi_macros",
"--",
"-D",
"war",
]
check-no-default-kernel = [
"check",
"--locked",
"--no-default-features",
"--package",
"delta_kernel",
]
check-no-default-engine = [
"check",
"--locked",
"--no-default-features",
"--package",
"delta_kernel_default_engine",
"--features",
"arrow",
]
clippy-no-default-kernel-leaves = [
"clippy",
"--locked",
"--no-default-features",
"--package",
"delta_kernel_ffi",
"--package",
"delta_kernel_derive",
"--package",
"delta_kernel_ffi_macros",
"--",
"-D",
"warnings",
]
77 changes: 77 additions & 0 deletions .github/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# .github/CLAUDE.md

Workflow-authoring rules for GitHub Actions.

## Triggers: restrict `push` to long-lived branches

The CI trigger events:

- `pull_request`: a commit is pushed to a branch with an open PR. Runs CI on the
PR.
- `merge_group`: the merge queue builds a temporary `gh-readonly-queue/*` branch
and tests the change as it would land on `main`.
- `push`: a branch ref is updated. We only want this for the long-lived branches
(`main` and `release/**`), i.e. the post-merge run once a PR lands.

We want CI on `pull_request`, on `merge_group`, and on `push` to a long-lived
branch: one run per stage. A bare `push` trigger instead duplicates two of these:

- `push` + `pull_request`: a branch pushed directly to this repo (a maintainer
branch, not a fork) fires both. Fork PRs avoid this because the `push` lands on
the fork, not on this repo.
- `push` + `merge_group`: the merge queue's push to the `gh-readonly-queue/*`
branch fires both.

Restricting `push` to long-lived branches drops the redundant `push` in each
case:

```yaml
on:
push:
branches: [main, "release/**"]
pull_request:
merge_group:
```

## Never `paths`/`paths-ignore` a workflow whose jobs are required checks

Do NOT add `paths` or `paths-ignore` filters to a workflow whose jobs are required
status checks (most of `build.yml`). When a path filter skips the whole workflow,
the required checks never report, and the PR stays blocked on "Expected, waiting
for status" indefinitely. A skipped workflow is not the same as a passing one.

## Supply chain security: `--locked`

Every `cargo` command in CI that resolves dependencies MUST use `--locked` to
enforce the committed `Cargo.lock`. This prevents CI from silently picking up a
newer (potentially compromised) transitive dependency. If `Cargo.lock` is out of
sync with `Cargo.toml`, the build fails immediately, forcing dependency changes to
be explicit and reviewable. See the top-level comment in `build.yml` for full
rationale. Commands exempt from `--locked`: `cargo +nightly fmt` (no dep
resolution), `cargo msrv verify/show` (wrapper tool), `cargo miri setup` (tooling
setup).

## Action safety

When writing any github action, consider safety including mitigating common attack
vectors such as expression injection and pull request target attacks.

```yaml
# The code below is vulnerable to expression injection
run: |
echo "Comment: ${{ github.event.comment.body }}"

# To mitigate instead use environment variables
env:
COMMENT_BODY: ${{ github.event.comment.body }}
run: |
echo "Comment: $COMMENT_BODY"
```

## Release tooling checks

The `release-tooling` job in `build.yml` fetches full history and tags because release branches
verify the pending changelog against every PR since the previous Kernel release. Keep
`fetch-depth: 0` on that checkout. The regression tests run on every pull request, while live
verification is restricted to branches whose names start with `release/`; otherwise the window
between merging a release PR and pushing its tag could block unrelated pull requests.
61 changes: 61 additions & 0 deletions .github/SECURITY_MODEL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Benchmark workflow security model

Scope: [`benchmark.yml`](workflows/benchmark.yml) (runs bench on the PR merge
commit -- PR head merged into base) and
[`benchmark-post-comment.yml`](workflows/benchmark-post-comment.yml) (posts the
result comment in base-branch context). Other workflows in this repo may follow
different patterns -- this document is specific to the benchmark pair.

## Running untrusted PR code

The `run-benchmark` job in `benchmark.yml` checks out the PR merge commit (PR
head merged into base) and runs its build + bench harness. To bound what that
code can do:

- Workflow-level `permissions: {}` is the default; each job opts in to the
minimum scope it needs. `run-benchmark` declares only `contents: read`,
so any leaked GITHUB_TOKEN has no write power. Fork PRs additionally get
a read-only token from GitHub by default under the `pull_request` event.
- `actions/checkout` uses `persist-credentials: false` so the token isn't
left in the local git config after checkout.
- `cargo install critcmp` runs *before* the PR merge-commit checkout, so the
PR's `.cargo/config.toml` cannot redirect the registry for that install.

Do not add other secrets or grant write permissions to `run-benchmark`.

## Rust-cache poisoning

`Swatinem/rust-cache` is configured with
`save-if: github.event_name == 'push' && github.ref == 'refs/heads/main'`.
PR runs read-restore from main's cache; they never save. The
`github.event_name == 'push'` clause is the load-bearing half -- the
benchmark workflow has no `push` trigger outside of `push: main` for the
cache-warming job, so PR runs cannot match this condition and therefore
cannot write the cache.

Do not relax the `github.event_name == 'push'` clause. If you do, a PR-head
run can land compile artifacts in main's cache scope (poisoning subsequent
runs) or evict main's entries through the shared cache budget.

## Cross-PR comment forgery

`benchmark-post-comment.yml` runs in base-branch context with
`pull-requests: write`. It must derive the target PR number from a source
the fork cannot forge. The choice depends on which event triggered the
upstream bench workflow:

- **`pull_request` upstream:** use `gh pr view --repo "$REPO" "owner:branch"`,
where `owner:branch` is built from `workflow_run.head_repository.owner.login`
and `workflow_run.head_branch`. Both fields are populated by GitHub from the
trusted workflow_run event payload, not from anything the fork wrote.
- **`issue_comment` upstream:** trust the `bench-pr-number` artifact. For
`issue_comment` events GitHub serves `benchmark.yml` from the default
branch (not the PR head), so the "Stash PR number" + "Upload PR number"
steps run trusted code. The upload happens *before* `actions/checkout`
brings PR code onto the runner, so once the artifact is on GitHub's
storage it is immutable for the rest of the run -- the bench script
cannot alter it, and `contents: read` denies any API-level mutation.

`workflow_run` itself runs the post-comment workflow from the default
branch (a GitHub guarantee), so a fork PR cannot modify the resolver to
trust the wrong source.
101 changes: 101 additions & 0 deletions .github/actions/install-and-cache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# This is copied from https://github.com/tecolicom/actions-install-and-cache
# which is Copyright 2022 Office TECOLI, LLC

name: install-and-cache generic backend
description: 'GitHub Action to run installer and cache the result'
branding:
color: orange
icon: type

inputs:
run: { required: true, type: string }
path: { required: true, type: string }
cache: { required: false, type: string, default: yes }
key: { required: false, type: string }
sudo: { required: false, type: string }
verbose: { required: false, type: string, default: false }

outputs:
cache-hit:
value: ${{ steps.cache.outputs.cache-hit }}

runs:
using: composite
steps:

- id: setup
shell: bash
run: |
: setup install-and-cache
define() { IFS='\n' read -r -d '' ${1} || true ; }
define script <<'EOS_cad8_c24e_'
${{ inputs.run }}
EOS_cad8_c24e_
directory="${{ inputs.path }}"
given_key="${{ inputs.key }}"
archive= key=
case "${{ inputs.cache }}" in
yes|workflow)
cache="${{ inputs.cache }}"
uname -mrs
hash=$( (uname -mrs ; cat <<< "$script" ; echo $directory) | \
(md5sum||md5) | awk '{print $1}' )
key="${hash}${given_key:+-$given_key}"
[ "$cache" == 'workflow' ] && \
key+="-${{ github.run_id }}-${{ github.run_attempt }}"
archive=$HOME/archive-$hash.tz
;;
*)
cache=no
;;
esac
# use "--recursive-unlink" option if GNU tar is found
if tar --version | grep GNU > /dev/null
then
tar="tar --recursive-unlink"
elif gtar --version | grep GNU > /dev/null
then
tar="gtar --recursive-unlink"
else
tar=tar
fi
sed 's/^ *//' << END >> $GITHUB_OUTPUT
cache=$cache
archive=$archive
key=$key
tar=$tar
END

- id: cache
if: steps.setup.outputs.cache != 'no'
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.setup.outputs.archive }}
key: ${{ steps.setup.outputs.key }}

- id: extract
if: steps.setup.outputs.cache != 'no' && steps.cache.outputs.cache-hit == 'true'
shell: bash
run: |
: extract
archive="${{ steps.setup.outputs.archive }}"
verbose="${{ inputs.verbose }}"
tar="${{ steps.setup.outputs.tar }}"
ls -l $archive
if [ -s $archive ]
then
opt=-Pxz
[[ $verbose == yes || $verbose == true ]] && opt+=v
sudo $tar -C / $opt -f $archive
else
echo "$archive is empty"
fi

- id: install-and-archive
if: steps.cache.outputs.cache-hit != 'true'
uses: tecolicom/actions-install-and-archive@9d5afb27f9900f2df47fe40de58fbd837032bddf # v1.3
with:
run: ${{ inputs.run }}
archive: ${{ steps.setup.outputs.archive }}
path: ${{ inputs.path }}
sudo: ${{ inputs.sudo }}
47 changes: 47 additions & 0 deletions .github/actions/use-homebrew-tools/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# This is copied from https://github.com/tecolicom/actions-use-homebrew-tools/
# which is Copyright 2022 Office TECOLI, LLC

name: install-and-cache homebrew tools
description: 'GitHub Action to install and cache homebrew tools'
branding:
color: orange
icon: type

inputs:
tools: { required: false, type: string }
key: { required: false, type: string }
path: { required: false, type: string }
cache: { required: false, type: string, default: yes }
verbose: { required: false, type: boolean, default: false }

outputs:
cache-hit:
value: ${{ steps.update.outputs.cache-hit }}

runs:
using: composite
steps:

- id: setup
shell: bash
run: |
: setup use-homebrew-tools
given_key="${{ inputs.key }}"
brew_version="$(brew --version)"
echo "$brew_version"
version_key="$( echo "$brew_version" | (md5sum||md5) | awk '{print $1}' )"
key="${given_key:+$given_key-}${version_key}"
sed 's/^ *//' << END >> $GITHUB_OUTPUT
command=brew install
prefix=$(brew --prefix)
key=$key
END

- id: update
uses: ./.github/actions/install-and-cache
with:
run: ${{ steps.setup.outputs.command }} ${{ inputs.tools }}
path: ${{ steps.setup.outputs.prefix }} ${{ inputs.path }}
key: ${{ steps.setup.outputs.key }}
cache: ${{ inputs.cache }}
verbose: ${{ inputs.verbose }}
Loading
Loading