This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new a2bcd06c deploy: 87483b40a284b2775d61b7712e4bee92d24a2a96
a2bcd06c is described below

commit a2bcd06c2c0cda7e56390993738a54bd32e5f2a0
Author: liurenjie1024 <[email protected]>
AuthorDate: Fri Sep 27 01:42:24 2024 +0000

    deploy: 87483b40a284b2775d61b7712e4bee92d24a2a96
---
 api/help.html                                      |  2 +-
 api/iceberg/expr/struct.SetExpression.html         |  4 +-
 api/iceberg/spec/enum.DataFileFormat.html          |  4 +-
 api/iceberg/spec/enum.FormatVersion.html           |  4 +-
 api/iceberg/spec/enum.ManifestContentType.html     |  2 +-
 api/iceberg/spec/enum.PrimitiveType.html           |  4 +-
 api/iceberg/spec/enum.SortOrderBuilderError.html   |  2 +-
 api/iceberg/spec/enum.Type.html                    |  2 +-
 api/iceberg/spec/enum.ViewFormatVersion.html       |  4 +-
 api/iceberg/spec/struct.Schema.html                |  2 +-
 api/iceberg/struct.Error.html                      |  2 +-
 api/iceberg_datafusion/all.html                    |  2 +-
 api/iceberg_datafusion/index.html                  |  5 +-
 api/iceberg_datafusion/sidebar-items.js            |  2 +-
 .../struct.IcebergTableProvider.html}              | 58 +++++++++++++++-------
 .../table/struct.IcebergTableProvider.html         | 11 ++++
 api/search-index.js                                |  4 +-
 .../iceberg_datafusion-desc-0-.js                  |  2 +-
 api/settings.html                                  |  2 +-
 api/src/iceberg_datafusion/lib.rs.html             |  2 +
 api/src/iceberg_datafusion/table.rs.html           | 16 +++++-
 api/trait.impl/core/marker/trait.Freeze.js         |  2 +-
 api/trait.impl/core/marker/trait.Send.js           |  2 +-
 api/trait.impl/core/marker/trait.Sync.js           |  2 +-
 api/trait.impl/core/marker/trait.Unpin.js          |  2 +-
 .../core/panic/unwind_safe/trait.RefUnwindSafe.js  |  2 +-
 .../core/panic/unwind_safe/trait.UnwindSafe.js     |  2 +-
 .../table/trait.TableProvider.js                   |  3 ++
 28 files changed, 101 insertions(+), 50 deletions(-)

diff --git a/api/help.html b/api/help.html
index b3855f23..886bccc7 100644
--- a/api/help.html
+++ b/api/help.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" 
content="Documentation for 
Rustdoc"><title>Help</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-5
 [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" 
content="Documentation for 
Rustdoc"><title>Help</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-5
 [...]
\ No newline at end of file
diff --git a/api/iceberg/expr/struct.SetExpression.html 
b/api/iceberg/expr/struct.SetExpression.html
index 7d6e6dd5..3672862f 100644
--- a/api/iceberg/expr/struct.SetExpression.html
+++ b/api/iceberg/expr/struct.SetExpression.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Set 
predicates, for example, `a in (1, 2, 3)`."><title>SetExpression in 
iceberg::expr - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans
 [...]
-</div></details><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Bind-for-SetExpression%3CT%3E" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/expr/predicate.rs.html#255-266">source</a><a 
href="#impl-Bind-for-SetExpression%3CT%3E" class="anchor">§</a><h3 
class="code-header">impl& [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Bind-for-SetExpression%3CT%3E" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/expr/predicate.rs.html#255-266">source</a><a 
href="#impl-Bind-for-SetExpression%3CT%3E" class="anchor">§</a><h3 
class="code-header">impl& [...]
     T: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html"; 
title="trait 
serde::de::Deserialize">Deserialize</a>&lt;'de&gt;,</div></h3></section></summary><div
 class="impl-items"><details class="toggle method-toggle" 
open><summary><section id="method.deserialize" class="method trait-impl"><a 
class="src rightside" 
href="../../src/iceberg/expr/predicate.rs.html#214">source</a><a 
href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a hr 
[...]
-    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Displ [...]
+    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Displ [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
 sufficient, and should not be overridden without very good 
reason.</div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section 
id="impl-Serialize-for-SetExpression%3CT%3E" class="impl"><a class="src 
rightside" href="../../src/iceberg/expr/predicate.rs.html#214">source</a><a 
href="#impl-Serialize-for-SetExpression%3CT%3E" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Seri [...]
     T: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html"; 
title="trait 
serde::ser::Serialize">Serialize</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.serialize" class="method trait-impl"><a class="src rightside" 
href="../../src/iceberg/expr/predicate.rs.html#214">source</a><a 
href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://docs.rs [...]
diff --git a/api/iceberg/spec/enum.DataFileFormat.html 
b/api/iceberg/spec/enum.DataFileFormat.html
index 007ab1c9..9685d312 100644
--- a/api/iceberg/spec/enum.DataFileFormat.html
+++ b/api/iceberg/spec/enum.DataFileFormat.html
@@ -6,10 +6,10 @@
 </div></details><h2 id="variants" class="variants section-header">Variants<a 
href="#variants" class="anchor">§</a></h2><div class="variants"><section 
id="variant.Avro" class="variant"><a href="#variant.Avro" 
class="anchor">§</a><h3 class="code-header">Avro</h3></section><div 
class="docblock"><p>Avro file format: <a 
href="https://avro.apache.org/";>https://avro.apache.org/</a></p>
 </div><section id="variant.Orc" class="variant"><a href="#variant.Orc" 
class="anchor">§</a><h3 class="code-header">Orc</h3></section><div 
class="docblock"><p>Orc file format: <a 
href="https://orc.apache.org/";>https://orc.apache.org/</a></p>
 </div><section id="variant.Parquet" class="variant"><a href="#variant.Parquet" 
class="anchor">§</a><h3 class="code-header">Parquet</h3></section><div 
class="docblock"><p>Parquet file format: <a 
href="https://parquet.apache.org/";>https://parquet.apache.org/</a></p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-DataFileFormat" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest.rs.html#1179">source</a><a 
href="#impl-Clone-for-DataFileFormat" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" h [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-DataFileFormat" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest.rs.html#1179">source</a><a 
href="#impl-Clone-for-DataFileFormat" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" h [...]
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html"; 
title="trait core::str::traits::FromStr">FromStr</a>,
     &lt;Self as <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html"; 
title="trait core::str::traits::FromStr">FromStr</a>&gt;::<a 
class="associatedtype" 
href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html#associatedtype.Err";
 title="type core::str::traits::FromStr::Err">Err</a>: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html"; 
title="trait core::fmt::Display">Display</a>,</div></h3></sectio [...]
-    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Displ [...]
+    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Displ [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
 sufficient, and should not be overridden without very good 
reason.</div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section 
id="impl-Serialize-for-DataFileFormat" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/manifest.rs.html#1179">source</a><a 
href="#impl-Serialize-for-DataFileFormat" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html"; title="tr 
[...]
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html"; 
title="trait 
core::fmt::Display">Display</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.serialize" class="method trait-impl"><a class="src rightside" 
href="../../src/iceberg/spec/manifest.rs.html#1179">source</a><a 
href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://docs.rs/ [...]
diff --git a/api/iceberg/spec/enum.FormatVersion.html 
b/api/iceberg/spec/enum.FormatVersion.html
index d2fc7ae3..dd923e71 100644
--- a/api/iceberg/spec/enum.FormatVersion.html
+++ b/api/iceberg/spec/enum.FormatVersion.html
@@ -4,8 +4,8 @@
 }</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>Iceberg format version</p>
 </div></details><h2 id="variants" class="variants section-header">Variants<a 
href="#variants" class="anchor">§</a></h2><div class="variants"><section 
id="variant.V1" class="variant"><a href="#variant.V1" class="anchor">§</a><h3 
class="code-header">V1 = 1</h3></section><div class="docblock"><p>Iceberg spec 
version 1</p>
 </div><section id="variant.V2" class="variant"><a href="#variant.V2" 
class="anchor">§</a><h3 class="code-header">V2 = 2</h3></section><div 
class="docblock"><p>Iceberg spec version 2</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-FormatVersion" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/table_metadata.rs.html#1121">source</a><a 
href="#impl-Clone-for-FormatVersion" class="anchor">§</a><h3 
class="code-header">impl <a class="trai [...]
-    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Display [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-FormatVersion" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/table_metadata.rs.html#1121">source</a><a 
href="#impl-Clone-for-FormatVersion" class="anchor">§</a><h3 
class="code-header">impl <a class="trai [...]
+    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Display [...]
     H: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"; 
title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div 
class='docblock'>Feeds a slice of this type into the given <a 
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"; 
title="trait core::hash::Hasher"><code>Hasher</code></a>. <a 
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice";>Read
 more</a></div></details></div></d [...]
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div 
class='docblock'>Compares and returns the maximum of two values. <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max";>Read
 more</a></div></details><details class="toggle method-toggle" 
open><summary><section id="method.min" class="method trait-impl"><span 
class="rightside"><span class="si [...]
diff --git a/api/iceberg/spec/enum.ManifestContentType.html 
b/api/iceberg/spec/enum.ManifestContentType.html
index 78fde000..506d6a39 100644
--- a/api/iceberg/spec/enum.ManifestContentType.html
+++ b/api/iceberg/spec/enum.ManifestContentType.html
@@ -4,7 +4,7 @@
 }</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>The type of files tracked by the manifest, either data or 
delete files; Data(0) for all v1 manifests</p>
 </div></details><h2 id="variants" class="variants section-header">Variants<a 
href="#variants" class="anchor">§</a></h2><div class="variants"><section 
id="variant.Data" class="variant"><a href="#variant.Data" 
class="anchor">§</a><h3 class="code-header">Data = 0</h3></section><div 
class="docblock"><p>The manifest content is data.</p>
 </div><section id="variant.Deletes" class="variant"><a href="#variant.Deletes" 
class="anchor">§</a><h3 class="code-header">Deletes = 1</h3></section><div 
class="docblock"><p>The manifest content is deletes.</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-ManifestContentType" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest_list.rs.html#584">source</a><a 
href="#impl-Clone-for-ManifestContentType" class="anchor">§</a><h3 
class="code-header">impl <a c [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-ManifestContentType" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest_list.rs.html#584">source</a><a 
href="#impl-Clone-for-ManifestContentType" class="anchor">§</a><h3 
class="code-header">impl <a c [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
 sufficient, and should not be overridden without very good 
reason.</div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section 
id="impl-TryFrom%3Ci32%3E-for-ManifestContentType" class="impl"><a class="src 
rightside" 
href="../../src/iceberg/spec/manifest_list.rs.html#616-632">source</a><a 
href="#impl-TryFrom%3Ci32%3E-for-ManifestContentType" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/ [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
diff --git a/api/iceberg/spec/enum.PrimitiveType.html 
b/api/iceberg/spec/enum.PrimitiveType.html
index bb03ba07..10e1d525 100644
--- a/api/iceberg/spec/enum.PrimitiveType.html
+++ b/api/iceberg/spec/enum.PrimitiveType.html
@@ -45,8 +45,8 @@
     __deserializer: __D,
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;<a class="enum" 
href="enum.PrimitiveType.html" title="enum 
iceberg::spec::PrimitiveType">PrimitiveType</a>, __D::<a class="associatedtype" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html#associatedtype.Error";
 title="type serde::de::Deserializer::Error">Error</a>&gt;<div 
class="where">where
     __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></div></details><details
 class="toggle implementors-toggle" open><summary><section 
id="impl-PrimitiveType-2" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#242-265">source</a><a 
href="#impl-PrimitiveType-2" class="anchor">§</a><h3 class="code-header">impl 
<a class="enum" [...]
-</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-PrimitiveType" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#200">source</a><a 
href="#impl-Clone-for-PrimitiveType" class="anchor">§</a><h3 
class="code-header" [...]
-    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Display [...]
+</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-PrimitiveType" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#200">source</a><a 
href="#impl-Clone-for-PrimitiveType" class="anchor">§</a><h3 
class="code-header" [...]
+    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Display [...]
     H: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"; 
title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div 
class='docblock'>Feeds a slice of this type into the given <a 
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"; 
title="trait core::hash::Hasher"><code>Hasher</code></a>. <a 
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice";>Read
 more</a></div></details></div></d [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
diff --git a/api/iceberg/spec/enum.SortOrderBuilderError.html 
b/api/iceberg/spec/enum.SortOrderBuilderError.html
index 65d194bb..0ca83947 100644
--- a/api/iceberg/spec/enum.SortOrderBuilderError.html
+++ b/api/iceberg/spec/enum.SortOrderBuilderError.html
@@ -4,7 +4,7 @@
 }</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>Error type for SortOrderBuilder</p>
 </div></details><h2 id="variants" class="variants section-header">Variants 
(Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details 
class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked 
as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums 
could have additional variants added in future. Therefore, when matching 
against variants of non-exhaustive enums, an extra wildcard arm must be added 
to account for any future variants.</di [...]
 </div><section id="variant.ValidationError" class="variant"><a 
href="#variant.ValidationError" class="anchor">§</a><h3 
class="code-header">ValidationError(<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"; 
title="struct alloc::string::String">String</a>)</h3></section><div 
class="docblock"><p>Custom validation error</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Debug-for-SortOrderBuilderError" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/sort.rs.html#99">source</a><a 
href="#impl-Debug-for-SortOrderBuilderError" class="anchor">§</a><h3 
class="code-header">impl <a class=" [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Debug-for-SortOrderBuilderError" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/sort.rs.html#99">source</a><a 
href="#impl-Debug-for-SortOrderBuilderError" class="anchor">§</a><h3 
class="code-header">impl <a class=" [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
     T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html"; 
title="trait core::error::Error">Error</a> + 
'static,</div></h3></section></summary><div class="impl-items"><details 
class="toggle method-toggle" open><summary><section id="method.as_error_source" 
class="method trait-impl"><a href="#method.as_error_source" 
class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">as_error_source</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" 
href="https://doc [...]
 to benefit from Rust’s automatic dereferencing of method
diff --git a/api/iceberg/spec/enum.Type.html b/api/iceberg/spec/enum.Type.html
index 0d2c2492..5cab52e8 100644
--- a/api/iceberg/spec/enum.Type.html
+++ b/api/iceberg/spec/enum.Type.html
@@ -18,7 +18,7 @@
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.decimal" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#160-163">source</a><h4 
class="code-header">pub fn <a href="#method.decimal" 
class="fn">decimal</a>(precision: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u32.html";>u32</a>, scale: 
<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u32.html";>u32</a>) -&g 
[...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.is_floating_type" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#167-172">source</a><h4 
class="code-header">pub fn <a href="#method.is_floating_type" 
class="fn">is_floating_type</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></h4></section></summary><div
 class="docblock"><p>Check if it’s float o [...]
 </div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-Type" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#80">source</a><a 
href="#impl-Clone-for-Type" class="anchor">§</a><h3 class="code-header">impl <a 
class="tra [...]
-    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Display [...]
+    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Display [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
 sufficient, and should not be overridden without very good 
reason.</div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Serialize-for-Type" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#267-273">source</a><a 
href="#impl-Serialize-for-Type" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html"; 
title="trait serde::ser:: [...]
     S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serializer.html"; 
title="trait 
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div 
class='docblock'>Serialize this value into the given Serde serializer. <a 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><section id="impl-Eq-for-Type" 
class="impl"><a class="src rightside" href="../../src/iceberg/spec/datatyp [...]
diff --git a/api/iceberg/spec/enum.ViewFormatVersion.html 
b/api/iceberg/spec/enum.ViewFormatVersion.html
index 1b301707..4d8658bb 100644
--- a/api/iceberg/spec/enum.ViewFormatVersion.html
+++ b/api/iceberg/spec/enum.ViewFormatVersion.html
@@ -2,8 +2,8 @@
     V1 = 1,
 }</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>Iceberg format version</p>
 </div></details><h2 id="variants" class="variants section-header">Variants<a 
href="#variants" class="anchor">§</a></h2><div class="variants"><section 
id="variant.V1" class="variant"><a href="#variant.V1" class="anchor">§</a><h3 
class="code-header">V1 = 1</h3></section><div class="docblock"><p>Iceberg view 
spec version 1</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-ViewFormatVersion" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/view_metadata.rs.html#397">source</a><a 
href="#impl-Clone-for-ViewFormatVersion" class="anchor">§</a><h3 
class="code-header">impl <a class [...]
-    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Display [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-ViewFormatVersion" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/view_metadata.rs.html#397">source</a><a 
href="#impl-Clone-for-ViewFormatVersion" class="anchor">§</a><h3 
class="code-header">impl <a class [...]
+    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Display [...]
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div 
class='docblock'>Compares and returns the maximum of two values. <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max";>Read
 more</a></div></details><details class="toggle method-toggle" 
open><summary><section id="method.min" class="method trait-impl"><span 
class="rightside"><span class="si [...]
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div 
class='docblock'>Compares and returns the minimum of two values. <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min";>Read
 more</a></div></details><details class="toggle method-toggle" 
open><summary><section id="method.clamp" class="method trait-impl"><span 
class="rightside"><span class=" [...]
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a> + <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html"; 
title="trait 
core::cmp::PartialOrd">PartialOrd</a>,</div></h4></section></summary><div 
class='docblock'>Restrict a value to a certain interval. <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp";>Read
 more</a></div></details></div> [...]
diff --git a/api/iceberg/spec/struct.Schema.html 
b/api/iceberg/spec/struct.Schema.html
index 3ca109a6..9bd675a8 100644
--- a/api/iceberg/spec/struct.Schema.html
+++ b/api/iceberg/spec/struct.Schema.html
@@ -21,7 +21,7 @@
     __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Displ [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
 sufficient, and should not be overridden without very good 
reason.</div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Serialize-for-Schema" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/schema.rs.html#45">source</a><a 
href="#impl-Serialize-for-Schema" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html"; 
title="trait serde::ser::Seri [...]
-    __S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serializer.html"; 
title="trait 
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div 
class='docblock'>Serialize this value into the given Serde serializer. <a 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section 
id="impl-TryFrom%3C%26Schema%3E-for- [...]
+    __S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serializer.html"; 
title="trait 
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div 
class='docblock'>Serialize this value into the given Serde serializer. <a 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section 
id="impl-TryFrom%3C%26Schema%3E-for- [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210";>source</a><a
 href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a 
href="https:/ [...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow_mut" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217";>source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href= [...]
diff --git a/api/iceberg/struct.Error.html b/api/iceberg/struct.Error.html
index 68a6d811..e5328a86 100644
--- a/api/iceberg/struct.Error.html
+++ b/api/iceberg/struct.Error.html
@@ -35,7 +35,7 @@ Backtrace:
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.kind" class="method"><a class="src rightside" 
href="../src/iceberg/error.rs.html#241-243">source</a><h4 
class="code-header">pub fn <a href="#method.kind" 
class="fn">kind</a>(&amp;self) -&gt; <a class="enum" href="enum.ErrorKind.html" 
title="enum iceberg::ErrorKind">ErrorKind</a></h4></section></summary><div 
class="docblock"><p>Return error’s kind.</p>
 <p>Users can use this method to check error’s kind and take actions.</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.message" class="method"><a class="src rightside" 
href="../src/iceberg/error.rs.html#247-249">source</a><h4 
class="code-header">pub fn <a href="#method.message" 
class="fn">message</a>(&amp;self) -&gt; &amp;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.str.html";>str</a></h4></section></summary><div
 class="docblock"><p>Return error’s message.</p>
-</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Debug-for-Error" class="impl"><a class="src rightside" 
href="../src/iceberg/error.rs.html#148-187">source</a><a 
href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl 
<a class="trait" h [...]
+</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Debug-for-Error" class="impl"><a class="src rightside" 
href="../src/iceberg/error.rs.html#148-187">source</a><a 
href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl 
<a class="trait" h [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
     T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html"; 
title="trait core::error::Error">Error</a> + 
'static,</div></h3></section></summary><div class="impl-items"><details 
class="toggle method-toggle" open><summary><section id="method.as_error_source" 
class="method trait-impl"><a href="#method.as_error_source" 
class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">as_error_source</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" 
href="https://doc [...]
 to benefit from Rust’s automatic dereferencing of method
diff --git a/api/iceberg_datafusion/all.html b/api/iceberg_datafusion/all.html
index 41a8e16d..5e5f8b4f 100644
--- a/api/iceberg_datafusion/all.html
+++ b/api/iceberg_datafusion/all.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="List of 
all items in this crate"><title>List of all items in this 
crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d
 [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="List of 
all items in this crate"><title>List of all items in this 
crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d
 [...]
\ No newline at end of file
diff --git a/api/iceberg_datafusion/index.html 
b/api/iceberg_datafusion/index.html
index d8cb4bf4..9988b296 100644
--- a/api/iceberg_datafusion/index.html
+++ b/api/iceberg_datafusion/index.html
@@ -1,2 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="API 
documentation for the Rust `iceberg_datafusion` 
crate."><title>iceberg_datafusion - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans
 [...]
-within an Iceberg <a href="../iceberg/catalog/trait.Catalog.html" title="trait 
iceberg::catalog::Catalog"><code>Catalog</code></a>.</div></li></ul><h2 
id="functions" class="section-header">Functions<a href="#functions" 
class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a 
class="fn" href="fn.from_datafusion_error.html" title="fn 
iceberg_datafusion::from_datafusion_error">from_datafusion_error</a></div><div 
class="desc docblock-short">Converts a datafusion error in [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="API 
documentation for the Rust `iceberg_datafusion` 
crate."><title>iceberg_datafusion - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans
 [...]
+within an Iceberg <a href="../iceberg/catalog/trait.Catalog.html" title="trait 
iceberg::catalog::Catalog"><code>Catalog</code></a>.</div></li><li><div 
class="item-name"><a class="struct" href="struct.IcebergTableProvider.html" 
title="struct 
iceberg_datafusion::IcebergTableProvider">IcebergTableProvider</a></div><div 
class="desc docblock-short">Represents a [<code>TableProvider</code>] for the 
Iceberg <a href="../iceberg/catalog/trait.Catalog.html" title="trait 
iceberg::catalog::Catalog"> [...]
+managing access to a <a href="../iceberg/table/struct.Table.html" 
title="struct iceberg::table::Table"><code>Table</code></a>.</div></li></ul><h2 
id="functions" class="section-header">Functions<a href="#functions" 
class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a 
class="fn" href="fn.from_datafusion_error.html" title="fn 
iceberg_datafusion::from_datafusion_error">from_datafusion_error</a></div><div 
class="desc docblock-short">Converts a datafusion error into an [...]
\ No newline at end of file
diff --git a/api/iceberg_datafusion/sidebar-items.js 
b/api/iceberg_datafusion/sidebar-items.js
index 52acfe1b..f911df1a 100644
--- a/api/iceberg_datafusion/sidebar-items.js
+++ b/api/iceberg_datafusion/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = 
{"fn":["from_datafusion_error","to_datafusion_error"],"struct":["IcebergCatalogProvider"]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = 
{"fn":["from_datafusion_error","to_datafusion_error"],"struct":["IcebergCatalogProvider","IcebergTableProvider"]};
\ No newline at end of file
diff --git a/api/iceberg/spec/enum.SortOrderBuilderError.html 
b/api/iceberg_datafusion/struct.IcebergTableProvider.html
similarity index 62%
copy from api/iceberg/spec/enum.SortOrderBuilderError.html
copy to api/iceberg_datafusion/struct.IcebergTableProvider.html
index 65d194bb..3f4e2ecb 100644
--- a/api/iceberg/spec/enum.SortOrderBuilderError.html
+++ b/api/iceberg_datafusion/struct.IcebergTableProvider.html
@@ -1,14 +1,36 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Error type 
for SortOrderBuilder"><title>SortOrderBuilderError in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium
 [...]
-    UninitializedField(&amp;'static <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.str.html";>str</a>),
-    ValidationError(<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"; 
title="struct alloc::string::String">String</a>),
-}</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>Error type for SortOrderBuilder</p>
-</div></details><h2 id="variants" class="variants section-header">Variants 
(Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details 
class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked 
as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums 
could have additional variants added in future. Therefore, when matching 
against variants of non-exhaustive enums, an extra wildcard arm must be added 
to account for any future variants.</di [...]
-</div><section id="variant.ValidationError" class="variant"><a 
href="#variant.ValidationError" class="anchor">§</a><h3 
class="code-header">ValidationError(<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"; 
title="struct alloc::string::String">String</a>)</h3></section><div 
class="docblock"><p>Custom validation error</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Debug-for-SortOrderBuilderError" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/sort.rs.html#99">source</a><a 
href="#impl-Debug-for-SortOrderBuilderError" class="anchor">§</a><h3 
class="code-header">impl <a class=" [...]
-    T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
-    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html"; 
title="trait core::error::Error">Error</a> + 
'static,</div></h3></section></summary><div class="impl-items"><details 
class="toggle method-toggle" open><summary><section id="method.as_error_source" 
class="method trait-impl"><a href="#method.as_error_source" 
class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">as_error_source</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" 
href="https://doc [...]
-to benefit from Rust’s automatic dereferencing of method
-receivers.</div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" 
class="impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#208";>source</a><a
 href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"; 
title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for  [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Represents 
a `TableProvider` for the Iceberg `Catalog`, managing access to a 
`Table`."><title>IcebergTableProvider in iceberg_datafusion - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.wof
 [...]
+managing access to a <a href="../iceberg/table/struct.Table.html" 
title="struct iceberg::table::Table"><code>Table</code></a>.</p>
+</div></details><h2 id="implementations" 
class="section-header">Implementations<a href="#implementations" 
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle 
implementors-toggle" open><summary><section id="impl-IcebergTableProvider" 
class="impl"><a class="src rightside" 
href="../src/iceberg_datafusion/table.rs.html#43-66">source</a><a 
href="#impl-IcebergTableProvider" class="anchor">§</a><h3 
class="code-header">impl <a class="struct" href="struct.IcebergTablePr [...]
+using the given table. Can be used to create a table provider from an existing 
table regardless of the catalog implementation.</p>
+</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-TableProvider-for-IcebergTableProvider" class="impl"><a class="src 
rightside" href="../src/iceberg_datafusion/table.rs.html#69-112">source</a><a 
href="#impl-TableProvider-for-IcebergTableProvider" class="anch [...]
+downcast to a specific implementation.</div></details><details class="toggle 
method-toggle" open><summary><section id="method.schema" class="method 
trait-impl"><a class="src rightside" 
href="../src/iceberg_datafusion/table.rs.html#74-76">source</a><a 
href="#method.schema" class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">schema</a>(&amp;self) -&gt; 
ArrowSchemaRef</h4></section></summary><div class='docblock'>Get a reference to 
the schema for this table</div></details><details  [...]
+    &amp;'life0 self,
+    _state: &amp;'life1 dyn Session,
+    projection: <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;&amp;'life2 <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>&gt;&gt;,
+    filters: &amp;'life3 [Expr],
+    _limit: <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>&gt;,
+) -&gt; <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html"; title="struct 
core::pin::Pin">Pin</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html"; 
title="trait core::future::future::Future">Future</a>&lt;Output = 
DFResult&lt;<a class="struct" href="https://doc.rust-lang.org/n [...]
+    Self: 'async_trait,
+    'life0: 'async_trait,
+    'life1: 'async_trait,
+    'life2: 'async_trait,
+    'life3: 'async_trait,</div></h4></section></summary><div 
class='docblock'>Create an [<code>ExecutionPlan</code>] for scanning the table 
with optionally
+specified <code>projection</code>, <code>filter</code> and <code>limit</code>, 
described below. <a>Read more</a></div></details><details class="toggle 
method-toggle" open><summary><section id="method.supports_filters_pushdown" 
class="method trait-impl"><a class="src rightside" 
href="../src/iceberg_datafusion/table.rs.html#97-111">source</a><a 
href="#method.supports_filters_pushdown" class="anchor">§</a><h4 
class="code-header">fn <a class="fn">supports_filters_pushdown</a>(
+    &amp;self,
+    filters: &amp;[&amp;Expr],
+) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;TableProviderFilterPushDown&gt;, 
DataFusionError&gt;</h4></section></summary><div class='docblock'>Specify if 
DataFusion should provide filter expressions to the
+TableProvider to apply <em>during</em> the scan. <a>Read 
more</a></div></details><details class="toggle method-toggle" 
open><summary><section id="method.constraints" class="method trait-impl"><a 
href="#method.constraints" class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">constraints</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum 
core::option::Option">Option</a>&lt;&amp;Constraints&gt;</h4></section></summa 
[...]
+Returns: <a>Read more</a></div></details><details class="toggle method-toggle" 
open><summary><section id="method.get_table_definition" class="method 
trait-impl"><a href="#method.get_table_definition" class="anchor">§</a><h4 
class="code-header">fn <a class="fn">get_table_definition</a>(&amp;self) -&gt; 
<a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" 
href="https://doc.rust-lang.o [...]
+    &amp;'life0 self,
+    _state: &amp;'life1 dyn Session,
+    _input: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"; 
title="struct alloc::sync::Arc">Arc</a>&lt;dyn ExecutionPlan&gt;,
+    _overwrite: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a>,
+) -&gt; <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html"; title="struct 
core::pin::Pin">Pin</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html"; 
title="trait core::future::future::Future">Future</a>&lt;Output = <a 
class="enum" href="https://doc.rust-lang.org/nightly/core/re [...]
+    'life0: 'async_trait,
+    'life1: 'async_trait,
+    Self: 'async_trait,</div></h4></section></summary><div 
class='docblock'>Return an [<code>ExecutionPlan</code>] to insert data into 
this table, if
+supported. <a>Read more</a></div></details></div></details></div><h2 
id="synthetic-implementations" class="section-header">Auto Trait 
Implementations<a href="#synthetic-implementations" 
class="anchor">§</a></h2><div id="synthetic-implementations-list"><section 
id="impl-Freeze-for-IcebergTableProvider" class="impl"><a 
href="#impl-Freeze-for-IcebergTableProvider" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Free [...]
+    T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210";>source</a><a
 href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a 
href="https:/ [...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow_mut" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217";>source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href= [...]
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trait 
core::convert::Into">Into</a>&lt;T&gt;,</div></h4></section></summary><div 
class='docblock'>Converts <code>self</code> into <code>T</code> using 
<code>Into&lt;T&gt;</code>. <a>Read 
more</a></div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-FmtForward-for-T" 
class="impl"><a href="#impl-FmtForward-for-T" class="anchor">§</a><h3 cl [...]
@@ -26,17 +48,17 @@ receivers.</div></details></div></details><details 
class="toggle implementors-to
 <code>Debug</code>-formatted.</div></details><details class="toggle 
method-toggle" open><summary><section id="method.fmt_upper_hex" class="method 
trait-impl"><a href="#method.fmt_upper_hex" class="anchor">§</a><h4 
class="code-header">fn <a class="fn">fmt_upper_hex</a>(self) -&gt; 
FmtUpperHex&lt;Self&gt;<div class="where">where
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html"; 
title="trait 
core::fmt::UpperHex">UpperHex</a>,</div></h4></section></summary><div 
class='docblock'>Causes <code>self</code> to use its <code>UpperHex</code> 
implementation when
 <code>Debug</code>-formatted.</div></details><details class="toggle 
method-toggle" open><summary><section id="method.fmt_list" class="method 
trait-impl"><a href="#method.fmt_list" class="anchor">§</a><h4 
class="code-header">fn <a class="fn">fmt_list</a>(self) -&gt; 
FmtList&lt;Self&gt;<div class="where">where
-    <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;'a 
Self</a>: for&lt;'a&gt; <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html";
 title="trait 
core::iter::traits::collect::IntoIterator">IntoIterator</a>,</div></h4></section></summary><div
 class='docblock'>Formats each item in a sequence. <a>Read 
more</a></div></details></div></details><details class="toggle 
implementors-toggle"><summar [...]
+    <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;'a 
Self</a>: for&lt;'a&gt; <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html";
 title="trait 
core::iter::traits::collect::IntoIterator">IntoIterator</a>,</div></h4></section></summary><div
 class='docblock'>Formats each item in a sequence. <a>Read 
more</a></div></details></div></details><details class="toggle 
implementors-toggle"><summar [...]
 </div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Instrument-for-T" 
class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; Instrument for T</h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.instrument" class="method trait-impl"><a href="#method.instrument" 
class="anchor">§</a><h4 class="code-header">fn <a class="fn">in [...]
 <code>Instrumented</code> wrapper. <a>Read more</a></div></details><details 
class="toggle method-toggle" open><summary><section id="method.in_current_span" 
class="method trait-impl"><a href="#method.in_current_span" 
class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">in_current_span</a>(self) -&gt; 
Instrumented&lt;Self&gt;</h4></section></summary><div 
class='docblock'>Instruments this type with the <a 
href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</co 
[...]
 <code>Instrumented</code> wrapper. <a>Read 
more</a></div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" 
class="impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#748-750";>source</a><a
 href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T, U&gt; <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trai [...]
     U: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"; 
title="trait 
core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.into" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#758";>source</a><a
 href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href= 
[...]
 <p>That is, this conversion is whatever the implementation of
 <code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"; 
title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to 
do.</p>
-</div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-IntoEither-for-T" 
class="impl"><a class="src rightside" 
href="https://docs.rs/either/1/src/either/into_either.rs.html#64";>source</a><a 
href="#impl-IntoEither-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; <a class="trait" 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html"; 
title="trait either::into_either::IntoEither">IntoEither</a> for T</h3></sec 
[...]
+</div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-IntoEither-for-T" 
class="impl"><a class="src rightside" 
href="https://docs.rs/either/1/src/either/into_either.rs.html#64";>source</a><a 
href="#impl-IntoEither-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; <a class="trait" 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html"; 
title="trait either::into_either::IntoEither">IntoEither</a> for T</h3></sec 
[...]
 if <code>into_left</code> is <code>true</code>.
 Converts <code>self</code> into a <a 
href="https://docs.rs/either/1/either/enum.Either.html#variant.Right"; 
title="variant either::Either::Right"><code>Right</code></a> variant of <a 
href="https://docs.rs/either/1/either/enum.Either.html"; title="enum 
either::Either"><code>Either&lt;Self, Self&gt;</code></a>
-otherwise. <a 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either";>Read
 more</a></div></details><details class="toggle method-toggle" 
open><summary><section id="method.into_either_with" class="method 
trait-impl"><a class="src rightside" 
href="https://docs.rs/either/1/src/either/into_either.rs.html#55-57";>source</a><a
 href="#method.into_either_with" class="anchor">§</a><h4 class="code-header">fn 
<a href="https://docs.rs/either/1/either/into_either/tr [...]
+otherwise. <a 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either";>Read
 more</a></div></details><details class="toggle method-toggle" 
open><summary><section id="method.into_either_with" class="method 
trait-impl"><a class="src rightside" 
href="https://docs.rs/either/1/src/either/into_either.rs.html#55-57";>source</a><a
 href="#method.into_either_with" class="anchor">§</a><h4 class="code-header">fn 
<a href="https://docs.rs/either/1/either/into_either/tr [...]
     F: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html"; 
title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;Self</a>)
 -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a>,</div></h4></section></summary><div
 class='docblock'>Converts <code>self</code> into a <a 
href="https://docs.rs/either/1/either/enu [...]
 if <code>into_left(&amp;self)</code> returns <code>true</code>.
 Converts <code>self</code> into a <a 
href="https://docs.rs/either/1/either/enum.Either.html#variant.Right"; 
title="variant either::Either::Right"><code>Right</code></a> variant of <a 
href="https://docs.rs/either/1/either/enum.Either.html"; title="enum 
either::Either"><code>Either&lt;Self, Self&gt;</code></a>
@@ -102,14 +124,12 @@ builds.</div></details><details class="toggle 
method-toggle" open><summary><sect
 builds.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.tap_deref_mut_dbg" class="method 
trait-impl"><a href="#method.tap_deref_mut_dbg" class="anchor">§</a><h4 
class="code-header">fn <a class="fn">tap_deref_mut_dbg</a>&lt;T&gt;(self, func: 
impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html"; 
title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" 
href="https://doc.rust-lang.org/nightly [...]
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html"; 
title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a 
class="trait" 
href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html"; 
title="trait core::ops::deref::Deref">Deref</a>,
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div 
class='docblock'>Calls <code>.tap_deref_mut()</code> only in debug builds, and 
is erased in release
-builds.</div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-ToString-for-T" class="impl"><a 
class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2552";>source</a><a
 href="#impl-ToString-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; <a class="trait" 
href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html"; 
title="trait alloc::string::ToString">ToString</a> for T<div class= [...]
-    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html"; 
title="trait core::fmt::Display">Display</a> + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.to_string" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org [...]
+builds.</div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-TryConv-for-T" class="impl"><a 
href="#impl-TryConv-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; TryConv for T</h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.try_conv" class="method trait-impl"><a href="#method.try_conv" 
class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_conv [...]
     Self: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html"; 
title="trait 
core::convert::TryInto">TryInto</a>&lt;T&gt;,</div></h4></section></summary><div
 class='docblock'>Attempts to convert <code>self</code> into <code>T</code> 
using <code>TryInto&lt;T&gt;</code>. <a>Read 
more</a></div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" 
class="impl"><a class="src rightside" href="h [...]
     U: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trait 
core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div 
class="impl-items"><details class="toggle" open><summary><section 
id="associatedtype.Error-1" class="associatedtype trait-impl"><a 
href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type 
<a 
href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error";
 cl [...]
     U: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"; 
title="trait 
core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div
 class="impl-items"><details class="toggle" open><summary><section 
id="associatedtype.Error" class="associatedtype trait-impl"><a 
href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type 
<a 
href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Erro
 [...]
     V: MultiLane&lt;T&gt;,</div></h3></section></summary><div 
class="impl-items"><section id="method.vzip" class="method trait-impl"><a 
href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">vzip</a>(self) -&gt; V</h4></section></div></details><details 
class="toggle implementors-toggle"><summary><section 
id="impl-WithSubscriber-for-T" class="impl"><a 
href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; WithSubscriber for T< [...]
     S: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trait 
core::convert::Into">Into</a>&lt;Dispatch&gt;,</div></h4></section></summary><div
 class='docblock'>Attaches the provided <a 
href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
 [<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details 
class="toggle method-toggle" open><summary><section 
id="method.with_current_subscriber" class="method trait-impl"><a 
href="#method.with_current_subscriber" class="anchor">§</a><h4 
class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -&gt; 
WithDispatch&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches 
the current <a href="crate::dispatcher#setting-the-default-subscriber">defaul 
[...]
-[<code>WithDispatch</code>] wrapper. <a>Read 
more</a></div></details></div></details><section id="impl-Allocation-for-T" 
class="impl"><a href="#impl-Allocation-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; Allocation for T<div class="where">where
-    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html";
 title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> + <a 
class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"; 
title="trait core::marker::Send">Send</a> + <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"; 
title="trait core::marker::Sync">Sync</a>,</div></h3></section><section 
id="impl-MaybeSen [...]
-    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"; 
title="trait core::marker::Send">Send</a>,</div></h3></section></div><script 
type="text/json" id="notable-traits-data">{"Either<Self, Self>":"<h3>Notable 
traits for <code><a class=\"enum\" 
href=\"https://docs.rs/either/1/either/enum.Either.html\"; title=\"enum 
either::Either\">Either</a>&lt;L, R&gt;</code></h3><pre><code><div 
class=\"where\">impl&lt;L, R&gt; <a class=\"trait\" href=\"https://doc.r [...]
\ No newline at end of file
+[<code>WithDispatch</code>] wrapper. <a>Read 
more</a></div></details></div></details><section id="impl-MaybeSend-for-T" 
class="impl"><a href="#impl-MaybeSend-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; MaybeSend for T<div class="where">where
+    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"; 
title="trait 
core::marker::Send">Send</a>,</div></h3></section></div></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg_datafusion/table/struct.IcebergTableProvider.html 
b/api/iceberg_datafusion/table/struct.IcebergTableProvider.html
new file mode 100644
index 00000000..9f5ce7aa
--- /dev/null
+++ b/api/iceberg_datafusion/table/struct.IcebergTableProvider.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta http-equiv="refresh" 
content="0;URL=../../iceberg_datafusion/struct.IcebergTableProvider.html">
+    <title>Redirection</title>
+</head>
+<body>
+    <p>Redirecting to <a 
href="../../iceberg_datafusion/struct.IcebergTableProvider.html">../../iceberg_datafusion/struct.IcebergTableProvider.html</a>...</p>
+    
<script>location.replace("../../iceberg_datafusion/struct.IcebergTableProvider.html"
 + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/api/search-index.js b/api/search-index.js
index d5569ab5..3b601ce0 100644
--- a/api/search-index.js
+++ b/api/search-index.js
@@ -1,11 +1,11 @@
 var searchIndex = new Map(JSON.parse('[\
-["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
 [...]
+["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
 [...]
 
["iceberg_catalog_glue",{"t":"SSSSSFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQ","n":["AWS_ACCESS_KEY_ID","AWS_PROFILE_NAME","AWS_REGION_NAME","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","GlueCatalog","GlueCatalogConfig","borrow","borrow","borrow_mut","borrow_mut","builder","create_namespace","create_table","deref","deref","deref_mut","deref_mut","drop","drop","drop_namespace","drop_table","file_io","fmt","fmt","from","from","get_namespace","init","init","into","into","into_shared","i
 [...]
 
["iceberg_catalog_hms",{"t":"PPFFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Buffered","Framed","HmsCatalog","HmsCatalogConfig","HmsThriftTransport","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","builder","create_namespace","create_table","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop_namespace","drop_table","file_io","fmt","fmt","fmt","from","from","from","get_namespace","init","init","init","into
 [...]
 
["iceberg_catalog_memory",{"t":"FNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["MemoryCatalog","borrow","borrow_mut","create_namespace","create_table","deref","deref_mut","drop","drop_namespace","drop_table","fmt","from","get_namespace","init","into","list_namespaces","list_tables","load_table","namespace_exists","new","rename_table","table_exists","try_from","try_into","type_id","update_namespace","update_table","vzip"],"q":[[0,"iceberg_catalog_memory"],[28,"iceberg_catalog_memory::catalog"],[29,"i
 [...]
 
["iceberg_catalog_rest",{"t":"FFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["RestCatalog","RestCatalogConfig","borrow","borrow","borrow_mut","borrow_mut","builder","clone","clone_into","create_namespace","create_table","deref","deref","deref_mut","deref_mut","drop","drop","drop_namespace","drop_table","fmt","fmt","from","from","get_namespace","init","init","into","into","list_namespaces","list_tables","load_table","namespace_exists","new","rename_table","table_exists","to_owned","
 [...]
 
["iceberg_catalog_sql",{"t":"PPGFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["DollarNumeric","QMark","SqlBindStyle","SqlCatalog","SqlCatalogConfig","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","builder","create_namespace","create_table","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop_namespace","drop_table","eq","fmt","fmt","fmt","from","from","from","get_namespace","init","init","init","into","into","into","l
 [...]
-["iceberg_datafusion",{"t":"FNNNNNNNHNNNNHNNNNN","n":["IcebergCatalogProvider","as_any","borrow","borrow_mut","deref","deref_mut","drop","from","from_datafusion_error","init","into","schema","schema_names","to_datafusion_error","try_from","try_into","try_new","type_id","vzip"],"q":[[0,"iceberg_datafusion"],[19,"iceberg_datafusion::catalog"],[20,"core::any"],[21,"datafusion_common::error"],[22,"iceberg::error"],[23,"datafusion_catalog::schema"],[24,"alloc::sync"],[25,"core::option"],[26,"
 [...]
+["iceberg_datafusion",{"t":"FFNNNNNNNNNNNNNNHNNNNNNNNNNHNNNNNNNNNN","n":["IcebergCatalogProvider","IcebergTableProvider","as_any","as_any","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","from","from","from_datafusion_error","init","init","into","into","scan","schema","schema","schema_names","supports_filters_pushdown","table_type","to_datafusion_error","try_from","try_from","try_into","try_into","try_new","try_new_from_table","type_id","
 [...]
 
["iceberg_test_utils",{"t":"CHHFNNNNNNNNNNNNN","n":["docker","normalize_test_name","set_up","DockerCompose","borrow","borrow_mut","drop","fmt","from","get_container_ip","into","new","project_name","run","try_from","try_into","type_id"],"q":[[0,"iceberg_test_utils"],[3,"iceberg_test_utils::docker"],[17,"alloc::string"],[18,"core::fmt"],[19,"core::net::ip_addr"],[20,"core::convert"],[21,"core::result"],[22,"core::any"],[23,"iceberg_test_utils::common"]],"i":[0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6
 [...]
 ]'));
 if (typeof exports !== 'undefined') exports.searchIndex = searchIndex;
diff --git a/api/search.desc/iceberg_datafusion/iceberg_datafusion-desc-0-.js 
b/api/search.desc/iceberg_datafusion/iceberg_datafusion-desc-0-.js
index 458a11c7..2dfa2c7b 100644
--- a/api/search.desc/iceberg_datafusion/iceberg_datafusion-desc-0-.js
+++ b/api/search.desc/iceberg_datafusion/iceberg_datafusion-desc-0-.js
@@ -1 +1 @@
-searchState.loadedDescShard("iceberg_datafusion", 0, "Provides an interface to 
manage and access multiple schemas\nReturns the argument unchanged.\nConverts a 
datafusion error into an iceberg error.\nCalls 
<code>U::from(self)</code>.\nConverts an iceberg error into a datafusion 
error.\nAsynchronously tries to construct a new …")
\ No newline at end of file
+searchState.loadedDescShard("iceberg_datafusion", 0, "Provides an interface to 
manage and access multiple schemas\nRepresents a <code>TableProvider</code> for 
the Iceberg <code>Catalog</code>, …\nReturns the argument unchanged.\nReturns 
the argument unchanged.\nConverts a datafusion error into an iceberg 
error.\nCalls <code>U::from(self)</code>.\nCalls 
<code>U::from(self)</code>.\nConverts an iceberg error into a datafusion 
error.\nAsynchronously tries to construct a new …\nAsynchronousl [...]
\ No newline at end of file
diff --git a/api/settings.html b/api/settings.html
index 0b4d7eab..430a9162 100644
--- a/api/settings.html
+++ b/api/settings.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Settings 
of 
Rustdoc"><title>Settings</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562
 [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Settings 
of 
Rustdoc"><title>Settings</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562
 [...]
\ No newline at end of file
diff --git a/api/src/iceberg_datafusion/lib.rs.html 
b/api/src/iceberg_datafusion/lib.rs.html
index 29145ee1..ee485e8f 100644
--- a/api/src/iceberg_datafusion/lib.rs.html
+++ b/api/src/iceberg_datafusion/lib.rs.html
@@ -24,6 +24,7 @@
 <a href="#24" id="24">24</a>
 <a href="#25" id="25">25</a>
 <a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
 </pre></div><pre class="rust"><code><span class="comment">// Licensed to the 
Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -50,4 +51,5 @@
 <span class="kw">mod </span>physical_plan;
 <span class="kw">mod </span>schema;
 <span class="kw">mod </span>table;
+<span class="kw">pub use </span>table::<span class="kw-2">*</span>;
 </code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/api/src/iceberg_datafusion/table.rs.html 
b/api/src/iceberg_datafusion/table.rs.html
index 9dbc0d3c..6aded175 100644
--- a/api/src/iceberg_datafusion/table.rs.html
+++ b/api/src/iceberg_datafusion/table.rs.html
@@ -103,6 +103,13 @@
 <a href="#103" id="103">103</a>
 <a href="#104" id="104">104</a>
 <a href="#105" id="105">105</a>
+<a href="#106" id="106">106</a>
+<a href="#107" id="107">107</a>
+<a href="#108" id="108">108</a>
+<a href="#109" id="109">109</a>
+<a href="#110" id="110">110</a>
+<a href="#111" id="111">111</a>
+<a href="#112" id="112">112</a>
 </pre></div><pre class="rust"><code><span class="comment">// Licensed to the 
Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -138,7 +145,7 @@
 
 <span class="doccomment">/// Represents a [`TableProvider`] for the Iceberg 
[`Catalog`],
 /// managing access to a [`Table`].
-</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span 
class="kw">struct </span>IcebergTableProvider {
+</span><span class="kw">pub struct </span>IcebergTableProvider {
     <span class="doccomment">/// A table in the catalog.
     </span>table: Table,
     <span class="doccomment">/// A reference-counted arrow `Schema`.
@@ -161,6 +168,13 @@
 
         <span class="prelude-val">Ok</span>(IcebergTableProvider { table, 
schema })
     }
+
+    <span class="doccomment">/// Asynchronously tries to construct a new 
[`IcebergTableProvider`]
+    /// using the given table. Can be used to create a table provider from an 
existing table regardless of the catalog implementation.
+    </span><span class="kw">pub async fn </span>try_new_from_table(table: 
Table) -&gt; <span class="prelude-ty">Result</span>&lt;<span 
class="self">Self</span>&gt; {
+        <span class="kw">let </span>schema = 
Arc::new(schema_to_arrow_schema(table.metadata().current_schema())<span 
class="question-mark">?</span>);
+        <span class="prelude-val">Ok</span>(IcebergTableProvider { table, 
schema })
+    }
 }
 
 <span class="attr">#[async_trait]
diff --git a/api/trait.impl/core/marker/trait.Freeze.js 
b/api/trait.impl/core/marker/trait.Freeze.js
index f5dac08a..94328941 100644
--- a/api/trait.impl/core/marker/trait.Freeze.js
+++ b/api/trait.impl/core/marker/trait.Freeze.js
@@ -5,6 +5,6 @@
 "iceberg_catalog_memory":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"struct\" 
href=\"iceberg_catalog_memory/struct.MemoryCatalog.html\" title=\"struct 
iceberg_catalog_memory::MemoryCatalog\">MemoryCatalog</a>",1,["iceberg_catalog_memory::catalog::MemoryCatalog"]]],
 "iceberg_catalog_rest":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"struct\" 
href=\"iceberg_catalog_rest/struct.RestCatalog.html\" title=\"struct 
iceberg_catalog_rest::RestCatalog\">RestCatalog</a>",1,["iceberg_catalog_rest::catalog::RestCatalog"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marke [...]
 "iceberg_catalog_sql":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"enum\" 
href=\"iceberg_catalog_sql/enum.SqlBindStyle.html\" title=\"enum 
iceberg_catalog_sql::SqlBindStyle\">SqlBindStyle</a>",1,["iceberg_catalog_sql::catalog::SqlBindStyle"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Free [...]
-"iceberg_datafusion":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]]],
+"iceberg_datafusion":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Free [...]
 "iceberg_test_utils":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"struct\" 
href=\"iceberg_test_utils/docker/struct.DockerCompose.html\" title=\"struct 
iceberg_test_utils::docker::DockerCompose\">DockerCompose</a>",1,["iceberg_test_utils::docker::DockerCompose"]]]
 };if (window.register_implementors) 
{window.register_implementors(implementors);} else {window.pending_implementors 
= implementors;}})()
\ No newline at end of file
diff --git a/api/trait.impl/core/marker/trait.Send.js 
b/api/trait.impl/core/marker/trait.Send.js
index 46b6f2fa..d58b8bf8 100644
--- a/api/trait.impl/core/marker/trait.Send.js
+++ b/api/trait.impl/core/marker/trait.Send.js
@@ -5,6 +5,6 @@
 "iceberg_catalog_memory":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" 
href=\"iceberg_catalog_memory/struct.MemoryCatalog.html\" title=\"struct 
iceberg_catalog_memory::MemoryCatalog\">MemoryCatalog</a>",1,["iceberg_catalog_memory::catalog::MemoryCatalog"]]],
 "iceberg_catalog_rest":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" 
href=\"iceberg_catalog_rest/struct.RestCatalog.html\" title=\"struct 
iceberg_catalog_rest::RestCatalog\">RestCatalog</a>",1,["iceberg_catalog_rest::catalog::RestCatalog"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\" [...]
 "iceberg_catalog_sql":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" 
href=\"iceberg_catalog_sql/enum.SqlBindStyle.html\" title=\"enum 
iceberg_catalog_sql::SqlBindStyle\">SqlBindStyle</a>",1,["iceberg_catalog_sql::catalog::SqlBindStyle"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send< [...]
-"iceberg_datafusion":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]]],
+"iceberg_datafusion":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\ [...]
 "iceberg_test_utils":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\"struct\" 
href=\"iceberg_test_utils/docker/struct.DockerCompose.html\" title=\"struct 
iceberg_test_utils::docker::DockerCompose\">DockerCompose</a>",1,["iceberg_test_utils::docker::DockerCompose"]]]
 };if (window.register_implementors) 
{window.register_implementors(implementors);} else {window.pending_implementors 
= implementors;}})()
\ No newline at end of file
diff --git a/api/trait.impl/core/marker/trait.Sync.js 
b/api/trait.impl/core/marker/trait.Sync.js
index 0856cf39..7f8c6e76 100644
--- a/api/trait.impl/core/marker/trait.Sync.js
+++ b/api/trait.impl/core/marker/trait.Sync.js
@@ -5,6 +5,6 @@
 "iceberg_catalog_memory":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" 
href=\"iceberg_catalog_memory/struct.MemoryCatalog.html\" title=\"struct 
iceberg_catalog_memory::MemoryCatalog\">MemoryCatalog</a>",1,["iceberg_catalog_memory::catalog::MemoryCatalog"]]],
 "iceberg_catalog_rest":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" 
href=\"iceberg_catalog_rest/struct.RestCatalog.html\" title=\"struct 
iceberg_catalog_rest::RestCatalog\">RestCatalog</a>",1,["iceberg_catalog_rest::catalog::RestCatalog"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\" [...]
 "iceberg_catalog_sql":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" 
href=\"iceberg_catalog_sql/enum.SqlBindStyle.html\" title=\"enum 
iceberg_catalog_sql::SqlBindStyle\">SqlBindStyle</a>",1,["iceberg_catalog_sql::catalog::SqlBindStyle"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\">Sync< [...]
-"iceberg_datafusion":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]]],
+"iceberg_datafusion":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\ [...]
 "iceberg_test_utils":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" 
href=\"iceberg_test_utils/docker/struct.DockerCompose.html\" title=\"struct 
iceberg_test_utils::docker::DockerCompose\">DockerCompose</a>",1,["iceberg_test_utils::docker::DockerCompose"]]]
 };if (window.register_implementors) 
{window.register_implementors(implementors);} else {window.pending_implementors 
= implementors;}})()
\ No newline at end of file
diff --git a/api/trait.impl/core/marker/trait.Unpin.js 
b/api/trait.impl/core/marker/trait.Unpin.js
index 5a9286aa..2b6e16da 100644
--- a/api/trait.impl/core/marker/trait.Unpin.js
+++ b/api/trait.impl/core/marker/trait.Unpin.js
@@ -5,6 +5,6 @@
 "iceberg_catalog_memory":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" 
href=\"iceberg_catalog_memory/struct.MemoryCatalog.html\" title=\"struct 
iceberg_catalog_memory::MemoryCatalog\">MemoryCatalog</a>",1,["iceberg_catalog_memory::catalog::MemoryCatalog"]]],
 "iceberg_catalog_rest":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" 
href=\"iceberg_catalog_rest/struct.RestCatalog.html\" title=\"struct 
iceberg_catalog_rest::RestCatalog\">RestCatalog</a>",1,["iceberg_catalog_rest::catalog::RestCatalog"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Un [...]
 "iceberg_catalog_sql":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" 
href=\"iceberg_catalog_sql/enum.SqlBindStyle.html\" title=\"enum 
iceberg_catalog_sql::SqlBindStyle\">SqlBindStyle</a>",1,["iceberg_catalog_sql::catalog::SqlBindStyle"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\"> [...]
-"iceberg_datafusion":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]]],
+"iceberg_datafusion":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.h [...]
 "iceberg_test_utils":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"struct\" 
href=\"iceberg_test_utils/docker/struct.DockerCompose.html\" title=\"struct 
iceberg_test_utils::docker::DockerCompose\">DockerCompose</a>",1,["iceberg_test_utils::docker::DockerCompose"]]]
 };if (window.register_implementors) 
{window.register_implementors(implementors);} else {window.pending_implementors 
= implementors;}})()
\ No newline at end of file
diff --git a/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js 
b/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js
index 627b1e2d..83296c86 100644
--- a/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js
+++ b/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js
@@ -5,6 +5,6 @@
 "iceberg_catalog_memory":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for 
<a class=\"struct\" href=\"iceberg_catalog_memory/struct.MemoryCatalog.html\" 
title=\"struct 
iceberg_catalog_memory::MemoryCatalog\">MemoryCatalog</a>",1,["iceberg_catalog_memory::catalog::MemoryCatalog"]]],
 "iceberg_catalog_rest":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for 
<a class=\"struct\" href=\"iceberg_catalog_rest/struct.RestCatalog.html\" 
title=\"struct 
iceberg_catalog_rest::RestCatalog\">RestCatalog</a>",1,["iceberg_catalog_rest::catalog::RestCatalog"]],["impl
 <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic/un [...]
 "iceberg_catalog_sql":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for 
<a class=\"struct\" href=\"iceberg_catalog_sql/struct.SqlCatalog.html\" 
title=\"struct 
iceberg_catalog_sql::SqlCatalog\">SqlCatalog</a>",1,["iceberg_catalog_sql::catalog::SqlCatalog"]],["impl
 !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_sa [...]
-"iceberg_datafusion":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for 
<a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]]],
+"iceberg_datafusion":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for 
<a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]],["impl
 !<a class=\"trait\" href=\"https://do [...]
 "iceberg_test_utils":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for 
<a class=\"struct\" 
href=\"iceberg_test_utils/docker/struct.DockerCompose.html\" title=\"struct 
iceberg_test_utils::docker::DockerCompose\">DockerCompose</a>",1,["iceberg_test_utils::docker::DockerCompose"]]]
 };if (window.register_implementors) 
{window.register_implementors(implementors);} else {window.pending_implementors 
= implementors;}})()
\ No newline at end of file
diff --git a/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js 
b/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js
index 1cc9b83a..a7244627 100644
--- a/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js
+++ b/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js
@@ -5,6 +5,6 @@
 "iceberg_catalog_memory":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a 
class=\"struct\" href=\"iceberg_catalog_memory/struct.MemoryCatalog.html\" 
title=\"struct 
iceberg_catalog_memory::MemoryCatalog\">MemoryCatalog</a>",1,["iceberg_catalog_memory::catalog::MemoryCatalog"]]],
 "iceberg_catalog_rest":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a 
class=\"struct\" href=\"iceberg_catalog_rest/struct.RestCatalog.html\" 
title=\"struct 
iceberg_catalog_rest::RestCatalog\">RestCatalog</a>",1,["iceberg_catalog_rest::catalog::RestCatalog"]],["impl
 <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe [...]
 "iceberg_catalog_sql":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a 
class=\"struct\" href=\"iceberg_catalog_sql/struct.SqlCatalog.html\" 
title=\"struct 
iceberg_catalog_sql::SqlCatalog\">SqlCatalog</a>",1,["iceberg_catalog_sql::catalog::SqlCatalog"]],["impl
 !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait. [...]
-"iceberg_datafusion":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a 
class=\"struct\" href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" 
title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]]],
+"iceberg_datafusion":[["impl !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a 
class=\"struct\" href=\"iceberg_datafusion/struct.IcebergCatalogProvider.html\" 
title=\"struct 
iceberg_datafusion::IcebergCatalogProvider\">IcebergCatalogProvider</a>",1,["iceberg_datafusion::catalog::IcebergCatalogProvider"]],["impl
 !<a class=\"trait\" href=\"https://doc.rust-la [...]
 "iceberg_test_utils":[["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a 
class=\"struct\" href=\"iceberg_test_utils/docker/struct.DockerCompose.html\" 
title=\"struct 
iceberg_test_utils::docker::DockerCompose\">DockerCompose</a>",1,["iceberg_test_utils::docker::DockerCompose"]]]
 };if (window.register_implementors) 
{window.register_implementors(implementors);} else {window.pending_implementors 
= implementors;}})()
\ No newline at end of file
diff --git a/api/trait.impl/datafusion_catalog/table/trait.TableProvider.js 
b/api/trait.impl/datafusion_catalog/table/trait.TableProvider.js
new file mode 100644
index 00000000..4137e664
--- /dev/null
+++ b/api/trait.impl/datafusion_catalog/table/trait.TableProvider.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"iceberg_datafusion":[["impl TableProvider for <a class=\"struct\" 
href=\"iceberg_datafusion/struct.IcebergTableProvider.html\" title=\"struct 
iceberg_datafusion::IcebergTableProvider\">IcebergTableProvider</a>"]]
+};if (window.register_implementors) 
{window.register_implementors(implementors);} else {window.pending_implementors 
= implementors;}})()
\ No newline at end of file

Reply via email to