From 42a756109960b439cf36b60224cd88bc1a2eb945 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 11:28:05 +0000 Subject: [PATCH 1/4] Initial plan From a7520aa8deb12f5d7758263b605affd1bf50d860 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Oct 2025 11:43:40 +0000 Subject: [PATCH 2/4] Add datafusion-rocksdb crate with basic layout and README Co-authored-by: matthewmturner <22136083+matthewmturner@users.noreply.github.com> --- crates/datafusion-rocksdb/Cargo.toml | 14 ++++++++++++ crates/datafusion-rocksdb/README.md | 32 +++++++++++++++++++++++++++ crates/datafusion-rocksdb/src/lib.rs | 33 ++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 crates/datafusion-rocksdb/Cargo.toml create mode 100644 crates/datafusion-rocksdb/README.md create mode 100644 crates/datafusion-rocksdb/src/lib.rs diff --git a/crates/datafusion-rocksdb/Cargo.toml b/crates/datafusion-rocksdb/Cargo.toml new file mode 100644 index 00000000..3d198b94 --- /dev/null +++ b/crates/datafusion-rocksdb/Cargo.toml @@ -0,0 +1,14 @@ +[package] +authors = ["Matthew Turner "] +description = "DataFusion UDFs and extension points for RocksDB" +edition = "2021" +homepage = "https://github.com/datafusion-contrib/datafusion-dft/tree/main/crates/datafusion-rocksdb" +keywords = ["datafusion", "rocksdb", "query", "sql"] +license = "Apache-2.0" +name = "datafusion-rocksdb" +readme = "README.md" +repository = "https://github.com/datafusion-contrib/datafusion-dft/tree/main/crates/datafusion-rocksdb" +version = "0.1.0" + +[dependencies] +datafusion = { version = "46" } diff --git a/crates/datafusion-rocksdb/README.md b/crates/datafusion-rocksdb/README.md new file mode 100644 index 00000000..e48df96c --- /dev/null +++ b/crates/datafusion-rocksdb/README.md @@ -0,0 +1,32 @@ +# DataFusion RocksDB + +A DataFusion extension crate that provides User-Defined Functions (UDFs) and extension points for integrating RocksDB with Apache DataFusion. + +## Overview + +This crate enables DataFusion to work with RocksDB, providing: + +- **UDFs**: Custom functions for interacting with RocksDB data +- **Extension Points**: DataFusion extension interfaces for RocksDB integration +- **Performance**: Efficient key-value storage and retrieval through RocksDB + +## Features + +This crate is currently under development. Planned features include: + +- Reading and writing data to RocksDB key-value stores +- Table functions for querying RocksDB data +- Custom UDFs for RocksDB operations + +## Usage + +Add this crate to your `Cargo.toml`: + +```toml +[dependencies] +datafusion-rocksdb = "0.1.0" +``` + +## License + +Licensed under the Apache License, Version 2.0. See [LICENSE.txt](../../LICENSE.txt) for details. diff --git a/crates/datafusion-rocksdb/src/lib.rs b/crates/datafusion-rocksdb/src/lib.rs new file mode 100644 index 00000000..71dc334f --- /dev/null +++ b/crates/datafusion-rocksdb/src/lib.rs @@ -0,0 +1,33 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +//! DataFusion RocksDB integration +//! +//! This crate provides User-Defined Functions (UDFs) and DataFusion extension points +//! for working with RocksDB key-value stores. + +#![deny(clippy::clone_on_ref_ptr)] + +/// Module for RocksDB-related User-Defined Functions +pub mod udfs { + //! User-Defined Functions for RocksDB operations +} + +/// Module for RocksDB DataFusion extension points +pub mod extensions { + //! DataFusion extension points for RocksDB integration +} From 3df877c7a93baa4c83e30b92f2840e1eb33c6bfe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 18 Oct 2025 01:09:54 +0000 Subject: [PATCH 3/4] Fix CI: Use toolchain from rust-toolchain.toml instead of overriding to stable Co-authored-by: matthewmturner <22136083+matthewmturner@users.noreply.github.com> --- .github/actions/setup-rust/action.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/actions/setup-rust/action.yml b/.github/actions/setup-rust/action.yml index c3b06361..8403990d 100644 --- a/.github/actions/setup-rust/action.yml +++ b/.github/actions/setup-rust/action.yml @@ -28,10 +28,8 @@ runs: - name: Setup Rust toolchain shell: bash run: | - rustup show rustup self update - rustup install stable - rustup default stable + rustup show rustup component add clippy rustup component add rustfmt - name: Install Cargo tools From 9af2c0c3580d85a693d01302407d82c307cbe36b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 18 Oct 2025 01:48:39 +0000 Subject: [PATCH 4/4] Update Rust toolchain to 1.86.0 to fix CI cargo-machete installation Co-authored-by: matthewmturner <22136083+matthewmturner@users.noreply.github.com> --- rust-toolchain.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-toolchain.toml b/rust-toolchain.toml index c1bc0a69..cf6d0f55 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "1.85.0" +channel = "1.86.0"