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 611690c914 Publish built docs triggered by 
b0c8dd61ac660206a436e2f003d70394495e5bf0
611690c914 is described below

commit 611690c9148a572797877d34109b7afdfa40cc0a
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Aug 5 20:04:32 2025 +0000

    Publish built docs triggered by b0c8dd61ac660206a436e2f003d70394495e5bf0
---
 .../functions/adding-udfs.md.txt                   |  7 ++--
 _sources/library-user-guide/upgrading.md.txt       | 38 +++++++++++++++++
 library-user-guide/functions/adding-udfs.html      |  7 ++--
 library-user-guide/upgrading.html                  | 48 ++++++++++++++++++++++
 searchindex.js                                     |  2 +-
 5 files changed, 93 insertions(+), 9 deletions(-)

diff --git a/_sources/library-user-guide/functions/adding-udfs.md.txt 
b/_sources/library-user-guide/functions/adding-udfs.md.txt
index 00ee878e1f..6bce4c32b8 100644
--- a/_sources/library-user-guide/functions/adding-udfs.md.txt
+++ b/_sources/library-user-guide/functions/adding-udfs.md.txt
@@ -317,12 +317,11 @@ impl AsyncScalarUDFImpl for AsyncUpper {
     }
 
     /// This method is called to execute the async UDF and is similar
-    /// to the normal `invoke_with_args` except it returns an `ArrayRef`
-    /// instead of `ColumnarValue` and is `async`.
+    /// to the normal `invoke_with_args` except it is `async`.
     async fn invoke_async_with_args(
         &self,
         args: ScalarFunctionArgs,
-    ) -> Result<ArrayRef> {
+    ) -> Result<ColumnarValue> {
         let value = &args.args[0];
         // This function simply implements a simple string to uppercase 
conversion
         // but can be used for any async operation such as network calls.
@@ -337,7 +336,7 @@ impl AsyncScalarUDFImpl for AsyncUpper {
             }
             _ => return internal_err!("Expected a string argument, got {:?}", 
value),
         };
-        Ok(result)
+        Ok(ColumnarValue::from(result))
     }
 }
 ```
diff --git a/_sources/library-user-guide/upgrading.md.txt 
b/_sources/library-user-guide/upgrading.md.txt
index 6332fb6604..c2e7d25f86 100644
--- a/_sources/library-user-guide/upgrading.md.txt
+++ b/_sources/library-user-guide/upgrading.md.txt
@@ -24,6 +24,44 @@
 **Note:** DataFusion `50.0.0` has not been released yet. The information 
provided in this section pertains to features and changes that have already 
been merged to the main branch and are awaiting release in this version.
 You can see the current [status of the `50.0.0 `release 
here](https://github.com/apache/datafusion/issues/16799)
 
+### `AsyncScalarUDFImpl::invoke_async_with_args` returns `ColumnarValue`
+
+In order to enable single value optimizations and be consistent with other
+user defined function APIs, the `AsyncScalarUDFImpl::invoke_async_with_args` 
method now
+returns a `ColumnarValue` instead of a `ArrayRef`.
+
+To upgrade, change the return type of your implementation
+
+```rust
+impl AsyncScalarUDFImpl for AskLLM {
+    async fn invoke_async_with_args(
+        &self,
+        args: ScalarFunctionArgs,
+        _option: &ConfigOptions,
+    ) -> Result<ColumnarValue> {
+        ..
+      return array_ref; // old code
+    }
+}
+```
+
+To return a `ColumnarValue`
+
+```rust
+impl AsyncScalarUDFImpl for AskLLM {
+    async fn invoke_async_with_args(
+        &self,
+        args: ScalarFunctionArgs,
+        _option: &ConfigOptions,
+    ) -> Result<ColumnarValue> {
+        ..
+      return ColumnarValue::from(array_ref); // new code
+    }
+}
+```
+
+See [#16896](https://github.com/apache/datafusion/issues/16896) for more 
details.
+
 ### `SessionState`, `SessionConfig`, and `OptimizerConfig` returns 
`&Arc<ConfigOptions>` instead of `&ConfigOptions`
 
 To provide broader access to `ConfigOptions` and reduce required clones, some
diff --git a/library-user-guide/functions/adding-udfs.html 
b/library-user-guide/functions/adding-udfs.html
index ac25d788e5..0d984da82b 100644
--- a/library-user-guide/functions/adding-udfs.html
+++ b/library-user-guide/functions/adding-udfs.html
@@ -1001,12 +1001,11 @@ UDF.</p>
 <span class="w">    </span><span class="p">}</span>
 
 <span class="w">    </span><span class="sd">/// This method is called to 
execute the async UDF and is similar</span>
-<span class="w">    </span><span class="sd">/// to the normal 
`invoke_with_args` except it returns an `ArrayRef`</span>
-<span class="w">    </span><span class="sd">/// instead of `ColumnarValue` and 
is `async`.</span>
+<span class="w">    </span><span class="sd">/// to the normal 
`invoke_with_args` except it is `async`.</span>
 <span class="w">    </span><span class="k">async</span><span class="w"> 
</span><span class="k">fn</span><span class="w"> </span><span 
class="nf">invoke_async_with_args</span><span class="p">(</span>
 <span class="w">        </span><span class="o">&amp;</span><span 
class="bp">self</span><span class="p">,</span>
 <span class="w">        </span><span class="n">args</span><span 
class="p">:</span><span class="w"> </span><span 
class="nc">ScalarFunctionArgs</span><span class="p">,</span>
-<span class="w">    </span><span class="p">)</span><span class="w"> 
</span><span class="p">-&gt;</span><span class="w"> </span><span 
class="nb">Result</span><span class="o">&lt;</span><span 
class="n">ArrayRef</span><span class="o">&gt;</span><span class="w"> 
</span><span class="p">{</span>
+<span class="w">    </span><span class="p">)</span><span class="w"> 
</span><span class="p">-&gt;</span><span class="w"> </span><span 
class="nb">Result</span><span class="o">&lt;</span><span 
class="n">ColumnarValue</span><span class="o">&gt;</span><span class="w"> 
</span><span class="p">{</span>
 <span class="w">        </span><span class="kd">let</span><span class="w"> 
</span><span class="n">value</span><span class="w"> </span><span 
class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span 
class="n">args</span><span class="p">.</span><span class="n">args</span><span 
class="p">[</span><span class="mi">0</span><span class="p">];</span>
 <span class="w">        </span><span class="c1">// This function simply 
implements a simple string to uppercase conversion</span>
 <span class="w">        </span><span class="c1">// but can be used for any 
async operation such as network calls.</span>
@@ -1021,7 +1020,7 @@ UDF.</p>
 <span class="w">            </span><span class="p">}</span>
 <span class="w">            </span><span class="n">_</span><span class="w"> 
</span><span class="o">=&gt;</span><span class="w"> </span><span 
class="k">return</span><span class="w"> </span><span 
class="n">internal_err</span><span class="o">!</span><span 
class="p">(</span><span class="s">&quot;Expected a string argument, got 
{:?}&quot;</span><span class="p">,</span><span class="w"> </span><span 
class="n">value</span><span class="p">),</span>
 <span class="w">        </span><span class="p">};</span>
-<span class="w">        </span><span class="nb">Ok</span><span 
class="p">(</span><span class="n">result</span><span class="p">)</span>
+<span class="w">        </span><span class="nb">Ok</span><span 
class="p">(</span><span class="n">ColumnarValue</span><span 
class="p">::</span><span class="n">from</span><span class="p">(</span><span 
class="n">result</span><span class="p">))</span>
 <span class="w">    </span><span class="p">}</span>
 <span class="p">}</span>
 </pre></div>
diff --git a/library-user-guide/upgrading.html 
b/library-user-guide/upgrading.html
index 48fa1d7a69..40e888deed 100644
--- a/library-user-guide/upgrading.html
+++ b/library-user-guide/upgrading.html
@@ -554,6 +554,21 @@
    </code>
   </a>
   <ul class="nav section-nav flex-column">
+   <li class="toc-h3 nav-item toc-entry">
+    <a class="reference internal nav-link" 
href="#asyncscalarudfimpl-invoke-async-with-args-returns-columnarvalue">
+     <code class="docutils literal notranslate">
+      <span class="pre">
+       AsyncScalarUDFImpl::invoke_async_with_args
+      </span>
+     </code>
+     returns
+     <code class="docutils literal notranslate">
+      <span class="pre">
+       ColumnarValue
+      </span>
+     </code>
+    </a>
+   </li>
    <li class="toc-h3 nav-item toc-entry">
     <a class="reference internal nav-link" 
href="#sessionstate-sessionconfig-and-optimizerconfig-returns-arc-configoptions-instead-of-configoptions">
      <code class="docutils literal notranslate">
@@ -1137,6 +1152,39 @@
 <h2>DataFusion <code class="docutils literal notranslate"><span 
class="pre">50.0.0</span></code><a class="headerlink" href="#datafusion-50-0-0" 
title="Link to this heading">¶</a></h2>
 <p><strong>Note:</strong> DataFusion <code class="docutils literal 
notranslate"><span class="pre">50.0.0</span></code> has not been released yet. 
The information provided in this section pertains to features and changes that 
have already been merged to the main branch and are awaiting release in this 
version.
 You can see the current <a class="reference external" 
href="https://github.com/apache/datafusion/issues/16799";>status of the <code 
class="docutils literal notranslate"><span class="pre">50.0.0</span> 
</code>release here</a></p>
+<section id="asyncscalarudfimpl-invoke-async-with-args-returns-columnarvalue">
+<h3><code class="docutils literal notranslate"><span 
class="pre">AsyncScalarUDFImpl::invoke_async_with_args</span></code> returns 
<code class="docutils literal notranslate"><span 
class="pre">ColumnarValue</span></code><a class="headerlink" 
href="#asyncscalarudfimpl-invoke-async-with-args-returns-columnarvalue" 
title="Link to this heading">¶</a></h3>
+<p>In order to enable single value optimizations and be consistent with other
+user defined function APIs, the <code class="docutils literal 
notranslate"><span 
class="pre">AsyncScalarUDFImpl::invoke_async_with_args</span></code> method now
+returns a <code class="docutils literal notranslate"><span 
class="pre">ColumnarValue</span></code> instead of a <code class="docutils 
literal notranslate"><span class="pre">ArrayRef</span></code>.</p>
+<p>To upgrade, change the return type of your implementation</p>
+<div class="highlight-rust notranslate"><div 
class="highlight"><pre><span></span><span class="k">impl</span><span class="w"> 
</span><span class="n">AsyncScalarUDFImpl</span><span class="w"> </span><span 
class="k">for</span><span class="w"> </span><span class="n">AskLLM</span><span 
class="w"> </span><span class="p">{</span>
+<span class="w">    </span><span class="k">async</span><span class="w"> 
</span><span class="k">fn</span><span class="w"> </span><span 
class="nf">invoke_async_with_args</span><span class="p">(</span>
+<span class="w">        </span><span class="o">&amp;</span><span 
class="bp">self</span><span class="p">,</span>
+<span class="w">        </span><span class="n">args</span><span 
class="p">:</span><span class="w"> </span><span 
class="nc">ScalarFunctionArgs</span><span class="p">,</span>
+<span class="w">        </span><span class="n">_option</span><span 
class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span 
class="nc">ConfigOptions</span><span class="p">,</span>
+<span class="w">    </span><span class="p">)</span><span class="w"> 
</span><span class="p">-&gt;</span><span class="w"> </span><span 
class="nb">Result</span><span class="o">&lt;</span><span 
class="n">ColumnarValue</span><span class="o">&gt;</span><span class="w"> 
</span><span class="p">{</span>
+<span class="w">        </span><span class="o">..</span>
+<span class="w">      </span><span class="k">return</span><span class="w"> 
</span><span class="n">array_ref</span><span class="p">;</span><span class="w"> 
</span><span class="c1">// old code</span>
+<span class="w">    </span><span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>To return a <code class="docutils literal notranslate"><span 
class="pre">ColumnarValue</span></code></p>
+<div class="highlight-rust notranslate"><div 
class="highlight"><pre><span></span><span class="k">impl</span><span class="w"> 
</span><span class="n">AsyncScalarUDFImpl</span><span class="w"> </span><span 
class="k">for</span><span class="w"> </span><span class="n">AskLLM</span><span 
class="w"> </span><span class="p">{</span>
+<span class="w">    </span><span class="k">async</span><span class="w"> 
</span><span class="k">fn</span><span class="w"> </span><span 
class="nf">invoke_async_with_args</span><span class="p">(</span>
+<span class="w">        </span><span class="o">&amp;</span><span 
class="bp">self</span><span class="p">,</span>
+<span class="w">        </span><span class="n">args</span><span 
class="p">:</span><span class="w"> </span><span 
class="nc">ScalarFunctionArgs</span><span class="p">,</span>
+<span class="w">        </span><span class="n">_option</span><span 
class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span 
class="nc">ConfigOptions</span><span class="p">,</span>
+<span class="w">    </span><span class="p">)</span><span class="w"> 
</span><span class="p">-&gt;</span><span class="w"> </span><span 
class="nb">Result</span><span class="o">&lt;</span><span 
class="n">ColumnarValue</span><span class="o">&gt;</span><span class="w"> 
</span><span class="p">{</span>
+<span class="w">        </span><span class="o">..</span>
+<span class="w">      </span><span class="k">return</span><span class="w"> 
</span><span class="n">ColumnarValue</span><span class="p">::</span><span 
class="n">from</span><span class="p">(</span><span 
class="n">array_ref</span><span class="p">);</span><span class="w"> 
</span><span class="c1">// new code</span>
+<span class="w">    </span><span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>See <a class="reference external" 
href="https://github.com/apache/datafusion/issues/16896";>#16896</a> for more 
details.</p>
+</section>
 <section 
id="sessionstate-sessionconfig-and-optimizerconfig-returns-arc-configoptions-instead-of-configoptions">
 <h3><code class="docutils literal notranslate"><span 
class="pre">SessionState</span></code>, <code class="docutils literal 
notranslate"><span class="pre">SessionConfig</span></code>, and <code 
class="docutils literal notranslate"><span 
class="pre">OptimizerConfig</span></code> returns <code class="docutils literal 
notranslate"><span class="pre">&amp;Arc&lt;ConfigOptions&gt;</span></code> 
instead of <code class="docutils literal notranslate"><span 
class="pre">&amp;ConfigOptions</span></co [...]
 <p>To provide broader access to <code class="docutils literal 
notranslate"><span class="pre">ConfigOptions</span></code> and reduce required 
clones, some
diff --git a/searchindex.js b/searchindex.js
index a397ea7d0f..7154973576 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"!=":[[56,"op-neq"]],"!~":[[56,"op-re-not-match"]],"!~*":[[56,"op-re-not-match-i"]],"!~~":[[56,"id19"]],"!~~*":[[56,"id20"]],"#":[[56,"op-bit-xor"]],"%":[[56,"op-modulo"]],"&":[[56,"op-bit-and"]],"(relation,
 name) tuples in logical fields and logical columns are 
unique":[[12,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[56,"op-multiply"]],"+":[[56,"op-plus"]],"-":[[56,"op-minus"]],"/":[[56,"op-divide"]],"<":[[56,"op-lt"]],"<
 [...]
\ No newline at end of file
+Search.setIndex({"alltitles":{"!=":[[56,"op-neq"]],"!~":[[56,"op-re-not-match"]],"!~*":[[56,"op-re-not-match-i"]],"!~~":[[56,"id19"]],"!~~*":[[56,"id20"]],"#":[[56,"op-bit-xor"]],"%":[[56,"op-modulo"]],"&":[[56,"op-bit-and"]],"(relation,
 name) tuples in logical fields and logical columns are 
unique":[[12,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[56,"op-multiply"]],"+":[[56,"op-plus"]],"-":[[56,"op-minus"]],"/":[[56,"op-divide"]],"<":[[56,"op-lt"]],"<
 [...]
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@datafusion.apache.org
For additional commands, e-mail: commits-h...@datafusion.apache.org

Reply via email to