This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 0595d63a27 Publish built docs triggered by
1bdff19402b62bad04f6c9cc8d5817f546a2fd7d
0595d63a27 is described below
commit 0595d63a271e32b48fc62455a9389215e7447898
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jul 23 13:37:35 2026 +0000
Publish built docs triggered by 1bdff19402b62bad04f6c9cc8d5817f546a2fd7d
---
.../library-user-guide/upgrading/55.0.0.md.txt | 36 ++++++++++++++++++++++
library-user-guide/upgrading/55.0.0.html | 33 ++++++++++++++++++++
searchindex.js | 2 +-
3 files changed, 70 insertions(+), 1 deletion(-)
diff --git a/_sources/library-user-guide/upgrading/55.0.0.md.txt
b/_sources/library-user-guide/upgrading/55.0.0.md.txt
index 651588c500..57da7b7dac 100644
--- a/_sources/library-user-guide/upgrading/55.0.0.md.txt
+++ b/_sources/library-user-guide/upgrading/55.0.0.md.txt
@@ -777,6 +777,42 @@ async fn plan_extension(
See [PR #23649](https://github.com/apache/datafusion/pull/23649) for details.
+### Catalog traits moved to `datafusion-session`
+
+The catalog contract traits now live in the `datafusion-session` crate so they
+can be reached without downcasting a `Session` to `SessionState` (in particular
+across the FFI boundary). The affected traits are `CatalogProviderList`,
+`CatalogProvider`, `SchemaProvider`, `TableProvider`, `TableProviderFactory`,
+and `TableFunctionImpl`. The related `TableFunction` struct also moved.
+
+The `datafusion-catalog` crate re-exports all of them from their new location,
+so paths such as `datafusion::catalog::TableProvider` and
+`datafusion_catalog::CatalogProvider` continue to work unchanged. Most users do
+not need to do anything.
+
+### `Session` gains a required `catalog_list` method
+
+The `Session` trait now requires a `catalog_list` method that returns the
+catalogs registered with the session:
+
+```rust
+fn catalog_list(&self) -> Arc<dyn CatalogProviderList>;
+```
+
+Custom `Session` implementations must add this method. Implementations that do
+not expose a catalog can return the new `EmptyCatalogProviderList`:
+
+```rust
+use std::sync::Arc;
+use datafusion_session::{CatalogProviderList, EmptyCatalogProviderList};
+
+fn catalog_list(&self) -> Arc<dyn CatalogProviderList> {
+ Arc::new(EmptyCatalogProviderList)
+}
+```
+
+See [PR #23703](https://github.com/apache/datafusion/pull/23703) for details.
+
### `MSRV` updated to 1.94.0
The Minimum Supported Rust Version (MSRV) has been updated to [`1.94.0`].
diff --git a/library-user-guide/upgrading/55.0.0.html
b/library-user-guide/upgrading/55.0.0.html
index 7d17dc1fbe..89bbad9fc4 100644
--- a/library-user-guide/upgrading/55.0.0.html
+++ b/library-user-guide/upgrading/55.0.0.html
@@ -1114,6 +1114,37 @@ context:</p>
</div>
<p>See <a class="reference external"
href="https://github.com/apache/datafusion/pull/23649">PR #23649</a> for
details.</p>
</section>
+<section id="catalog-traits-moved-to-datafusion-session">
+<h3>Catalog traits moved to <code class="docutils literal notranslate"><span
class="pre">datafusion-session</span></code><a class="headerlink"
href="#catalog-traits-moved-to-datafusion-session" title="Link to this
heading">#</a></h3>
+<p>The catalog contract traits now live in the <code class="docutils literal
notranslate"><span class="pre">datafusion-session</span></code> crate so they
+can be reached without downcasting a <code class="docutils literal
notranslate"><span class="pre">Session</span></code> to <code class="docutils
literal notranslate"><span class="pre">SessionState</span></code> (in particular
+across the FFI boundary). The affected traits are <code class="docutils
literal notranslate"><span class="pre">CatalogProviderList</span></code>,
+<code class="docutils literal notranslate"><span
class="pre">CatalogProvider</span></code>, <code class="docutils literal
notranslate"><span class="pre">SchemaProvider</span></code>, <code
class="docutils literal notranslate"><span
class="pre">TableProvider</span></code>, <code class="docutils literal
notranslate"><span class="pre">TableProviderFactory</span></code>,
+and <code class="docutils literal notranslate"><span
class="pre">TableFunctionImpl</span></code>. The related <code class="docutils
literal notranslate"><span class="pre">TableFunction</span></code> struct also
moved.</p>
+<p>The <code class="docutils literal notranslate"><span
class="pre">datafusion-catalog</span></code> crate re-exports all of them from
their new location,
+so paths such as <code class="docutils literal notranslate"><span
class="pre">datafusion::catalog::TableProvider</span></code> and
+<code class="docutils literal notranslate"><span
class="pre">datafusion_catalog::CatalogProvider</span></code> continue to work
unchanged. Most users do
+not need to do anything.</p>
+</section>
+<section id="session-gains-a-required-catalog-list-method">
+<h3><code class="docutils literal notranslate"><span
class="pre">Session</span></code> gains a required <code class="docutils
literal notranslate"><span class="pre">catalog_list</span></code> method<a
class="headerlink" href="#session-gains-a-required-catalog-list-method"
title="Link to this heading">#</a></h3>
+<p>The <code class="docutils literal notranslate"><span
class="pre">Session</span></code> trait now requires a <code class="docutils
literal notranslate"><span class="pre">catalog_list</span></code> method that
returns the
+catalogs registered with the session:</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="k">fn</span><span class="w">
</span><span class="nf">catalog_list</span><span class="p">(</span><span
class="o">&</span><span class="bp">self</span><span class="p">)</span><span
class="w"> </span><span class="p">-></span><span class="w"> </span><span
class="nc">Arc</span><span class="o"><</span><span class="k">dyn</span><span
class="w"> </span><span class="n">CatalogProviderList</span> [...]
+</pre></div>
+</div>
+<p>Custom <code class="docutils literal notranslate"><span
class="pre">Session</span></code> implementations must add this method.
Implementations that do
+not expose a catalog can return the new <code class="docutils literal
notranslate"><span class="pre">EmptyCatalogProviderList</span></code>:</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="k">use</span><span class="w">
</span><span class="n">std</span><span class="p">::</span><span
class="n">sync</span><span class="p">::</span><span class="n">Arc</span><span
class="p">;</span>
+<span class="k">use</span><span class="w"> </span><span
class="n">datafusion_session</span><span class="p">::{</span><span
class="n">CatalogProviderList</span><span class="p">,</span><span class="w">
</span><span class="n">EmptyCatalogProviderList</span><span class="p">};</span>
+
+<span class="k">fn</span><span class="w"> </span><span
class="nf">catalog_list</span><span class="p">(</span><span
class="o">&</span><span class="bp">self</span><span class="p">)</span><span
class="w"> </span><span class="p">-></span><span class="w"> </span><span
class="nc">Arc</span><span class="o"><</span><span class="k">dyn</span><span
class="w"> </span><span class="n">CatalogProviderList</span><span
class="o">></span><span class="w"> </span><span class="p">{</span>
+<span class="w"> </span><span class="n">Arc</span><span
class="p">::</span><span class="n">new</span><span class="p">(</span><span
class="n">EmptyCatalogProviderList</span><span class="p">)</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>See <a class="reference external"
href="https://github.com/apache/datafusion/pull/23703">PR #23703</a> for
details.</p>
+</section>
<section id="msrv-updated-to-1-94-0">
<h3><code class="docutils literal notranslate"><span
class="pre">MSRV</span></code> updated to 1.94.0<a class="headerlink"
href="#msrv-updated-to-1-94-0" title="Link to this heading">#</a></h3>
<p>The Minimum Supported Rust Version (MSRV) has been updated to <a
class="reference external" href="https://releases.rs/docs/1.94.0/"><code
class="docutils literal notranslate"><span
class="pre">1.94.0</span></code></a>.</p>
@@ -1190,6 +1221,8 @@ context:</p>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#emptyexecnode-and-placeholderrowexecnode-gained-a-partitions-field"><code
class="docutils literal notranslate"><span
class="pre">EmptyExecNode</span></code> and <code class="docutils literal
notranslate"><span class="pre">PlaceholderRowExecNode</span></code> gained a
<code class="docutils literal notranslate"><span
class="pre">partitions</span></code> field</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#time-interval-now-returns-a-time-instead-of-an-interval"><code
class="docutils literal notranslate"><span class="pre">time</span> <span
class="pre">±</span> <span class="pre">interval</span></code> now returns a
<code class="docutils literal notranslate"><span class="pre">time</span></code>
instead of an <code class="docutils literal notranslate"><span
class="pre">interval</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#scalar-subquery-state-moved-to-an-explicit-physicalplanningcontext">Scalar-subquery
state moved to an explicit <code class="docutils literal notranslate"><span
class="pre">PhysicalPlanningContext</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#catalog-traits-moved-to-datafusion-session">Catalog traits moved to
<code class="docutils literal notranslate"><span
class="pre">datafusion-session</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#session-gains-a-required-catalog-list-method"><code class="docutils
literal notranslate"><span class="pre">Session</span></code> gains a required
<code class="docutils literal notranslate"><span
class="pre">catalog_list</span></code> method</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#msrv-updated-to-1-94-0"><code class="docutils literal notranslate"><span
class="pre">MSRV</span></code> updated to 1.94.0</a></li>
</ul>
</li>
diff --git a/searchindex.js b/searchindex.js
index 19da2a08ac..952003ba86 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"!=":[[74,"op-neq"]],"!~":[[74,"op-re-not-match"]],"!~*":[[74,"op-re-not-match-i"]],"!~~":[[74,"id19"]],"!~~*":[[74,"id20"]],"#":[[74,"op-bit-xor"]],"%":[[74,"op-modulo"]],"&":[[74,"op-bit-and"]],"(relation,
name) tuples in logical fields and logical columns are
unique":[[15,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[74,"op-multiply"]],"+":[[74,"op-plus"]],"-":[[74,"op-minus"]],"/":[[74,"op-divide"]],"1.
Array Literal Con [...]
\ No newline at end of file
+Search.setIndex({"alltitles":{"!=":[[74,"op-neq"]],"!~":[[74,"op-re-not-match"]],"!~*":[[74,"op-re-not-match-i"]],"!~~":[[74,"id19"]],"!~~*":[[74,"id20"]],"#":[[74,"op-bit-xor"]],"%":[[74,"op-modulo"]],"&":[[74,"op-bit-and"]],"(relation,
name) tuples in logical fields and logical columns are
unique":[[15,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[74,"op-multiply"]],"+":[[74,"op-plus"]],"-":[[74,"op-minus"]],"/":[[74,"op-divide"]],"1.
Array Literal Con [...]
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]