From f8670cf71d70893a906034d75adf21c4d2d011dc Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 11 Aug 2026 19:26:33 +0000 Subject: [PATCH 1/2] docs: update proto-models README for the datafusion-common dependency `datafusion-proto-models` now depends on `datafusion-common` and hosts the `From` / `TryFrom` conversions between the generated proto types and their `datafusion-common` counterparts, but the crate README still claimed it had no DataFusion dependencies beyond `datafusion-proto-common` and exposed only the generated structs. Describe the conversions and why they live in this crate, and spell out the narrowness that still holds: `datafusion-common` and `datafusion-proto-common` are the only DataFusion dependencies. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01GoAdfGfHwhLreDPDQ9GoDK --- datafusion/proto-models/README.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/datafusion/proto-models/README.md b/datafusion/proto-models/README.md index 34adae9c1aaef..612b28999881c 100644 --- a/datafusion/proto-models/README.md +++ b/datafusion/proto-models/README.md @@ -22,9 +22,17 @@ [Apache DataFusion] is an extensible query execution framework, written in Rust, that uses [Apache Arrow] as its in-memory format. This crate contains the [prost]-generated Rust types for DataFusion's logical -and physical plan protobuf schemas. It is intentionally kept narrow: it has no -DataFusion dependencies beyond [`datafusion-proto-common`] and exposes only the -generated structs (and optional [pbjson]/[serde] support). +and physical plan protobuf schemas, plus the `From` / `TryFrom` conversions +between those types and the [`datafusion-common`] types they mirror. The +conversions live here because their DataFusion side sits _below_ this crate in +the dependency graph and so cannot host the impls itself — the same arrangement +[`datafusion-proto-common`] uses for `ScalarValue` and `Statistics`. + +It is otherwise intentionally kept narrow: its only DataFusion dependencies are +[`datafusion-common`] and [`datafusion-proto-common`], and apart from those +conversions it exposes only the generated structs (and optional +[pbjson]/[serde] support). In particular it does not depend on +`datafusion-expr` or on any of the execution crates. This crate is consumed by [`datafusion-proto`] and may also be depended on directly by other DataFusion crates that need to refer to the proto schema @@ -39,5 +47,6 @@ crate, there is no reason to use this crate directly in your project as well. [prost]: https://docs.rs/prost/latest/prost/ [pbjson]: https://docs.rs/pbjson/latest/pbjson/ [serde]: https://serde.rs/ +[`datafusion-common`]: https://crates.io/crates/datafusion-common [`datafusion-proto`]: https://crates.io/crates/datafusion-proto [`datafusion-proto-common`]: https://crates.io/crates/datafusion-proto-common From 3299add97b20fe0abe18f55e269268ab61f7867c Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Wed, 12 Aug 2026 14:58:54 -0400 Subject: [PATCH 2/2] docs: link ScalarValue and Statistics definitions in proto-models README Co-Authored-By: Claude Opus 5 --- datafusion/proto-models/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/datafusion/proto-models/README.md b/datafusion/proto-models/README.md index 612b28999881c..6b3b4ba9a2f49 100644 --- a/datafusion/proto-models/README.md +++ b/datafusion/proto-models/README.md @@ -26,7 +26,7 @@ and physical plan protobuf schemas, plus the `From` / `TryFrom` conversions between those types and the [`datafusion-common`] types they mirror. The conversions live here because their DataFusion side sits _below_ this crate in the dependency graph and so cannot host the impls itself — the same arrangement -[`datafusion-proto-common`] uses for `ScalarValue` and `Statistics`. +[`datafusion-proto-common`] uses for [`ScalarValue`] and [`Statistics`]. It is otherwise intentionally kept narrow: its only DataFusion dependencies are [`datafusion-common`] and [`datafusion-proto-common`], and apart from those @@ -50,3 +50,5 @@ crate, there is no reason to use this crate directly in your project as well. [`datafusion-common`]: https://crates.io/crates/datafusion-common [`datafusion-proto`]: https://crates.io/crates/datafusion-proto [`datafusion-proto-common`]: https://crates.io/crates/datafusion-proto-common +[`scalarvalue`]: https://docs.rs/datafusion-common/latest/datafusion_common/scalar/enum.ScalarValue.html +[`statistics`]: https://docs.rs/datafusion-common/latest/datafusion_common/stats/struct.Statistics.html