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 9974ba22cc Publish built docs triggered by
1ed6e5138f6e18f2325739af7f03af6fc9611e53
9974ba22cc is described below
commit 9974ba22cc44c52c15bf2951c7261ce8c5a954b7
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Nov 5 01:47:02 2025 +0000
Publish built docs triggered by 1ed6e5138f6e18f2325739af7f03af6fc9611e53
---
.../functions/adding-udfs.md.txt | 48 +++++++---------------
library-user-guide/functions/adding-udfs.html | 43 +++++++------------
searchindex.js | 2 +-
3 files changed, 30 insertions(+), 63 deletions(-)
diff --git a/_sources/library-user-guide/functions/adding-udfs.md.txt
b/_sources/library-user-guide/functions/adding-udfs.md.txt
index 7581d8b650..e56790a4b7 100644
--- a/_sources/library-user-guide/functions/adding-udfs.md.txt
+++ b/_sources/library-user-guide/functions/adding-udfs.md.txt
@@ -588,10 +588,17 @@ For async UDF implementation details, see
[`async_udf.rs`](https://github.com/ap
## Named Arguments
-DataFusion supports PostgreSQL-style named arguments for scalar functions,
allowing you to pass arguments by parameter name:
+DataFusion supports named arguments for Scalar, Window, and Aggregate UDFs,
allowing you to pass arguments by parameter name:
```sql
+-- Scalar function
SELECT substr(str => 'hello', start_pos => 2, length => 3);
+
+-- Window function
+SELECT lead(expr => value, offset => 1) OVER (ORDER BY id) FROM table;
+
+-- Aggregate function
+SELECT corr(y => col1, x => col2) FROM table;
```
Named arguments can be mixed with positional arguments, but positional
arguments must come first:
@@ -602,38 +609,7 @@ SELECT substr('hello', start_pos => 2, length => 3); --
Valid
### Implementing Functions with Named Arguments
-To support named arguments in your UDF, add parameter names to your function's
signature using `.with_parameter_names()`:
-
-```rust
-# use arrow::datatypes::DataType;
-# use datafusion_expr::{Signature, Volatility};
-#
-# #[derive(Debug)]
-# struct MyFunction {
-# signature: Signature,
-# }
-#
-impl MyFunction {
- fn new() -> Self {
- Self {
- signature: Signature::uniform(
- 2,
- vec![DataType::Float64],
- Volatility::Immutable
- )
- .with_parameter_names(vec![
- "base".to_string(),
- "exponent".to_string()
- ])
- .expect("valid parameter names"),
- }
- }
-}
-```
-
-The parameter names should match the order of arguments in your function's
signature. DataFusion automatically resolves named arguments to the correct
positional order before invoking your function.
-
-### Example
+To support named arguments in your UDF, add parameter names to your function's
signature using `.with_parameter_names()`. This works the same way for Scalar,
Window, and Aggregate UDFs:
```rust
# use std::sync::Arc;
@@ -681,10 +657,14 @@ impl ScalarUDFImpl for PowerFunction {
}
```
-Once registered, users can call your function with named arguments:
+The parameter names should match the order of arguments in your function's
signature. DataFusion automatically resolves named arguments to the correct
positional order before invoking your function.
+
+Once registered, users can call your functions with named arguments in any
order:
```sql
+-- All equivalent
SELECT power(base => 2.0, exponent => 3.0);
+SELECT power(exponent => 3.0, base => 2.0);
SELECT power(2.0, exponent => 3.0);
```
diff --git a/library-user-guide/functions/adding-udfs.html
b/library-user-guide/functions/adding-udfs.html
index d193c30030..44309618c7 100644
--- a/library-user-guide/functions/adding-udfs.html
+++ b/library-user-guide/functions/adding-udfs.html
@@ -744,8 +744,15 @@ UDF.</p>
</section>
<section id="named-arguments">
<h2>Named Arguments<a class="headerlink" href="#named-arguments" title="Link
to this heading">#</a></h2>
-<p>DataFusion supports PostgreSQL-style named arguments for scalar functions,
allowing you to pass arguments by parameter name:</p>
-<div class="highlight-sql notranslate"><div
class="highlight"><pre><span></span><span class="k">SELECT</span><span
class="w"> </span><span class="n">substr</span><span class="p">(</span><span
class="n">str</span><span class="w"> </span><span class="o">=></span><span
class="w"> </span><span class="s1">'hello'</span><span
class="p">,</span><span class="w"> </span><span class="n">start_pos</span><span
class="w"> </span><span class="o">=></span><span class="w"> </span><span cla
[...]
+<p>DataFusion supports named arguments for Scalar, Window, and Aggregate UDFs,
allowing you to pass arguments by parameter name:</p>
+<div class="highlight-sql notranslate"><div
class="highlight"><pre><span></span><span class="c1">-- Scalar function</span>
+<span class="k">SELECT</span><span class="w"> </span><span
class="n">substr</span><span class="p">(</span><span class="n">str</span><span
class="w"> </span><span class="o">=></span><span class="w"> </span><span
class="s1">'hello'</span><span class="p">,</span><span class="w">
</span><span class="n">start_pos</span><span class="w"> </span><span
class="o">=></span><span class="w"> </span><span class="mi">2</span><span
class="p">,</span><span class="w"> </span><span class="k"> [...]
+
+<span class="c1">-- Window function</span>
+<span class="k">SELECT</span><span class="w"> </span><span
class="n">lead</span><span class="p">(</span><span class="n">expr</span><span
class="w"> </span><span class="o">=></span><span class="w"> </span><span
class="n">value</span><span class="p">,</span><span class="w"> </span><span
class="k">offset</span><span class="w"> </span><span
class="o">=></span><span class="w"> </span><span class="mi">1</span><span
class="p">)</span><span class="w"> </span><span class="n">OVER</span><spa [...]
+
+<span class="c1">-- Aggregate function</span>
+<span class="k">SELECT</span><span class="w"> </span><span
class="n">corr</span><span class="p">(</span><span class="n">y</span><span
class="w"> </span><span class="o">=></span><span class="w"> </span><span
class="n">col1</span><span class="p">,</span><span class="w"> </span><span
class="n">x</span><span class="w"> </span><span class="o">=></span><span
class="w"> </span><span class="n">col2</span><span class="p">)</span><span
class="w"> </span><span class="k">FROM</span><span class [...]
</pre></div>
</div>
<p>Named arguments can be mixed with positional arguments, but positional
arguments must come first:</p>
@@ -754,29 +761,7 @@ UDF.</p>
</div>
<section id="implementing-functions-with-named-arguments">
<h3>Implementing Functions with Named Arguments<a class="headerlink"
href="#implementing-functions-with-named-arguments" title="Link to this
heading">#</a></h3>
-<p>To support named arguments in your UDF, add parameter names to your
function’s signature using <code class="docutils literal notranslate"><span
class="pre">.with_parameter_names()</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">MyFunction</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">new</span><span class="p">()</span><span class="w">
</span><span class="p">-></span><span class="w"> </span><span
class="nc">Self</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>
-<span class="w"> </span><span class="n">signature</span><span
class="p">:</span><span class="w"> </span><span
class="nc">Signature</span><span class="p">::</span><span
class="n">uniform</span><span class="p">(</span>
-<span class="w"> </span><span class="mi">2</span><span
class="p">,</span>
-<span class="w"> </span><span class="fm">vec!</span><span
class="p">[</span><span class="n">DataType</span><span class="p">::</span><span
class="n">Float64</span><span class="p">],</span>
-<span class="w"> </span><span class="n">Volatility</span><span
class="p">::</span><span class="n">Immutable</span>
-<span class="w"> </span><span class="p">)</span>
-<span class="w"> </span><span class="p">.</span><span
class="n">with_parameter_names</span><span class="p">(</span><span
class="fm">vec!</span><span class="p">[</span>
-<span class="w"> </span><span
class="s">"base"</span><span class="p">.</span><span
class="n">to_string</span><span class="p">(),</span>
-<span class="w"> </span><span
class="s">"exponent"</span><span class="p">.</span><span
class="n">to_string</span><span class="p">()</span>
-<span class="w"> </span><span class="p">])</span>
-<span class="w"> </span><span class="p">.</span><span
class="n">expect</span><span class="p">(</span><span class="s">"valid
parameter names"</span><span class="p">),</span>
-<span class="w"> </span><span class="p">}</span>
-<span class="w"> </span><span class="p">}</span>
-<span class="p">}</span>
-</pre></div>
-</div>
-<p>The parameter names should match the order of arguments in your function’s
signature. DataFusion automatically resolves named arguments to the correct
positional order before invoking your function.</p>
-</section>
-<section id="example">
-<h3>Example<a class="headerlink" href="#example" title="Link to this
heading">#</a></h3>
+<p>To support named arguments in your UDF, add parameter names to your
function’s signature using <code class="docutils literal notranslate"><span
class="pre">.with_parameter_names()</span></code>. This works the same way for
Scalar, Window, and Aggregate UDFs:</p>
<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="cp">#[derive(Debug, PartialEq,
Eq, Hash)]</span>
<span class="k">struct</span><span class="w"> </span><span
class="nc">PowerFunction</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">signature</span><span
class="p">:</span><span class="w"> </span><span
class="nc">Signature</span><span class="p">,</span>
@@ -815,8 +800,11 @@ UDF.</p>
<span class="p">}</span>
</pre></div>
</div>
-<p>Once registered, users can call your function with named arguments:</p>
-<div class="highlight-sql notranslate"><div
class="highlight"><pre><span></span><span class="k">SELECT</span><span
class="w"> </span><span class="n">power</span><span class="p">(</span><span
class="n">base</span><span class="w"> </span><span class="o">=></span><span
class="w"> </span><span class="mi">2</span><span class="p">.</span><span
class="mi">0</span><span class="p">,</span><span class="w"> </span><span
class="n">exponent</span><span class="w"> </span><span class="o">=></span
[...]
+<p>The parameter names should match the order of arguments in your function’s
signature. DataFusion automatically resolves named arguments to the correct
positional order before invoking your function.</p>
+<p>Once registered, users can call your functions with named arguments in any
order:</p>
+<div class="highlight-sql notranslate"><div
class="highlight"><pre><span></span><span class="c1">-- All equivalent</span>
+<span class="k">SELECT</span><span class="w"> </span><span
class="n">power</span><span class="p">(</span><span class="n">base</span><span
class="w"> </span><span class="o">=></span><span class="w"> </span><span
class="mi">2</span><span class="p">.</span><span class="mi">0</span><span
class="p">,</span><span class="w"> </span><span class="n">exponent</span><span
class="w"> </span><span class="o">=></span><span class="w"> </span><span
class="mi">3</span><span class="p">.</span><span [...]
+<span class="k">SELECT</span><span class="w"> </span><span
class="n">power</span><span class="p">(</span><span
class="n">exponent</span><span class="w"> </span><span
class="o">=></span><span class="w"> </span><span class="mi">3</span><span
class="p">.</span><span class="mi">0</span><span class="p">,</span><span
class="w"> </span><span class="n">base</span><span class="w"> </span><span
class="o">=></span><span class="w"> </span><span class="mi">2</span><span
class="p">.</span><span [...]
<span class="k">SELECT</span><span class="w"> </span><span
class="n">power</span><span class="p">(</span><span class="mi">2</span><span
class="p">.</span><span class="mi">0</span><span class="p">,</span><span
class="w"> </span><span class="n">exponent</span><span class="w"> </span><span
class="o">=></span><span class="w"> </span><span class="mi">3</span><span
class="p">.</span><span class="mi">0</span><span class="p">);</span>
</pre></div>
</div>
@@ -1409,7 +1397,6 @@ validation of the input <code class="docutils literal
notranslate"><span class="
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link"
href="#named-arguments">Named Arguments</a><ul class="nav section-nav
flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#implementing-functions-with-named-arguments">Implementing Functions with
Named Arguments</a></li>
-<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#example">Example</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#error-messages">Error Messages</a></li>
</ul>
</li>
diff --git a/searchindex.js b/searchindex.js
index 806ddfb557..e012648f02 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"!=":[[60,"op-neq"]],"!~":[[60,"op-re-not-match"]],"!~*":[[60,"op-re-not-match-i"]],"!~~":[[60,"id19"]],"!~~*":[[60,"id20"]],"#":[[60,"op-bit-xor"]],"%":[[60,"op-modulo"]],"&":[[60,"op-bit-and"]],"(relation,
name) tuples in logical fields and logical columns are
unique":[[13,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[60,"op-multiply"]],"+":[[60,"op-plus"]],"-":[[60,"op-minus"]],"/":[[60,"op-divide"]],"<":[[60,"op-lt"]],"<
[...]
\ No newline at end of file
+Search.setIndex({"alltitles":{"!=":[[60,"op-neq"]],"!~":[[60,"op-re-not-match"]],"!~*":[[60,"op-re-not-match-i"]],"!~~":[[60,"id19"]],"!~~*":[[60,"id20"]],"#":[[60,"op-bit-xor"]],"%":[[60,"op-modulo"]],"&":[[60,"op-bit-and"]],"(relation,
name) tuples in logical fields and logical columns are
unique":[[13,"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]],"*":[[60,"op-multiply"]],"+":[[60,"op-plus"]],"-":[[60,"op-minus"]],"/":[[60,"op-divide"]],"<":[[60,"op-lt"]],"<
[...]
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]