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 efbcdf47df Publish built docs triggered by
6eb8d45c122cf4c690bf3e8521c529ec720b549b
efbcdf47df is described below
commit efbcdf47dfa5e3b7e38fabd9a5d8d616624c37f2
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Oct 27 18:48:28 2025 +0000
Publish built docs triggered by 6eb8d45c122cf4c690bf3e8521c529ec720b549b
---
_sources/library-user-guide/upgrading.md.txt | 51 ++++++++++++++++++++++++++++
library-user-guide/upgrading.html | 33 ++++++++++++++++++
searchindex.js | 2 +-
3 files changed, 85 insertions(+), 1 deletion(-)
diff --git a/_sources/library-user-guide/upgrading.md.txt
b/_sources/library-user-guide/upgrading.md.txt
index 4174fef7a6..c568b8b28e 100644
--- a/_sources/library-user-guide/upgrading.md.txt
+++ b/_sources/library-user-guide/upgrading.md.txt
@@ -125,6 +125,57 @@ Users may need to update their paths to account for these
changes.
See [issue #17713] for more details.
+### `FileScanConfig::projection` renamed to `FileScanConfig::projection_exprs`
+
+The `projection` field in `FileScanConfig` has been renamed to
`projection_exprs` and its type has changed from `Option<Vec<usize>>` to
`Option<ProjectionExprs>`. This change enables more powerful projection
pushdown capabilities by supporting arbitrary physical expressions rather than
just column indices.
+
+**Impact on direct field access:**
+
+If you directly access the `projection` field:
+
+```rust
+# /* comment to avoid running
+let config: FileScanConfig = ...;
+let projection = config.projection;
+# */
+```
+
+You should update to:
+
+```rust
+# /* comment to avoid running
+let config: FileScanConfig = ...;
+let projection_exprs = config.projection_exprs;
+# */
+```
+
+**Impact on builders:**
+
+The `FileScanConfigBuilder::with_projection()` method has been deprecated in
favor of `with_projection_indices()`:
+
+```diff
+let config = FileScanConfigBuilder::new(url, schema, file_source)
+- .with_projection(Some(vec![0, 2, 3]))
++ .with_projection_indices(Some(vec![0, 2, 3]))
+ .build();
+```
+
+Note: `with_projection()` still works but is deprecated and will be removed in
a future release.
+
+**What is `ProjectionExprs`?**
+
+`ProjectionExprs` is a new type that represents a list of physical expressions
for projection. While it can be constructed from column indices (which is what
`with_projection_indices` does internally), it also supports arbitrary physical
expressions, enabling advanced features like expression evaluation during
scanning.
+
+You can access column indices from `ProjectionExprs` using its methods if
needed:
+
+```rust
+# /* comment to avoid running
+let projection_exprs: ProjectionExprs = ...;
+// Get the column indices if the projection only contains simple column
references
+let indices = projection_exprs.column_indices();
+# */
+```
+
### `DESCRIBE query` support
`DESCRIBE query` was previously an alias for `EXPLAIN query`, which outputs the
diff --git a/library-user-guide/upgrading.html
b/library-user-guide/upgrading.html
index 86dd54fc9a..fe81df1f4e 100644
--- a/library-user-guide/upgrading.html
+++ b/library-user-guide/upgrading.html
@@ -812,6 +812,38 @@ This follows the pattern for the AVRO, CSV, JSON, and
Parquet data sources.
Users may need to update their paths to account for these changes.</p>
<p>See <a class="reference external"
href="https://github.com/apache/datafusion/issues/17713">issue #17713</a> for
more details.</p>
</section>
+<section
id="filescanconfig-projection-renamed-to-filescanconfig-projection-exprs">
+<h3><code class="docutils literal notranslate"><span
class="pre">FileScanConfig::projection</span></code> renamed to <code
class="docutils literal notranslate"><span
class="pre">FileScanConfig::projection_exprs</span></code><a class="headerlink"
href="#filescanconfig-projection-renamed-to-filescanconfig-projection-exprs"
title="Link to this heading">#</a></h3>
+<p>The <code class="docutils literal notranslate"><span
class="pre">projection</span></code> field in <code class="docutils literal
notranslate"><span class="pre">FileScanConfig</span></code> has been renamed to
<code class="docutils literal notranslate"><span
class="pre">projection_exprs</span></code> and its type has changed from <code
class="docutils literal notranslate"><span
class="pre">Option<Vec<usize>></span></code> to <code
class="docutils literal notranslate"><span [...]
+<p><strong>Impact on direct field access:</strong></p>
+<p>If you directly access the <code class="docutils literal notranslate"><span
class="pre">projection</span></code> field:</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">config</span><span class="p">:</span><span class="w">
</span><span class="nc">FileScanConfig</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="o">..</span><span
class="p">.;</span>
+<span class="kd">let</span><span class="w"> </span><span
class="n">projection</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="n">config</span><span
class="p">.</span><span class="n">projection</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>You should update to:</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">config</span><span class="p">:</span><span class="w">
</span><span class="nc">FileScanConfig</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="o">..</span><span
class="p">.;</span>
+<span class="kd">let</span><span class="w"> </span><span
class="n">projection_exprs</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="n">config</span><span
class="p">.</span><span class="n">projection_exprs</span><span
class="p">;</span>
+</pre></div>
+</div>
+<p><strong>Impact on builders:</strong></p>
+<p>The <code class="docutils literal notranslate"><span
class="pre">FileScanConfigBuilder::with_projection()</span></code> method has
been deprecated in favor of <code class="docutils literal notranslate"><span
class="pre">with_projection_indices()</span></code>:</p>
+<div class="highlight-diff notranslate"><div
class="highlight"><pre><span></span>let config =
FileScanConfigBuilder::new(url, schema, file_source)
+<span class="gd">- .with_projection(Some(vec![0, 2, 3]))</span>
+<span class="gi">+ .with_projection_indices(Some(vec![0, 2, 3]))</span>
+<span class="w"> </span> .build();
+</pre></div>
+</div>
+<p>Note: <code class="docutils literal notranslate"><span
class="pre">with_projection()</span></code> still works but is deprecated and
will be removed in a future release.</p>
+<p><strong>What is <code class="docutils literal notranslate"><span
class="pre">ProjectionExprs</span></code>?</strong></p>
+<p><code class="docutils literal notranslate"><span
class="pre">ProjectionExprs</span></code> is a new type that represents a list
of physical expressions for projection. While it can be constructed from column
indices (which is what <code class="docutils literal notranslate"><span
class="pre">with_projection_indices</span></code> does internally), it also
supports arbitrary physical expressions, enabling advanced features like
expression evaluation during scanning.</p>
+<p>You can access column indices from <code class="docutils literal
notranslate"><span class="pre">ProjectionExprs</span></code> using its methods
if needed:</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">projection_exprs</span><span class="p">:</span><span
class="w"> </span><span class="nc">ProjectionExprs</span><span class="w">
</span><span class="o">=</span><span class="w"> </span><span
class="o">..</span><span class="p">.;</span>
+<span class="c1">// Get the column indices if the projection only contains
simple column references</span>
+<span class="kd">let</span><span class="w"> </span><span
class="n">indices</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">projection_exprs</span><span
class="p">.</span><span class="n">column_indices</span><span
class="p">();</span>
+</pre></div>
+</div>
+</section>
<section id="describe-query-support">
<h3><code class="docutils literal notranslate"><span
class="pre">DESCRIBE</span> <span class="pre">query</span></code> support<a
class="headerlink" href="#describe-query-support" title="Link to this
heading">#</a></h3>
<p><code class="docutils literal notranslate"><span
class="pre">DESCRIBE</span> <span class="pre">query</span></code> was
previously an alias for <code class="docutils literal notranslate"><span
class="pre">EXPLAIN</span> <span class="pre">query</span></code>, which outputs
the
@@ -1772,6 +1804,7 @@ take care of constructing the <code class="docutils
literal notranslate"><span c
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#sessionstate-s-sql-to-statement-method-takes-dialect-rather-than-a-str"><code
class="docutils literal notranslate"><span
class="pre">SessionState</span></code>’s <code class="docutils literal
notranslate"><span class="pre">sql_to_statement</span></code> method takes
<code class="docutils literal notranslate"><span
class="pre">Dialect</span></code> rather than a <code class="docutils literal
notranslate">< [...]
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#reorganization-of-listingtable-into-datafusion-catalog-listing-crate">Reorganization
of <code class="docutils literal notranslate"><span
class="pre">ListingTable</span></code> into <code class="docutils literal
notranslate"><span class="pre">datafusion-catalog-listing</span></code>
crate</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#reorganization-of-arrowsource-into-datafusion-datasource-arrow-crate">Reorganization
of <code class="docutils literal notranslate"><span
class="pre">ArrowSource</span></code> into <code class="docutils literal
notranslate"><span class="pre">datafusion-datasource-arrow</span></code>
crate</a></li>
+<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#filescanconfig-projection-renamed-to-filescanconfig-projection-exprs"><code
class="docutils literal notranslate"><span
class="pre">FileScanConfig::projection</span></code> renamed to <code
class="docutils literal notranslate"><span
class="pre">FileScanConfig::projection_exprs</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link"
href="#describe-query-support"><code class="docutils literal notranslate"><span
class="pre">DESCRIBE</span> <span class="pre">query</span></code>
support</a></li>
</ul>
</li>
diff --git a/searchindex.js b/searchindex.js
index 4148eedb33..9721c46e45 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]