This is an automated email from the ASF dual-hosted git repository.
github-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 3383567b83 Publish built docs triggered by
14a85fa3838951f957f81a6a2936694a1bfeeef1
3383567b83 is described below
commit 3383567b83efdafabbfcf31a01dd5c69bedd906f
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Mar 30 20:22:07 2026 +0000
Publish built docs triggered by 14a85fa3838951f957f81a6a2936694a1bfeeef1
---
.../library-user-guide/upgrading/54.0.0.md.txt | 45 +++++++++++++++++++---
library-user-guide/upgrading/54.0.0.html | 44 +++++++++++++++++----
searchindex.js | 2 +-
3 files changed, 78 insertions(+), 13 deletions(-)
diff --git a/_sources/library-user-guide/upgrading/54.0.0.md.txt
b/_sources/library-user-guide/upgrading/54.0.0.md.txt
index 454a8de3d1..d8758e1342 100644
--- a/_sources/library-user-guide/upgrading/54.0.0.md.txt
+++ b/_sources/library-user-guide/upgrading/54.0.0.md.txt
@@ -124,12 +124,15 @@ let mut stats =
Arc::unwrap_or_clone(plan.partition_statistics(None)?);
stats.column_statistics[0].min_value = ...;
```
-### Remove `as_any` from `ScalarUDFImpl`
+### Remove `as_any` from `ScalarUDFImpl`, `AggregateUDFImpl`, and
`WindowUDFImpl`
Now that we have a more recent minimum version of Rust, we can take advantage
of
-trait upcasting for Scalar UDFs. This reduces the amount of boilerplate code
that
-users need to do to create a UDF. In your implementations, you can simply
remove
-this function. The below diff is an example from the associated PR
+trait upcasting for UDFs. This reduces the amount of boilerplate code that
+users need to do to create a UDF. In your implementations of `ScalarUDFImpl`,
+`AggregateUDFImpl`, and `WindowUDFImpl`, you can simply remove the `as_any`
+function. The below diffs are examples from the associated PRs.
+
+**Scalar UDFs:**
```diff
impl ScalarUDFImpl for MyEq {
@@ -145,7 +148,39 @@ this function. The below diff is an example from the
associated PR
}
```
-If you have a function that is downcasting a scalar function, you can replace
+**Aggregate UDFs:**
+
+```diff
+ impl AggregateUDFImpl for GeoMeanUdf {
+- fn as_any(&self) -> &dyn Any {
+- self
+- }
+-
+ fn name(&self) -> &str {
+ "geo_mean"
+ }
+
+ ...
+ }
+```
+
+**Window UDFs:**
+
+```diff
+ impl WindowUDFImpl for SmoothIt {
+- fn as_any(&self) -> &dyn Any {
+- self
+- }
+-
+ fn name(&self) -> &str {
+ "smooth_it"
+ }
+
+ ...
+ }
+```
+
+If you have a function that is downcasting a UDF, you can replace
the call to `.as_any()` with `.as_ref() as &dyn Any`. For example
**Before:**
diff --git a/library-user-guide/upgrading/54.0.0.html
b/library-user-guide/upgrading/54.0.0.html
index ec14828ff6..953614d90b 100644
--- a/library-user-guide/upgrading/54.0.0.html
+++ b/library-user-guide/upgrading/54.0.0.html
@@ -510,12 +510,14 @@ to the main branch and are awaiting release in this
version.</p>
</pre></div>
</div>
</section>
-<section id="remove-as-any-from-scalarudfimpl">
-<h3>Remove <code class="docutils literal notranslate"><span
class="pre">as_any</span></code> from <code class="docutils literal
notranslate"><span class="pre">ScalarUDFImpl</span></code><a class="headerlink"
href="#remove-as-any-from-scalarudfimpl" title="Link to this heading">#</a></h3>
+<section
id="remove-as-any-from-scalarudfimpl-aggregateudfimpl-and-windowudfimpl">
+<h3>Remove <code class="docutils literal notranslate"><span
class="pre">as_any</span></code> from <code class="docutils literal
notranslate"><span class="pre">ScalarUDFImpl</span></code>, <code
class="docutils literal notranslate"><span
class="pre">AggregateUDFImpl</span></code>, and <code class="docutils literal
notranslate"><span class="pre">WindowUDFImpl</span></code><a class="headerlink"
href="#remove-as-any-from-scalarudfimpl-aggregateudfimpl-and-windowudfimpl"
title="Link to this h [...]
<p>Now that we have a more recent minimum version of Rust, we can take
advantage of
-trait upcasting for Scalar UDFs. This reduces the amount of boilerplate code
that
-users need to do to create a UDF. In your implementations, you can simply
remove
-this function. The below diff is an example from the associated PR</p>
+trait upcasting for UDFs. This reduces the amount of boilerplate code that
+users need to do to create a UDF. In your implementations of <code
class="docutils literal notranslate"><span
class="pre">ScalarUDFImpl</span></code>,
+<code class="docutils literal notranslate"><span
class="pre">AggregateUDFImpl</span></code>, and <code class="docutils literal
notranslate"><span class="pre">WindowUDFImpl</span></code>, you can simply
remove the <code class="docutils literal notranslate"><span
class="pre">as_any</span></code>
+function. The below diffs are examples from the associated PRs.</p>
+<p><strong>Scalar UDFs:</strong></p>
<div class="highlight-diff notranslate"><div
class="highlight"><pre><span></span><span class="w"> </span>impl ScalarUDFImpl
for MyEq {
<span class="gd">- fn as_any(&self) -> &dyn Any {</span>
<span class="gd">- self</span>
@@ -529,7 +531,35 @@ this function. The below diff is an example from the
associated PR</p>
<span class="w"> </span>}
</pre></div>
</div>
-<p>If you have a function that is downcasting a scalar function, you can
replace
+<p><strong>Aggregate UDFs:</strong></p>
+<div class="highlight-diff notranslate"><div
class="highlight"><pre><span></span><span class="w"> </span>impl
AggregateUDFImpl for GeoMeanUdf {
+<span class="gd">- fn as_any(&self) -> &dyn Any {</span>
+<span class="gd">- self</span>
+<span class="gd">- }</span>
+<span class="gd">-</span>
+<span class="w"> </span> fn name(&self) -> &str {
+<span class="w"> </span> "geo_mean"
+<span class="w"> </span> }
+
+<span class="w"> </span> ...
+<span class="w"> </span>}
+</pre></div>
+</div>
+<p><strong>Window UDFs:</strong></p>
+<div class="highlight-diff notranslate"><div
class="highlight"><pre><span></span><span class="w"> </span>impl WindowUDFImpl
for SmoothIt {
+<span class="gd">- fn as_any(&self) -> &dyn Any {</span>
+<span class="gd">- self</span>
+<span class="gd">- }</span>
+<span class="gd">-</span>
+<span class="w"> </span> fn name(&self) -> &str {
+<span class="w"> </span> "smooth_it"
+<span class="w"> </span> }
+
+<span class="w"> </span> ...
+<span class="w"> </span>}
+</pre></div>
+</div>
+<p>If you have a function that is downcasting a UDF, you can replace
the call to <code class="docutils literal notranslate"><span
class="pre">.as_any()</span></code> with <code class="docutils literal
notranslate"><span class="pre">.as_ref()</span> <span class="pre">as</span>
<span class="pre">&dyn</span> <span class="pre">Any</span></code>. For
example</p>
<p><strong>Before:</strong></p>
<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">is_async</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="n">func</span>
@@ -639,7 +669,7 @@ timezone-naive.</p></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link"
href="#datafusion-54-0-0">DataFusion 54.0.0</a><ul class="nav section-nav
flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#executionplan-apply-expressions-is-now-a-required-method"><code
class="docutils literal notranslate"><span
class="pre">ExecutionPlan::apply_expressions</span></code> is now a required
method</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#executionplan-partition-statistics-now-returns-arc-statistics"><code
class="docutils literal notranslate"><span
class="pre">ExecutionPlan::partition_statistics</span></code> now returns <code
class="docutils literal notranslate"><span
class="pre">Arc<Statistics></span></code></a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#remove-as-any-from-scalarudfimpl">Remove <code class="docutils literal
notranslate"><span class="pre">as_any</span></code> from <code class="docutils
literal notranslate"><span class="pre">ScalarUDFImpl</span></code></a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#remove-as-any-from-scalarudfimpl-aggregateudfimpl-and-windowudfimpl">Remove
<code class="docutils literal notranslate"><span
class="pre">as_any</span></code> from <code class="docutils literal
notranslate"><span class="pre">ScalarUDFImpl</span></code>, <code
class="docutils literal notranslate"><span
class="pre">AggregateUDFImpl</span></code>, and <code class="docutils literal
notranslate"><span class="pr [...]
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#avro-api-and-timestamp-decoding-changes">Avro API and timestamp decoding
changes</a></li>
</ul>
</li>
diff --git a/searchindex.js b/searchindex.js
index de6f167cd3..1378713ae8 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"!=":[[72,"op-neq"]],"!~":[[72,"op-re-not-match"]],"!~*":[[72,"op-re-not-match-i"]],"!~~":[[72,"id19"]],"!~~*":[[72,"id20"]],"#":[[72,"op-bit-xor"]],"%":[[72,"op-modulo"]],"&":[[72,"op-bit-and"]],"(relation,
name) tuples in logical fields and logical columns are
unique":[[14,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[72,"op-multiply"]],"+":[[72,"op-plus"]],"-":[[72,"op-minus"]],"/":[[72,"op-divide"]],"1.
Array Literal Con [...]
\ No newline at end of file
+Search.setIndex({"alltitles":{"!=":[[72,"op-neq"]],"!~":[[72,"op-re-not-match"]],"!~*":[[72,"op-re-not-match-i"]],"!~~":[[72,"id19"]],"!~~*":[[72,"id20"]],"#":[[72,"op-bit-xor"]],"%":[[72,"op-modulo"]],"&":[[72,"op-bit-and"]],"(relation,
name) tuples in logical fields and logical columns are
unique":[[14,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[72,"op-multiply"]],"+":[[72,"op-plus"]],"-":[[72,"op-minus"]],"/":[[72,"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]