Skip to content

Commit b52285b

Browse files
authored
feat: update delta_kernel to version 0.18.2 and refactor DeltaTable engine initialization (spiceai#9528)
1 parent 18c15bc commit b52285b

5 files changed

Lines changed: 11 additions & 19 deletions

File tree

Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ datafusion-proto = { version = "51.0.0", features = ["json"] }
164164
datafusion-pruning = "51.0.0"
165165
datafusion-spark = "51.0.0"
166166
datafusion-table-providers = "0.1.0" # Placeholder version; actual crate is provided via [patch.crates-io] from spiceai fork with DF51 support
167-
delta_kernel = { version = "0.17.0", features = [
167+
delta_kernel = { version = "0.18.2", features = [
168168
"default-engine-rustls",
169169
"arrow-57",
170170
"internal-api",
@@ -373,7 +373,7 @@ datafusion-table-providers = { git = "https://github.com/datafusion-contrib/data
373373
ballista-core = { git = "https://github.com/spiceai/datafusion-ballista.git", rev = "9298d4410b3cfde5639aa3d7bea8777942741573" } # spiceai-51
374374
ballista-executor = { git = "https://github.com/spiceai/datafusion-ballista.git", rev = "9298d4410b3cfde5639aa3d7bea8777942741573" } # spiceai-51
375375
ballista-scheduler = { git = "https://github.com/spiceai/datafusion-ballista.git", rev = "9298d4410b3cfde5639aa3d7bea8777942741573" } # spiceai-51
376-
delta_kernel = { git = "https://github.com/spiceai/delta-kernel-rs.git", rev = "4ce55c37be6f394675457545e806c503c813b34e" } # spiceai-0.17.0
376+
delta_kernel = { git = "https://github.com/spiceai/delta-kernel-rs.git", rev = "9d26fb3662d2edb8f382d4d0f7899c303549f0d0" } # spiceai-0.18.2
377377

378378
# Patch duckdb for direct dependencies and spiceai_duckdb_fork for datafusion-table-providers
379379
duckdb = { git = "https://github.com/spiceai/duckdb-rs.git", rev = "f4096c7592ed46b9e68755a49252d69783dece96" } # spiceai-1.4.4

crates/data_components/src/delta_lake.rs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ use datafusion::scalar::ScalarValue;
4242
use datafusion::sql::TableReference;
4343
use delta_kernel::engine::default::DefaultEngine;
4444
use delta_kernel::engine::default::executor::tokio::TokioBackgroundExecutor;
45+
use delta_kernel::engine::default::storage::store_from_url_opts;
4546
use delta_kernel::expressions::{BinaryExpressionOp, DecimalData, Expression, Scalar};
4647
use delta_kernel::scan::ScanBuilder;
4748
use delta_kernel::scan::state::{DvInfo, Stats};
@@ -196,18 +197,10 @@ impl DeltaTable {
196197
};
197198

198199
let engine = match table_object_store {
199-
Some(object_store) => Arc::new(DefaultEngine::new(
200-
object_store.into(),
201-
Arc::new(TokioBackgroundExecutor::default()),
200+
Some(object_store) => Arc::new(DefaultEngine::new(object_store.into())),
201+
None => Arc::new(DefaultEngine::new(
202+
store_from_url_opts(&table_url, storage_options).map_err(handle_delta_error)?,
202203
)),
203-
None => Arc::new(
204-
DefaultEngine::try_new(
205-
&table_url,
206-
storage_options,
207-
Arc::new(TokioBackgroundExecutor::default()),
208-
)
209-
.map_err(handle_delta_error)?,
210-
),
211204
};
212205

213206
let snapshot = Snapshot::builder_for(table_url.clone())

crates/flight_client/tests/cookie_middleware.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1313
See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
16+
#![expect(clippy::expect_used)]
1617

1718
use arrow_flight::flight_service_server::{FlightService, FlightServiceServer};
1819
use arrow_flight::{

crates/telemetry/src/anonymous.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,6 @@ mod tests {
214214

215215
#[test]
216216
fn test_u64_to_i64_telemetry_max_i64() {
217-
#[expect(clippy::cast_sign_loss)]
218217
let max_i64_as_u64 = i64::MAX as u64;
219218
assert_eq!(u64_to_i64_telemetry(max_i64_as_u64, "test"), i64::MAX);
220219
}
@@ -223,7 +222,6 @@ mod tests {
223222
fn test_u64_to_i64_telemetry_overflow_clamps() {
224223
assert_eq!(u64_to_i64_telemetry(u64::MAX, "test"), i64::MAX);
225224

226-
#[expect(clippy::cast_sign_loss)]
227225
let just_over = (i64::MAX as u64) + 1;
228226
assert_eq!(u64_to_i64_telemetry(just_over, "test"), i64::MAX);
229227
}

0 commit comments

Comments
 (0)