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 9fa011e028 Publish built docs triggered by
84a22eaa327ee8ad495f53e8c32e20da81ed4d86
9fa011e028 is described below
commit 9fa011e0288217405d6d5a63518a8736006c765c
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Mar 9 23:35:55 2026 +0000
Publish built docs triggered by 84a22eaa327ee8ad495f53e8c32e20da81ed4d86
---
.../library-user-guide/upgrading/54.0.0.md.txt | 33 +++++++++++++++++++++-
library-user-guide/upgrading/54.0.0.html | 26 +++++++++++++++++
searchindex.js | 2 +-
3 files changed, 59 insertions(+), 2 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 85cb8e9dd0..77b4fb6f71 100644
--- a/_sources/library-user-guide/upgrading/54.0.0.md.txt
+++ b/_sources/library-user-guide/upgrading/54.0.0.md.txt
@@ -77,7 +77,7 @@ fn apply_expressions(
**Node whose only expressions are in `output_ordering()` (e.g. a synthetic
test node with no owned expression fields):**
-```rust,ignore
+````rust,ignore
fn apply_expressions(
&self,
f: &mut dyn FnMut(&dyn PhysicalExpr) -> Result<TreeNodeRecursion>,
@@ -90,4 +90,35 @@ fn apply_expressions(
}
Ok(tnr)
}
+
+### `ExecutionPlan::partition_statistics` now returns `Arc<Statistics>`
+
+`ExecutionPlan::partition_statistics` now returns `Result<Arc<Statistics>>`
instead of `Result<Statistics>`. This avoids cloning `Statistics` when it is
shared across multiple consumers.
+
+**Before:**
+
+```rust,ignore
+fn partition_statistics(&self, partition: Option<usize>) -> Result<Statistics>
{
+ Ok(Statistics::new_unknown(&self.schema()))
+}
+````
+
+**After:**
+
+```rust,ignore
+fn partition_statistics(&self, partition: Option<usize>) ->
Result<Arc<Statistics>> {
+ Ok(Arc::new(Statistics::new_unknown(&self.schema())))
+}
+```
+
+If you need an owned `Statistics` value (e.g. to mutate it), use
`Arc::unwrap_or_clone`:
+
+```rust,ignore
+// If you previously consumed the Statistics directly:
+let stats = plan.partition_statistics(None)?;
+stats.column_statistics[0].min_value = ...;
+
+// Now unwrap the Arc first:
+let mut stats = Arc::unwrap_or_clone(plan.partition_statistics(None)?);
+stats.column_statistics[0].min_value = ...;
```
diff --git a/library-user-guide/upgrading/54.0.0.html
b/library-user-guide/upgrading/54.0.0.html
index bd93aca421..79b873b92b 100644
--- a/library-user-guide/upgrading/54.0.0.html
+++ b/library-user-guide/upgrading/54.0.0.html
@@ -481,6 +481,32 @@ to the main branch and are awaiting release in this
version.</p>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="nb">Ok</span><span
class="p">(</span><span class="n">tnr</span><span class="p">)</span>
<span class="p">}</span>
+
+<span class="p">###</span><span class="w"> </span><span
class="err">`</span><span class="n">ExecutionPlan</span><span
class="p">::</span><span class="n">partition_statistics</span><span
class="err">`</span><span class="w"> </span><span class="n">now</span><span
class="w"> </span><span class="n">returns</span><span class="w"> </span><span
class="err">`</span><span class="n">Arc</span><span class="o"><</span><span
class="n">Statistics</span><span class="o">></span><span class="err">`</span>
+
+<span class="err">`</span><span class="n">ExecutionPlan</span><span
class="p">::</span><span class="n">partition_statistics</span><span
class="err">`</span><span class="w"> </span><span class="n">now</span><span
class="w"> </span><span class="n">returns</span><span class="w"> </span><span
class="err">`</span><span class="nb">Result</span><span
class="o"><</span><span class="n">Arc</span><span class="o"><</span><span
class="n">Statistics</span><span class="o">>></span><span cl [...]
+
+<span class="o">**</span><span class="n">Before</span><span
class="p">:</span><span class="o">**</span>
+<span class="err">```</span><span class="n">rust</span><span
class="p">,</span><span class="n">ignore</span>
+<span class="k">fn</span><span class="w"> </span><span
class="nf">partition_statistics</span><span class="p">(</span><span
class="o">&</span><span class="bp">self</span><span class="p">,</span><span
class="w"> </span><span class="n">partition</span><span class="p">:</span><span
class="w"> </span><span class="nb">Option</span><span
class="o"><</span><span class="kt">usize</span><span
class="o">></span><span class="p">)</span><span class="w"> </span><span
class="p">-></span><s [...]
+<span class="w"> </span><span class="nb">Ok</span><span
class="p">(</span><span class="n">Statistics</span><span
class="p">::</span><span class="n">new_unknown</span><span
class="p">(</span><span class="o">&</span><span class="bp">self</span><span
class="p">.</span><span class="n">schema</span><span class="p">()))</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p><strong>After:</strong></p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="k">fn</span><span class="w">
</span><span class="nf">partition_statistics</span><span
class="p">(</span><span class="o">&</span><span class="bp">self</span><span
class="p">,</span><span class="w"> </span><span class="n">partition</span><span
class="p">:</span><span class="w"> </span><span class="nb">Option</span><span
class="o"><</span><span class="kt">usize</span><span class="o">></sp [...]
+<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">Statistics</span><span class="p">::</span><span
class="n">new_unknown</span><span class="p">(</span><span
class="o">&</span><span class="bp">self</span><span class="p">.</span><span
class="n">schema</span><span class="p">())))</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>If you need an owned <code class="docutils literal notranslate"><span
class="pre">Statistics</span></code> value (e.g. to mutate it), use <code
class="docutils literal notranslate"><span
class="pre">Arc::unwrap_or_clone</span></code>:</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="c1">// If you previously
consumed the Statistics directly:</span>
+<span class="kd">let</span><span class="w"> </span><span
class="n">stats</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">plan</span><span class="p">.</span><span
class="n">partition_statistics</span><span class="p">(</span><span
class="nb">None</span><span class="p">)</span><span class="o">?</span><span
class="p">;</span>
+<span class="n">stats</span><span class="p">.</span><span
class="n">column_statistics</span><span class="p">[</span><span
class="mi">0</span><span class="p">].</span><span
class="n">min_value</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="o">..</span><span class="p">.;</span>
+
+<span class="c1">// Now unwrap the Arc first:</span>
+<span class="kd">let</span><span class="w"> </span><span
class="k">mut</span><span class="w"> </span><span class="n">stats</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">unwrap_or_clone</span><span class="p">(</span><span
class="n">plan</span><span class="p">.</span><span
class="n">partition_statistics</span><span class="p">(</span><span
class="nb">None</span><span class="p">)</span><span cl [...]
+<span class="n">stats</span><span class="p">.</span><span
class="n">column_statistics</span><span class="p">[</span><span
class="mi">0</span><span class="p">].</span><span
class="n">min_value</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="o">..</span><span class="p">.;</span>
</pre></div>
</div>
</section>
diff --git a/searchindex.js b/searchindex.js
index 884bbcdd6b..7c4f69e687 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]