Commit 10dd91a
feat: add native Delta Lake scan via delta-kernel-rs
Add native Delta Lake read support to Comet using delta-kernel-rs for
log replay, matching the existing Iceberg native scan path.
Core implementation:
- delta-kernel-rs 0.19 for log replay (arrow-57 isolated from Comet's arrow-58)
- JNI entry point: Native.planDeltaScan() calls kernel on the driver
- DeltaScanCommon/DeltaScan/DeltaScanTask protobuf messages
- CometScanRule: detect DeltaParquetFileFormat, stripDeltaDvWrappers
- CometDeltaNativeScan: serde with partition pruning, predicate pushdown
- CometDeltaNativeScanExec: split-mode serialization, DPP, metrics
- DeltaPlanDataInjector: LRU-cached split-mode injection
- Rust planner: DeltaScan match arm with ColumnMappingFilterRewriter
- DeltaDvFilterExec: per-batch deletion vector row masking
- DeltaReflection: class-name detection (no spark-delta compile dep)
- CometDeltaDvConfigRule: auto-configure useMetadataRowIndex=false
Supports: partitioned/unpartitioned tables, schema evolution, time travel,
column mapping (none/id/name), deletion vectors, stats-based file pruning,
data filter pushdown, DPP, complex types, cloud storage (S3/Azure/GCS),
protocol feature gating with graceful fallback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 88c1ffc commit 10dd91a
27 files changed
Lines changed: 3818 additions & 164 deletions
File tree
- common/src/main/scala/org/apache/comet
- native
- core
- src
- delta
- execution
- operators
- planner
- proto/src/proto
- spark
- src/main/scala/org/apache
- comet
- delta
- rules
- serde/operator
- spark/sql/comet
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| 119 | + | |
119 | 120 | | |
120 | 121 | | |
121 | 122 | | |
| |||
153 | 154 | | |
154 | 155 | | |
155 | 156 | | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
156 | 189 | | |
157 | 190 | | |
158 | 191 | | |
| |||
0 commit comments