From 69f37db9ff9628fda0bddecafe653069611ad885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Milenkovi=C4=87?= Date: Sat, 16 May 2026 08:29:15 +0100 Subject: [PATCH 1/3] minor: add `Any` to `QueryPlanner` trait --- datafusion/core/src/execution/context/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/datafusion/core/src/execution/context/mod.rs b/datafusion/core/src/execution/context/mod.rs index d84ef0c898313..7143d1aaab092 100644 --- a/datafusion/core/src/execution/context/mod.rs +++ b/datafusion/core/src/execution/context/mod.rs @@ -17,6 +17,7 @@ //! [`SessionContext`] API for registering data sources and executing queries +use std::any::Any; use std::collections::HashSet; use std::fmt::Debug; use std::sync::{Arc, Weak}; @@ -2073,7 +2074,7 @@ impl From for SessionStateBuilder { /// A planner used to add extensions to DataFusion logical and physical plans. #[async_trait] -pub trait QueryPlanner: Debug { +pub trait QueryPlanner: Any + Debug { /// Given a [`LogicalPlan`], create an [`ExecutionPlan`] suitable for execution async fn create_physical_plan( &self, From a90e1bfd71069a08162cea45c9b8e5b614574193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Milenkovi=C4=87?= Date: Sun, 17 May 2026 08:17:48 +0100 Subject: [PATCH 2/3] update upgrade guide --- docs/source/library-user-guide/upgrading/54.0.0.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/source/library-user-guide/upgrading/54.0.0.md b/docs/source/library-user-guide/upgrading/54.0.0.md index 46b768e8340eb..747bba2e098b8 100644 --- a/docs/source/library-user-guide/upgrading/54.0.0.md +++ b/docs/source/library-user-guide/upgrading/54.0.0.md @@ -649,3 +649,14 @@ move the borrow behind an interior-mutability primitive such as `Arc>` or `Arc>`. See [PR #21803](https://github.com/apache/datafusion/pull/21803) for details. + +### `QueryPlanner` adds `Any` as a supertrait + +To enable downcasting of `dyn QueryPlanner` to concrete query planner types (via +`is::()` / `downcast_ref::()`), the `QueryPlanner` trait now has `Any` +as a supertrait: + +```diff +- pub trait QueryPlanner: Debug ++ pub trait QueryPlanner: Any + Debug +``` From a8d8844103a5b17efeb3701a8fabcceb4ee55066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Milenkovi=C4=87?= Date: Sun, 17 May 2026 08:25:29 +0100 Subject: [PATCH 3/3] fix formatting --- docs/source/library-user-guide/upgrading/54.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/library-user-guide/upgrading/54.0.0.md b/docs/source/library-user-guide/upgrading/54.0.0.md index 747bba2e098b8..e7be09f957dee 100644 --- a/docs/source/library-user-guide/upgrading/54.0.0.md +++ b/docs/source/library-user-guide/upgrading/54.0.0.md @@ -657,6 +657,6 @@ To enable downcasting of `dyn QueryPlanner` to concrete query planner types (via as a supertrait: ```diff -- pub trait QueryPlanner: Debug -+ pub trait QueryPlanner: Any + Debug +- pub trait QueryPlanner: Debug ++ pub trait QueryPlanner: Any + Debug ```