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 9f129bdfb8 Publish built docs triggered by
d5428b21d6486e5b7db525d314ee9119a512c397
9f129bdfb8 is described below
commit 9f129bdfb876e73310549b2f64964439e9b9be5c
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Sun Feb 2 18:44:25 2025 +0000
Publish built docs triggered by d5428b21d6486e5b7db525d314ee9119a512c397
---
_sources/library-user-guide/adding-udfs.md.txt | 27 +++++++++++++-------------
library-user-guide/adding-udfs.html | 27 +++++++++++++-------------
searchindex.js | 2 +-
3 files changed, 29 insertions(+), 27 deletions(-)
diff --git a/_sources/library-user-guide/adding-udfs.md.txt
b/_sources/library-user-guide/adding-udfs.md.txt
index 2044cfaa70..a920297697 100644
--- a/_sources/library-user-guide/adding-udfs.md.txt
+++ b/_sources/library-user-guide/adding-udfs.md.txt
@@ -123,13 +123,13 @@ There is a an older, more concise, but also more limited
API [`create_udf`] avai
use std::sync::Arc;
use datafusion::arrow::array::{ArrayRef, Int64Array};
-use datafusion::common::Result;
use datafusion::common::cast::as_int64_array;
-use datafusion::physical_plan::functions::columnar_values_to_array;
+use datafusion::common::Result;
+use datafusion::logical_expr::ColumnarValue;
-pub fn add_one(args: &[ColumnarValue]) -> Result<ArrayRef> {
+pub fn add_one(args: &[ColumnarValue]) -> Result<ColumnarValue> {
// Error handling omitted for brevity
- let args = columnar_values_to_array(args)?;
+ let args = ColumnarValue::values_to_arrays(args)?;
let i64s = as_int64_array(&args[0])?;
let new_array = i64s
@@ -137,7 +137,7 @@ pub fn add_one(args: &[ColumnarValue]) -> Result<ArrayRef> {
.map(|array_elem| array_elem.map(|value| value + 1))
.collect::<Int64Array>();
- Ok(Arc::new(new_array))
+ Ok(ColumnarValue::from(Arc::new(new_array) as ArrayRef))
}
```
@@ -146,10 +146,11 @@ This "works" in isolation, i.e. if you have a slice of
`ArrayRef`s, you can call
```rust
let input = vec![Some(1), None, Some(3)];
-let input = Arc::new(Int64Array::from(input)) as ArrayRef;
+let input = ColumnarValue::from(Arc::new(Int64Array::from(input)) as ArrayRef);
-let result = add_one( & [input]).unwrap();
-let result = result.as_any().downcast_ref::<Int64Array>().unwrap();
+let result = add_one(&[input]).unwrap();
+let binding = result.into_array(1).unwrap();
+let result = binding.as_any().downcast_ref::<Int64Array>().unwrap();
assert_eq!(result, &Int64Array::from(vec![Some(2), None, Some(4)]));
```
@@ -169,11 +170,11 @@ use datafusion::arrow::datatypes::DataType;
use std::sync::Arc;
let udf = create_udf(
-"add_one",
-vec![DataType::Int64],
-Arc::new(DataType::Int64),
-Volatility::Immutable,
-Arc::new(add_one),
+ "add_one",
+ vec![DataType::Int64],
+ DataType::Int64,
+ Volatility::Immutable,
+ Arc::new(add_one),
);
```
diff --git a/library-user-guide/adding-udfs.html
b/library-user-guide/adding-udfs.html
index 53907b60e4..f3d0824a75 100644
--- a/library-user-guide/adding-udfs.html
+++ b/library-user-guide/adding-udfs.html
@@ -746,13 +746,13 @@ of arguments.</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</span><span class="p">::</span><span
class="n">arrow</span><span class="p">::</span><span
class="n">array</span><span class="p">::{</span><span
class="n">ArrayRef</span><span class="p">,</span><span class="w"> </span><span
class="n">Int64Array</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="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">cast</span><span class="p">::</span><span
class="n">as_int64_array</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">physical_plan</span><span class="p">::</span><span
class="n">functions</span><span class="p">::</span><span
class="n">columnar_values_to_array</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="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">logical_expr</span><span class="p">::</span><span
class="n">ColumnarValue</span><span class="p">;</span>
-<span class="k">pub</span><span class="w"> </span><span
class="k">fn</span><span class="w"> </span><span class="nf">add_one</span><span
class="p">(</span><span class="n">args</span><span class="p">:</span><span
class="w"> </span><span class="kp">&</span><span class="p">[</span><span
class="n">ColumnarValue</span><span class="p">])</span><span class="w">
</span><span class="p">-></span><span class="w"> </span><span
class="nb">Result</span><span class="o"><</span><span class="n"> [...]
+<span class="k">pub</span><span class="w"> </span><span
class="k">fn</span><span class="w"> </span><span class="nf">add_one</span><span
class="p">(</span><span class="n">args</span><span class="p">:</span><span
class="w"> </span><span class="kp">&</span><span class="p">[</span><span
class="n">ColumnarValue</span><span class="p">])</span><span class="w">
</span><span class="p">-></span><span class="w"> </span><span
class="nb">Result</span><span class="o"><</span><span class="n"> [...]
<span class="w"> </span><span class="c1">// Error handling omitted for
brevity</span>
-<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">args</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">columnar_values_to_array</span><span class="p">(</span><span
class="n">args</span><span class="p">)</span><span class="o">?</span><span
class="p">;</span>
+<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">args</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">ColumnarValue</span><span class="p">::</span><span
class="n">values_to_arrays</span><span class="p">(</span><span
class="n">args</span><span class="p">)</span><span class="o">?</span><span
class="p">;</span>
<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">i64s</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">as_int64_array</span><span class="p">(</span><span
class="o">&</span><span class="n">args</span><span class="p">[</span><span
class="mi">0</span><span class="p">])</span><span class="o">?</span><span
class="p">;</span>
<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">new_array</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="n">i64s</span>
@@ -760,17 +760,18 @@ of arguments.</p>
<span class="w"> </span><span class="p">.</span><span
class="n">map</span><span class="p">(</span><span class="o">|</span><span
class="n">array_elem</span><span class="o">|</span><span class="w">
</span><span class="n">array_elem</span><span class="p">.</span><span
class="n">map</span><span class="p">(</span><span class="o">|</span><span
class="n">value</span><span class="o">|</span><span class="w"> </span><span
class="n">value</span><span class="w"> </span><span class="o">+</span [...]
<span class="w"> </span><span class="p">.</span><span
class="n">collect</span><span class="p">::</span><span
class="o"><</span><span class="n">Int64Array</span><span
class="o">></span><span class="p">();</span>
-<span class="w"> </span><span class="nb">Ok</span><span
class="p">(</span><span class="n">Arc</span><span class="p">::</span><span
class="n">new</span><span class="p">(</span><span
class="n">new_array</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">Arc</span><span class="p">::</span><span class="n">new</span><span
class="p">(</span><span class="n">new_array</span><span class="p">)</span><span
class="w"> </span><span class="k">as</span><span class="w"> </span><span
class="n">ArrayRef</span><span class="p">))</span>
<span class="p">}</span>
</pre></div>
</div>
<p>This “works” in isolation, i.e. if you have a slice of <code
class="docutils literal notranslate"><span class="pre">ArrayRef</span></code>s,
you can call <code class="docutils literal notranslate"><span
class="pre">add_one</span></code> and it will return a new
<code class="docutils literal notranslate"><span
class="pre">ArrayRef</span></code> with 1 added to each value.</p>
<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">input</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="fm">vec!</span><span
class="p">[</span><span class="nb">Some</span><span class="p">(</span><span
class="mi">1</span><span class="p">),</span><span class="w"> </span><span
class="nb">None</span><span class="p">,</span><span class="w"> </span><span
[...]
-<span class="kd">let</span><span class="w"> </span><span
class="n">input</span><span class="w"> </span><span class="o">=</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">Int64Array</span><span class="p">::</span><span
class="n">from</span><span class="p">(</span><span class="n">input</span><span
class="p">))</span><span class="w"> </span><span class="k">as</span><span
class="w"> </span><span [...]
+<span class="kd">let</span><span class="w"> </span><span
class="n">input</span><span class="w"> </span><span class="o">=</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">Arc</span><span class="p">::</span><span class="n">new</span><span
class="p">(</span><span class="n">Int64Array</span><span
class="p">::</span><span class="n">from</span><span class="p">(</span><span
class="n">inp [...]
-<span class="kd">let</span><span class="w"> </span><span
class="n">result</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">add_one</span><span class="p">(</span><span
class="w"> </span><span class="o">&</span><span class="w"> </span><span
class="p">[</span><span class="n">input</span><span class="p">]).</span><span
class="n">unwrap</span><span class="p">();</span>
-<span class="kd">let</span><span class="w"> </span><span
class="n">result</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">result</span><span class="p">.</span><span
class="n">as_any</span><span class="p">().</span><span
class="n">downcast_ref</span><span class="p">::</span><span
class="o"><</span><span class="n">Int64Array</span><span
class="o">></span><span class="p">().</span><span
class="n">unwrap</span><span class="p">();</span>
+<span class="kd">let</span><span class="w"> </span><span
class="n">result</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">add_one</span><span class="p">(</span><span
class="o">&</span><span class="p">[</span><span class="n">input</span><span
class="p">]).</span><span class="n">unwrap</span><span class="p">();</span>
+<span class="kd">let</span><span class="w"> </span><span
class="n">binding</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">result</span><span class="p">.</span><span
class="n">into_array</span><span class="p">(</span><span
class="mi">1</span><span class="p">).</span><span class="n">unwrap</span><span
class="p">();</span>
+<span class="kd">let</span><span class="w"> </span><span
class="n">result</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">binding</span><span class="p">.</span><span
class="n">as_any</span><span class="p">().</span><span
class="n">downcast_ref</span><span class="p">::</span><span
class="o"><</span><span class="n">Int64Array</span><span
class="o">></span><span class="p">().</span><span
class="n">unwrap</span><span class="p">();</span>
<span class="fm">assert_eq!</span><span class="p">(</span><span
class="n">result</span><span class="p">,</span><span class="w"> </span><span
class="o">&</span><span class="n">Int64Array</span><span
class="p">::</span><span class="n">from</span><span class="p">(</span><span
class="fm">vec!</span><span class="p">[</span><span class="nb">Some</span><span
class="p">(</span><span class="mi">2</span><span class="p">),</span><span
class="w"> </span><span class="nb">None</span><span class="p [...]
</pre></div>
@@ -788,11 +789,11 @@ DataFusion provides the <a class="reference external"
href="https://docs.rs/data
<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="kd">let</span><span class="w"> </span><span
class="n">udf</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">create_udf</span><span class="p">(</span>
-<span class="s">"add_one"</span><span class="p">,</span>
-<span class="fm">vec!</span><span class="p">[</span><span
class="n">DataType</span><span class="p">::</span><span
class="n">Int64</span><span class="p">],</span>
-<span class="n">Arc</span><span class="p">::</span><span
class="n">new</span><span class="p">(</span><span
class="n">DataType</span><span class="p">::</span><span
class="n">Int64</span><span class="p">),</span>
-<span class="n">Volatility</span><span class="p">::</span><span
class="n">Immutable</span><span class="p">,</span>
-<span class="n">Arc</span><span class="p">::</span><span
class="n">new</span><span class="p">(</span><span class="n">add_one</span><span
class="p">),</span>
+<span class="w"> </span><span class="s">"add_one"</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">Int64</span><span class="p">],</span>
+<span class="w"> </span><span class="n">DataType</span><span
class="p">::</span><span class="n">Int64</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="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">add_one</span><span class="p">),</span>
<span class="p">);</span>
</pre></div>
</div>
diff --git a/searchindex.js b/searchindex.js
index e9d57d8fe3..855f454cb0 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"!=": [[48, "op-neq"]], "!~": [[48,
"op-re-not-match"]], "!~*": [[48, "op-re-not-match-i"]], "!~~": [[48, "id19"]],
"!~~*": [[48, "id20"]], "#": [[48, "op-bit-xor"]], "%": [[48, "op-modulo"]],
"&": [[48, "op-bit-and"]], "(relation, name) tuples in logical fields and
logical columns are unique": [[9,
"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]], "*":
[[48, "op-multiply"]], "+": [[48, "op-plus"]], "-": [[48, "op-minus"]], "/":
[[4 [...]
\ No newline at end of file
+Search.setIndex({"alltitles": {"!=": [[48, "op-neq"]], "!~": [[48,
"op-re-not-match"]], "!~*": [[48, "op-re-not-match-i"]], "!~~": [[48, "id19"]],
"!~~*": [[48, "id20"]], "#": [[48, "op-bit-xor"]], "%": [[48, "op-modulo"]],
"&": [[48, "op-bit-and"]], "(relation, name) tuples in logical fields and
logical columns are unique": [[9,
"relation-name-tuples-in-logical-fields-and-logical-columns-are-unique"]], "*":
[[48, "op-multiply"]], "+": [[48, "op-plus"]], "-": [[48, "op-minus"]], "/":
[[4 [...]
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]