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 e4e9cd4588 Publish built docs triggered by
35ff4ab0a03fcc6615876eac76bac19887059ab3
e4e9cd4588 is described below
commit e4e9cd45881fdfb6f1560d0b02c35d1b504189e3
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jan 8 00:39:40 2026 +0000
Publish built docs triggered by 35ff4ab0a03fcc6615876eac76bac19887059ab3
---
_sources/library-user-guide/upgrading.md.txt | 99 ++++++++++++++++++++++++++++
library-user-guide/upgrading.html | 85 ++++++++++++++++++++++++
searchindex.js | 2 +-
3 files changed, 185 insertions(+), 1 deletion(-)
diff --git a/_sources/library-user-guide/upgrading.md.txt
b/_sources/library-user-guide/upgrading.md.txt
index 61246f00df..a308e69310 100644
--- a/_sources/library-user-guide/upgrading.md.txt
+++ b/_sources/library-user-guide/upgrading.md.txt
@@ -19,6 +19,105 @@
# Upgrade Guides
+## DataFusion `53.0.0`
+
+**Note:** DataFusion `53.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.
+
+### `SimplifyInfo` trait removed, `SimplifyContext` now uses builder-style API
+
+The `SimplifyInfo` trait has been removed and replaced with the concrete
`SimplifyContext` struct. This simplifies the expression simplification API and
removes the need for trait objects.
+
+**Who is affected:**
+
+- Users who implemented custom `SimplifyInfo` implementations
+- Users who implemented `ScalarUDFImpl::simplify()` for custom scalar functions
+- Users who directly use `SimplifyContext` or `ExprSimplifier`
+
+**Breaking changes:**
+
+1. The `SimplifyInfo` trait has been removed entirely
+2. `SimplifyContext` no longer takes `&ExecutionProps` - it now uses a
builder-style API with direct fields
+3. `ScalarUDFImpl::simplify()` now takes `&SimplifyContext` instead of `&dyn
SimplifyInfo`
+4. Time-dependent function simplification (e.g., `now()`) is now optional - if
`query_execution_start_time` is `None`, these functions won't be simplified
+
+**Migration guide:**
+
+If you implemented a custom `SimplifyInfo`:
+
+**Before:**
+
+```rust,ignore
+impl SimplifyInfo for MySimplifyInfo {
+ fn is_boolean_type(&self, expr: &Expr) -> Result<bool> { ... }
+ fn nullable(&self, expr: &Expr) -> Result<bool> { ... }
+ fn execution_props(&self) -> &ExecutionProps { ... }
+ fn get_data_type(&self, expr: &Expr) -> Result<DataType> { ... }
+}
+```
+
+**After:**
+
+Use `SimplifyContext` directly with the builder-style API:
+
+```rust,ignore
+let context = SimplifyContext::default()
+ .with_schema(schema)
+ .with_config_options(config_options)
+ .with_query_execution_start_time(Some(Utc::now())); // or use
.with_current_time()
+```
+
+If you implemented `ScalarUDFImpl::simplify()`:
+
+**Before:**
+
+```rust,ignore
+fn simplify(
+ &self,
+ args: Vec<Expr>,
+ info: &dyn SimplifyInfo,
+) -> Result<ExprSimplifyResult> {
+ let now_ts = info.execution_props().query_execution_start_time;
+ // ...
+}
+```
+
+**After:**
+
+```rust,ignore
+fn simplify(
+ &self,
+ args: Vec<Expr>,
+ info: &SimplifyContext,
+) -> Result<ExprSimplifyResult> {
+ // query_execution_start_time is now Option<DateTime<Utc>>
+ // Return Original if time is not set (simplification skipped)
+ let Some(now_ts) = info.query_execution_start_time() else {
+ return Ok(ExprSimplifyResult::Original(args));
+ };
+ // ...
+}
+```
+
+If you created `SimplifyContext` from `ExecutionProps`:
+
+**Before:**
+
+```rust,ignore
+let props = ExecutionProps::new();
+let context = SimplifyContext::new(&props).with_schema(schema);
+```
+
+**After:**
+
+```rust,ignore
+let context = SimplifyContext::default()
+ .with_schema(schema)
+ .with_config_options(config_options)
+ .with_current_time(); // Sets query_execution_start_time to Utc::now()
+```
+
+See [`SimplifyContext`
documentation](https://docs.rs/datafusion-expr/latest/datafusion_expr/simplify/struct.SimplifyContext.html)
for more details.
+
## DataFusion `52.0.0`
**Note:** DataFusion `52.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.
diff --git a/library-user-guide/upgrading.html
b/library-user-guide/upgrading.html
index 05e4a2e05b..f97f0186da 100644
--- a/library-user-guide/upgrading.html
+++ b/library-user-guide/upgrading.html
@@ -404,6 +404,87 @@
-->
<section id="upgrade-guides">
<h1>Upgrade Guides<a class="headerlink" href="#upgrade-guides" title="Link to
this heading">#</a></h1>
+<section id="datafusion-53-0-0">
+<h2>DataFusion <code class="docutils literal notranslate"><span
class="pre">53.0.0</span></code><a class="headerlink" href="#datafusion-53-0-0"
title="Link to this heading">#</a></h2>
+<p><strong>Note:</strong> DataFusion <code class="docutils literal
notranslate"><span class="pre">53.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.</p>
+<section
id="simplifyinfo-trait-removed-simplifycontext-now-uses-builder-style-api">
+<h3><code class="docutils literal notranslate"><span
class="pre">SimplifyInfo</span></code> trait removed, <code class="docutils
literal notranslate"><span class="pre">SimplifyContext</span></code> now uses
builder-style API<a class="headerlink"
href="#simplifyinfo-trait-removed-simplifycontext-now-uses-builder-style-api"
title="Link to this heading">#</a></h3>
+<p>The <code class="docutils literal notranslate"><span
class="pre">SimplifyInfo</span></code> trait has been removed and replaced with
the concrete <code class="docutils literal notranslate"><span
class="pre">SimplifyContext</span></code> struct. This simplifies the
expression simplification API and removes the need for trait objects.</p>
+<p><strong>Who is affected:</strong></p>
+<ul class="simple">
+<li><p>Users who implemented custom <code class="docutils literal
notranslate"><span class="pre">SimplifyInfo</span></code>
implementations</p></li>
+<li><p>Users who implemented <code class="docutils literal notranslate"><span
class="pre">ScalarUDFImpl::simplify()</span></code> for custom scalar
functions</p></li>
+<li><p>Users who directly use <code class="docutils literal notranslate"><span
class="pre">SimplifyContext</span></code> or <code class="docutils literal
notranslate"><span class="pre">ExprSimplifier</span></code></p></li>
+</ul>
+<p><strong>Breaking changes:</strong></p>
+<ol class="arabic simple">
+<li><p>The <code class="docutils literal notranslate"><span
class="pre">SimplifyInfo</span></code> trait has been removed entirely</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">SimplifyContext</span></code> no longer takes <code class="docutils
literal notranslate"><span class="pre">&ExecutionProps</span></code> - it
now uses a builder-style API with direct fields</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">ScalarUDFImpl::simplify()</span></code> now takes <code
class="docutils literal notranslate"><span
class="pre">&SimplifyContext</span></code> instead of <code class="docutils
literal notranslate"><span class="pre">&dyn</span> <span
class="pre">SimplifyInfo</span></code></p></li>
+<li><p>Time-dependent function simplification (e.g., <code class="docutils
literal notranslate"><span class="pre">now()</span></code>) is now optional -
if <code class="docutils literal notranslate"><span
class="pre">query_execution_start_time</span></code> is <code class="docutils
literal notranslate"><span class="pre">None</span></code>, these functions
won’t be simplified</p></li>
+</ol>
+<p><strong>Migration guide:</strong></p>
+<p>If you implemented a custom <code class="docutils literal
notranslate"><span class="pre">SimplifyInfo</span></code>:</p>
+<p><strong>Before:</strong></p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="k">impl</span><span class="w">
</span><span class="n">SimplifyInfo</span><span class="w"> </span><span
class="k">for</span><span class="w"> </span><span
class="n">MySimplifyInfo</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">is_boolean_type</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">expr</span><span class="p">:</span><span
class="w"> </span><span class="kp">&</span><span
class="nc">Expr</span><span class="p">)</span><span class="w"> </span><span
class="p">-></span><span class="w"> </span><span class="nb"> [...]
+<span class="w"> </span><span class="k">fn</span><span class="w">
</span><span class="nf">nullable</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">expr</span><span class="p">:</span><span
class="w"> </span><span class="kp">&</span><span
class="nc">Expr</span><span class="p">)</span><span class="w"> </span><span
class="p">-></span><span class="w"> </span><span class="nb">Result< [...]
+<span class="w"> </span><span class="k">fn</span><span class="w">
</span><span class="nf">execution_props</span><span class="p">(</span><span
class="o">&</span><span class="bp">self</span><span class="p">)</span><span
class="w"> </span><span class="p">-></span><span class="w"> </span><span
class="kp">&</span><span class="nc">ExecutionProps</span><span class="w">
</span><span class="p">{</span><span class="w"> </span><span
class="o">..</span><span class="p">.</span><span cla [...]
+<span class="w"> </span><span class="k">fn</span><span class="w">
</span><span class="nf">get_data_type</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">expr</span><span class="p">:</span><span
class="w"> </span><span class="kp">&</span><span
class="nc">Expr</span><span class="p">)</span><span class="w"> </span><span
class="p">-></span><span class="w"> </span><span class="nb">Re [...]
+<span class="p">}</span>
+</pre></div>
+</div>
+<p><strong>After:</strong></p>
+<p>Use <code class="docutils literal notranslate"><span
class="pre">SimplifyContext</span></code> directly with the builder-style
API:</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">context</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">SimplifyContext</span><span class="p">::</span><span
class="n">default</span><span class="p">()</span>
+<span class="w"> </span><span class="p">.</span><span
class="n">with_schema</span><span class="p">(</span><span
class="n">schema</span><span class="p">)</span>
+<span class="w"> </span><span class="p">.</span><span
class="n">with_config_options</span><span class="p">(</span><span
class="n">config_options</span><span class="p">)</span>
+<span class="w"> </span><span class="p">.</span><span
class="n">with_query_execution_start_time</span><span class="p">(</span><span
class="nb">Some</span><span class="p">(</span><span class="n">Utc</span><span
class="p">::</span><span class="n">now</span><span class="p">()));</span><span
class="w"> </span><span class="c1">// or use .with_current_time()</span>
+</pre></div>
+</div>
+<p>If you implemented <code class="docutils literal notranslate"><span
class="pre">ScalarUDFImpl::simplify()</span></code>:</p>
+<p><strong>Before:</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">simplify</span><span class="p">(</span>
+<span class="w"> </span><span class="o">&</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="nb">Vec</span><span
class="o"><</span><span class="n">Expr</span><span
class="o">></span><span class="p">,</span>
+<span class="w"> </span><span class="n">info</span><span
class="p">:</span><span class="w"> </span><span class="kp">&</span><span
class="nc">dyn</span><span class="w"> </span><span
class="n">SimplifyInfo</span><span class="p">,</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">ExprSimplifyResult</span><span class="o">></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">now_ts</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="n">info</span><span
class="p">.</span><span class="n">execution_props</span><span
class="p">().</span><span class="n">query_execution_start_time</span><span
class="p">;</span>
+<span class="w"> </span><span class="c1">// ...</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">simplify</span><span class="p">(</span>
+<span class="w"> </span><span class="o">&</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="nb">Vec</span><span
class="o"><</span><span class="n">Expr</span><span
class="o">></span><span class="p">,</span>
+<span class="w"> </span><span class="n">info</span><span
class="p">:</span><span class="w"> </span><span class="kp">&</span><span
class="nc">SimplifyContext</span><span class="p">,</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">ExprSimplifyResult</span><span class="o">></span><span class="w">
</span><span class="p">{</span>
+<span class="w"> </span><span class="c1">// query_execution_start_time is
now Option<DateTime<Utc>></span>
+<span class="w"> </span><span class="c1">// Return Original if time is not
set (simplification skipped)</span>
+<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="nb">Some</span><span class="p">(</span><span
class="n">now_ts</span><span class="p">)</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="n">info</span><span
class="p">.</span><span class="n">query_execution_start_time</span><span
class="p">()</span><span class="w"> </span><span class="k">else</span><span
class="w"> </span><span class="p">{</span>
+<span class="w"> </span><span class="k">return</span><span class="w">
</span><span class="nb">Ok</span><span class="p">(</span><span
class="n">ExprSimplifyResult</span><span class="p">::</span><span
class="n">Original</span><span class="p">(</span><span
class="n">args</span><span class="p">));</span>
+<span class="w"> </span><span class="p">};</span>
+<span class="w"> </span><span class="c1">// ...</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>If you created <code class="docutils literal notranslate"><span
class="pre">SimplifyContext</span></code> from <code class="docutils literal
notranslate"><span class="pre">ExecutionProps</span></code>:</p>
+<p><strong>Before:</strong></p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">props</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">ExecutionProps</span><span class="p">::</span><span
class="n">new</span><span class="p">();</span>
+<span class="kd">let</span><span class="w"> </span><span
class="n">context</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">SimplifyContext</span><span
class="p">::</span><span class="n">new</span><span class="p">(</span><span
class="o">&</span><span class="n">props</span><span
class="p">).</span><span class="n">with_schema</span><span
class="p">(</span><span class="n">schema</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="kd">let</span><span class="w">
</span><span class="n">context</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">SimplifyContext</span><span class="p">::</span><span
class="n">default</span><span class="p">()</span>
+<span class="w"> </span><span class="p">.</span><span
class="n">with_schema</span><span class="p">(</span><span
class="n">schema</span><span class="p">)</span>
+<span class="w"> </span><span class="p">.</span><span
class="n">with_config_options</span><span class="p">(</span><span
class="n">config_options</span><span class="p">)</span>
+<span class="w"> </span><span class="p">.</span><span
class="n">with_current_time</span><span class="p">();</span><span class="w">
</span><span class="c1">// Sets query_execution_start_time to Utc::now()</span>
+</pre></div>
+</div>
+<p>See <a class="reference external"
href="https://docs.rs/datafusion-expr/latest/datafusion_expr/simplify/struct.SimplifyContext.html"><code
class="docutils literal notranslate"><span
class="pre">SimplifyContext</span></code> documentation</a> for more
details.</p>
+</section>
+</section>
<section id="datafusion-52-0-0">
<h2>DataFusion <code class="docutils literal notranslate"><span
class="pre">52.0.0</span></code><a class="headerlink" href="#datafusion-52-0-0"
title="Link to this heading">#</a></h2>
<p><strong>Note:</strong> DataFusion <code class="docutils literal
notranslate"><span class="pre">52.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.</p>
@@ -2115,6 +2196,10 @@ take care of constructing the <code class="docutils
literal notranslate"><span c
</div>
<nav class="bd-toc-nav page-toc"
aria-labelledby="pst-page-navigation-heading-2">
<ul class="visible nav section-nav flex-column">
+<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link"
href="#datafusion-53-0-0">DataFusion <code class="docutils literal
notranslate"><span class="pre">53.0.0</span></code></a><ul class="nav
section-nav flex-column">
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#simplifyinfo-trait-removed-simplifycontext-now-uses-builder-style-api"><code
class="docutils literal notranslate"><span
class="pre">SimplifyInfo</span></code> trait removed, <code class="docutils
literal notranslate"><span class="pre">SimplifyContext</span></code> now uses
builder-style API</a></li>
+</ul>
+</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link"
href="#datafusion-52-0-0">DataFusion <code class="docutils literal
notranslate"><span class="pre">52.0.0</span></code></a><ul class="nav
section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#changes-to-dfschema-api">Changes to DFSchema API</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#listingtableprovider-now-caches-list-commands">ListingTableProvider now
caches <code class="docutils literal notranslate"><span
class="pre">LIST</span></code> commands</a></li>
diff --git a/searchindex.js b/searchindex.js
index e67b6addea..fc26ea5c38 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"!=":[[61,"op-neq"]],"!~":[[61,"op-re-not-match"]],"!~*":[[61,"op-re-not-match-i"]],"!~~":[[61,"id19"]],"!~~*":[[61,"id20"]],"#":[[61,"op-bit-xor"]],"%":[[61,"op-modulo"]],"&":[[61,"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"]],"*":[[61,"op-multiply"]],"+":[[61,"op-plus"]],"-":[[61,"op-minus"]],"/":[[61,"op-divide"]],"<":[[61,"op-lt"]],"<
[...]
\ No newline at end of file
+Search.setIndex({"alltitles":{"!=":[[61,"op-neq"]],"!~":[[61,"op-re-not-match"]],"!~*":[[61,"op-re-not-match-i"]],"!~~":[[61,"id19"]],"!~~*":[[61,"id20"]],"#":[[61,"op-bit-xor"]],"%":[[61,"op-modulo"]],"&":[[61,"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"]],"*":[[61,"op-multiply"]],"+":[[61,"op-plus"]],"-":[[61,"op-minus"]],"/":[[61,"op-divide"]],"<":[[61,"op-lt"]],"<
[...]
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]