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 14891ab547 Publish built docs triggered by 
b4053801bf6e9345af1e856404d11a437410a7d8
14891ab547 is described below

commit 14891ab54786d93c2e93794c8e2791d34ca9bb4e
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jun 26 15:26:12 2025 +0000

    Publish built docs triggered by b4053801bf6e9345af1e856404d11a437410a7d8
---
 .../functions/adding-udfs.md.txt                   | 29 ++++++++++++++++------
 library-user-guide/functions/adding-udfs.html      | 29 ++++++++++++++++------
 searchindex.js                                     |  2 +-
 3 files changed, 43 insertions(+), 17 deletions(-)

diff --git a/_sources/library-user-guide/functions/adding-udfs.md.txt 
b/_sources/library-user-guide/functions/adding-udfs.md.txt
index bfe72eca30..74851b4e59 100644
--- a/_sources/library-user-guide/functions/adding-udfs.md.txt
+++ b/_sources/library-user-guide/functions/adding-udfs.md.txt
@@ -235,7 +235,9 @@ async fn main() {
 
 ## Adding a Scalar Async UDF
 
-A Scalar Async UDF allows you to implement user-defined functions that support 
asynchronous execution, such as performing network or I/O operations within the 
UDF.
+A Scalar Async UDF allows you to implement user-defined functions that support
+asynchronous execution, such as performing network or I/O operations within the
+UDF.
 
 To add a Scalar Async UDF, you need to:
 
@@ -249,14 +251,13 @@ use arrow::array::{ArrayIter, ArrayRef, AsArray, 
StringArray};
 use arrow_schema::DataType;
 use async_trait::async_trait;
 use datafusion::common::error::Result;
-use datafusion::common::internal_err;
+use datafusion::common::{internal_err, not_impl_err};
 use datafusion::common::types::logical_string;
 use datafusion::config::ConfigOptions;
-use datafusion::logical_expr::async_udf::{
-    AsyncScalarFunctionArgs, AsyncScalarUDFImpl,
-};
+use datafusion_expr::ScalarUDFImpl;
+use datafusion::logical_expr::async_udf::AsyncScalarUDFImpl;
 use datafusion::logical_expr::{
-    ColumnarValue, Signature, TypeSignature, TypeSignatureClass, Volatility,
+    ColumnarValue, Signature, TypeSignature, TypeSignatureClass, Volatility, 
ScalarFunctionArgs
 };
 use datafusion::logical_expr_common::signature::Coercion;
 use log::trace;
@@ -287,8 +288,9 @@ impl AsyncUpper {
     }
 }
 
+/// Implement the normal ScalarUDFImpl trait for AsyncUpper
 #[async_trait]
-impl AsyncScalarUDFImpl for AsyncUpper {
+impl ScalarUDFImpl for AsyncUpper {
     fn as_any(&self) -> &dyn Any {
         self
     }
@@ -305,13 +307,24 @@ impl AsyncScalarUDFImpl for AsyncUpper {
         Ok(DataType::Utf8)
     }
 
+    fn invoke_with_args(
+        &self,
+        _args: ScalarFunctionArgs,
+    ) -> Result<ColumnarValue> {
+        not_impl_err!("AsyncUpper can only be called from async contexts")
+    }
+}
+
+/// The actual implementation of the async UDF
+#[async_trait]
+impl AsyncScalarUDFImpl for AsyncUpper {
     fn ideal_batch_size(&self) -> Option<usize> {
         Some(10)
     }
 
     async fn invoke_async_with_args(
         &self,
-        args: AsyncScalarFunctionArgs,
+        args: ScalarFunctionArgs,
         _option: &ConfigOptions,
     ) -> Result<ArrayRef> {
         trace!("Invoking async_upper with args: {:?}", args);
diff --git a/library-user-guide/functions/adding-udfs.html 
b/library-user-guide/functions/adding-udfs.html
index dabfc84954..88822e529c 100644
--- a/library-user-guide/functions/adding-udfs.html
+++ b/library-user-guide/functions/adding-udfs.html
@@ -931,7 +931,9 @@ for the same input.</p></li>
 </section>
 <section id="adding-a-scalar-async-udf">
 <h2>Adding a Scalar Async UDF<a class="headerlink" 
href="#adding-a-scalar-async-udf" title="Link to this heading">ΒΆ</a></h2>
-<p>A Scalar Async UDF allows you to implement user-defined functions that 
support asynchronous execution, such as performing network or I/O operations 
within the UDF.</p>
+<p>A Scalar Async UDF allows you to implement user-defined functions that 
support
+asynchronous execution, such as performing network or I/O operations within the
+UDF.</p>
 <p>To add a Scalar Async UDF, you need to:</p>
 <ol class="arabic simple">
 <li><p>Implement the <code class="docutils literal notranslate"><span 
class="pre">AsyncScalarUDFImpl</span></code> trait to define your async 
function logic, signature, and types.</p></li>
@@ -943,14 +945,13 @@ for the same input.</p></li>
 <span class="k">use</span><span class="w"> </span><span 
class="n">arrow_schema</span><span class="p">::</span><span 
class="n">DataType</span><span class="p">;</span>
 <span class="k">use</span><span class="w"> </span><span 
class="n">async_trait</span><span class="p">::</span><span 
class="n">async_trait</span><span class="p">;</span>
 <span class="k">use</span><span class="w"> </span><span 
class="n">datafusion</span><span class="p">::</span><span 
class="n">common</span><span class="p">::</span><span 
class="n">error</span><span class="p">::</span><span 
class="nb">Result</span><span class="p">;</span>
-<span class="k">use</span><span class="w"> </span><span 
class="n">datafusion</span><span class="p">::</span><span 
class="n">common</span><span class="p">::</span><span 
class="n">internal_err</span><span class="p">;</span>
+<span class="k">use</span><span class="w"> </span><span 
class="n">datafusion</span><span class="p">::</span><span 
class="n">common</span><span class="p">::{</span><span 
class="n">internal_err</span><span class="p">,</span><span class="w"> 
</span><span class="n">not_impl_err</span><span class="p">};</span>
 <span class="k">use</span><span class="w"> </span><span 
class="n">datafusion</span><span class="p">::</span><span 
class="n">common</span><span class="p">::</span><span 
class="n">types</span><span class="p">::</span><span 
class="n">logical_string</span><span class="p">;</span>
 <span class="k">use</span><span class="w"> </span><span 
class="n">datafusion</span><span class="p">::</span><span 
class="n">config</span><span class="p">::</span><span 
class="n">ConfigOptions</span><span class="p">;</span>
-<span class="k">use</span><span class="w"> </span><span 
class="n">datafusion</span><span class="p">::</span><span 
class="n">logical_expr</span><span class="p">::</span><span 
class="n">async_udf</span><span class="p">::{</span>
-<span class="w">    </span><span class="n">AsyncScalarFunctionArgs</span><span 
class="p">,</span><span class="w"> </span><span 
class="n">AsyncScalarUDFImpl</span><span class="p">,</span>
-<span class="p">};</span>
+<span class="k">use</span><span class="w"> </span><span 
class="n">datafusion_expr</span><span class="p">::</span><span 
class="n">ScalarUDFImpl</span><span class="p">;</span>
+<span class="k">use</span><span class="w"> </span><span 
class="n">datafusion</span><span class="p">::</span><span 
class="n">logical_expr</span><span class="p">::</span><span 
class="n">async_udf</span><span class="p">::</span><span 
class="n">AsyncScalarUDFImpl</span><span class="p">;</span>
 <span class="k">use</span><span class="w"> </span><span 
class="n">datafusion</span><span class="p">::</span><span 
class="n">logical_expr</span><span class="p">::{</span>
-<span class="w">    </span><span class="n">ColumnarValue</span><span 
class="p">,</span><span class="w"> </span><span class="n">Signature</span><span 
class="p">,</span><span class="w"> </span><span 
class="n">TypeSignature</span><span class="p">,</span><span class="w"> 
</span><span class="n">TypeSignatureClass</span><span class="p">,</span><span 
class="w"> </span><span class="n">Volatility</span><span class="p">,</span>
+<span class="w">    </span><span class="n">ColumnarValue</span><span 
class="p">,</span><span class="w"> </span><span class="n">Signature</span><span 
class="p">,</span><span class="w"> </span><span 
class="n">TypeSignature</span><span class="p">,</span><span class="w"> 
</span><span class="n">TypeSignatureClass</span><span class="p">,</span><span 
class="w"> </span><span class="n">Volatility</span><span 
class="p">,</span><span class="w"> </span><span 
class="n">ScalarFunctionArgs</span>
 <span class="p">};</span>
 <span class="k">use</span><span class="w"> </span><span 
class="n">datafusion</span><span class="p">::</span><span 
class="n">logical_expr_common</span><span class="p">::</span><span 
class="n">signature</span><span class="p">::</span><span 
class="n">Coercion</span><span class="p">;</span>
 <span class="k">use</span><span class="w"> </span><span 
class="n">log</span><span class="p">::</span><span class="n">trace</span><span 
class="p">;</span>
@@ -981,8 +982,9 @@ for the same input.</p></li>
 <span class="w">    </span><span class="p">}</span>
 <span class="p">}</span>
 
+<span class="sd">/// Implement the normal ScalarUDFImpl trait for 
AsyncUpper</span>
 <span class="cp">#[async_trait]</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">AsyncUpper</span><span class="w"> </span><span class="p">{</span>
+<span class="k">impl</span><span class="w"> </span><span 
class="n">ScalarUDFImpl</span><span class="w"> </span><span 
class="k">for</span><span class="w"> </span><span 
class="n">AsyncUpper</span><span class="w"> </span><span class="p">{</span>
 <span class="w">    </span><span class="k">fn</span><span class="w"> 
</span><span class="nf">as_any</span><span class="p">(</span><span 
class="o">&amp;</span><span class="bp">self</span><span class="p">)</span><span 
class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span 
class="kp">&amp;</span><span class="nc">dyn</span><span class="w"> </span><span 
class="n">Any</span><span class="w"> </span><span class="p">{</span>
 <span class="w">        </span><span class="bp">self</span>
 <span class="w">    </span><span class="p">}</span>
@@ -999,13 +1001,24 @@ for the same input.</p></li>
 <span class="w">        </span><span class="nb">Ok</span><span 
class="p">(</span><span class="n">DataType</span><span class="p">::</span><span 
class="n">Utf8</span><span class="p">)</span>
 <span class="w">    </span><span class="p">}</span>
 
+<span class="w">    </span><span class="k">fn</span><span class="w"> 
</span><span class="nf">invoke_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">ColumnarValue</span><span class="o">&gt;</span><span class="w"> 
</span><span class="p">{</span>
+<span class="w">        </span><span class="n">not_impl_err</span><span 
class="o">!</span><span class="p">(</span><span class="s">&quot;AsyncUpper can 
only be called from async contexts&quot;</span><span class="p">)</span>
+<span class="w">    </span><span class="p">}</span>
+<span class="p">}</span>
+
+<span class="sd">/// The actual implementation of the async UDF</span>
+<span class="cp">#[async_trait]</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">AsyncUpper</span><span class="w"> </span><span class="p">{</span>
 <span class="w">    </span><span class="k">fn</span><span class="w"> 
</span><span class="nf">ideal_batch_size</span><span class="p">(</span><span 
class="o">&amp;</span><span class="bp">self</span><span class="p">)</span><span 
class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span 
class="nb">Option</span><span class="o">&lt;</span><span 
class="kt">usize</span><span class="o">&gt;</span><span class="w"> </span><span 
class="p">{</span>
 <span class="w">        </span><span class="nb">Some</span><span 
class="p">(</span><span class="mi">10</span><span class="p">)</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">AsyncScalarFunctionArgs</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">ArrayRef</span><span class="o">&gt;</span><span class="w"> 
</span><span class="p">{</span>
 <span class="w">        </span><span class="n">trace</span><span 
class="o">!</span><span class="p">(</span><span class="s">&quot;Invoking 
async_upper with args: {:?}&quot;</span><span class="p">,</span><span 
class="w"> </span><span class="n">args</span><span class="p">);</span>
diff --git a/searchindex.js b/searchindex.js
index af18153a00..575988958c 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