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 4e9afcf0a8 Publish built docs triggered by
32e6fe887a23b9ec936ab85ddf6a86ca5bc47589
4e9afcf0a8 is described below
commit 4e9afcf0a8527452880b6c8bf18d47ba613a8797
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Dec 20 12:56:49 2025 +0000
Publish built docs triggered by 32e6fe887a23b9ec936ab85ddf6a86ca5bc47589
---
_sources/library-user-guide/upgrading.md.txt | 41 ++++++++++++++++++++++++++++
library-user-guide/upgrading.html | 34 +++++++++++++++++++++++
searchindex.js | 2 +-
3 files changed, 76 insertions(+), 1 deletion(-)
diff --git a/_sources/library-user-guide/upgrading.md.txt
b/_sources/library-user-guide/upgrading.md.txt
index c12768c95a..39d52bd590 100644
--- a/_sources/library-user-guide/upgrading.md.txt
+++ b/_sources/library-user-guide/upgrading.md.txt
@@ -396,6 +396,47 @@ Instead this should now be:
let foreign_udf = ScalarUDF::new_from_shared_impl(foreign_udf);
```
+When creating any of the following structs, we now require the user to
+provide a `TaskContextProvider` and optionally a `LogicalExtensionCodec`:
+
+- `FFI_CatalogListProvider`
+- `FFI_CatalogProvider`
+- `FFI_SchemaProvider`
+- `FFI_TableProvider`
+- `FFI_TableFunction`
+
+Each of these structs has a `new()` and a `new_with_ffi_codec()` method for
+instantiation. For example, when you previously would write
+
+```rust,ignore
+ let table = Arc::new(MyTableProvider::new());
+ let ffi_table = FFI_TableProvider::new(table, None);
+```
+
+Now you will need to provide a `TaskContextProvider`. The most common
+implementation of this trait is `SessionContext`.
+
+```rust,ignore
+ let ctx = Arc::new(SessionContext::default());
+ let table = Arc::new(MyTableProvider::new());
+ let ffi_table = FFI_TableProvider::new(table, None, ctx, None);
+```
+
+The alternative function to create these structures may be more convenient
+if you are doing many of these operations. A `FFI_LogicalExtensionCodec` will
+store the `TaskContextProvider` as well.
+
+```rust,ignore
+ let codec = Arc::new(DefaultLogicalExtensionCodec {});
+ let ctx = Arc::new(SessionContext::default());
+ let ffi_codec = FFI_LogicalExtensionCodec::new(codec, None, ctx);
+ let table = Arc::new(MyTableProvider::new());
+ let ffi_table = FFI_TableProvider::new_with_ffi_codec(table, None,
ffi_codec);
+```
+
+Additional information about the usage of the `TaskContextProvider` can be
+found in the crate README.
+
Additionally, the FFI structure for Scalar UDF's no longer contains a
`return_type` call. This code was not used since the `ForeignScalarUDF`
struct implements the `return_field_from_args` instead.
diff --git a/library-user-guide/upgrading.html
b/library-user-guide/upgrading.html
index d5774dd75d..03463f34d4 100644
--- a/library-user-guide/upgrading.html
+++ b/library-user-guide/upgrading.html
@@ -714,6 +714,40 @@ Aggregate and window functions follow the same pattern.</p>
<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">foreign_udf</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="n">ScalarUDF</span><span
class="p">::</span><span class="n">new_from_shared_impl</span><span
class="p">(</span><span class="n">foreign_udf</span><span class="p">);</span>
</pre></div>
</div>
+<p>When creating any of the following structs, we now require the user to
+provide a <code class="docutils literal notranslate"><span
class="pre">TaskContextProvider</span></code> and optionally a <code
class="docutils literal notranslate"><span
class="pre">LogicalExtensionCodec</span></code>:</p>
+<ul class="simple">
+<li><p><code class="docutils literal notranslate"><span
class="pre">FFI_CatalogListProvider</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">FFI_CatalogProvider</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">FFI_SchemaProvider</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">FFI_TableProvider</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">FFI_TableFunction</span></code></p></li>
+</ul>
+<p>Each of these structs has a <code class="docutils literal
notranslate"><span class="pre">new()</span></code> and a <code class="docutils
literal notranslate"><span class="pre">new_with_ffi_codec()</span></code>
method for
+instantiation. For example, when you previously would write</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">table</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">MyTableProvider</span><span class="p">::</span><span
class="n">new</span><span class="p">());</span>
+<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">ffi_table</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">FFI_TableProvider</span><span class="p">::</span><span
class="n">new</span><span class="p">(</span><span class="n">table</span><span
class="p">,</span><span class="w"> </span><span class="nb">None</span><span
class="p">);</span>
+</pre></div>
+</div>
+<p>Now you will need to provide a <code class="docutils literal
notranslate"><span class="pre">TaskContextProvider</span></code>. The most
common
+implementation of this trait is <code class="docutils literal
notranslate"><span class="pre">SessionContext</span></code>.</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">ctx</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">SessionContext</span><span class="p">::</span><span
class="n">default</span><span class="p">());</span>
+<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">table</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">MyTableProvider</span><span class="p">::</span><span
class="n">new</span><span class="p">());</span>
+<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">ffi_table</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">FFI_TableProvider</span><span class="p">::</span><span
class="n">new</span><span class="p">(</span><span class="n">table</span><span
class="p">,</span><span class="w"> </span><span class="nb">None</span><span
class="p">,</span><span class="w"> </span><span class="n">ctx</span><span
class="p">,< [...]
+</pre></div>
+</div>
+<p>The alternative function to create these structures may be more convenient
+if you are doing many of these operations. A <code class="docutils literal
notranslate"><span class="pre">FFI_LogicalExtensionCodec</span></code> will
+store the <code class="docutils literal notranslate"><span
class="pre">TaskContextProvider</span></code> as well.</p>
+<div class="highlight-rust notranslate"><div
class="highlight"><pre><span></span><span class="kd">let</span><span class="w">
</span><span class="n">codec</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">DefaultLogicalExtensionCodec</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">ctx</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">SessionContext</span><span class="p">::</span><span
class="n">default</span><span class="p">());</span>
+<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">ffi_codec</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">FFI_LogicalExtensionCodec</span><span class="p">::</span><span
class="n">new</span><span class="p">(</span><span class="n">codec</span><span
class="p">,</span><span class="w"> </span><span class="nb">None</span><span
class="p">,</span><span class="w"> </span><span class="n">ctx</span><span clas
[...]
+<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">table</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">MyTableProvider</span><span class="p">::</span><span
class="n">new</span><span class="p">());</span>
+<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">ffi_table</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">FFI_TableProvider</span><span class="p">::</span><span
class="n">new_with_ffi_codec</span><span class="p">(</span><span
class="n">table</span><span class="p">,</span><span class="w"> </span><span
class="nb">None</span><span class="p">,</span><span class="w"> </span><span
class="n">ffi_codec</sp [...]
+</pre></div>
+</div>
+<p>Additional information about the usage of the <code class="docutils literal
notranslate"><span class="pre">TaskContextProvider</span></code> can be
+found in the crate README.</p>
<p>Additionally, the FFI structure for Scalar UDF’s no longer contains a
<code class="docutils literal notranslate"><span
class="pre">return_type</span></code> call. This code was not used since the
<code class="docutils literal notranslate"><span
class="pre">ForeignScalarUDF</span></code>
struct implements the <code class="docutils literal notranslate"><span
class="pre">return_field_from_args</span></code> instead.</p>
diff --git a/searchindex.js b/searchindex.js
index 4c743a116b..2ee8941eb8 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]