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 0d5e6a52 deploy: d03c4f865cc9775d1dc96fabf32c19a5b8c72d7b
0d5e6a52 is described below

commit 0d5e6a529be8ff73553e056aca8516a649532c1e
Author: Xuanwo <[email protected]>
AuthorDate: Mon Sep 23 07:30:59 2024 +0000

    deploy: d03c4f865cc9775d1dc96fabf32c19a5b8c72d7b
---
 api/iceberg/expr/enum.BoundPredicate.html          |   4 +-
 api/iceberg/expr/enum.PredicateOperator.html       |   4 +-
 api/iceberg/expr/struct.BinaryExpression.html      |   4 +-
 api/iceberg/expr/struct.BoundReference.html        |   4 +-
 api/iceberg/expr/struct.SetExpression.html         |   4 +-
 api/iceberg/spec/enum.DataFileFormat.html          |   4 +-
 api/iceberg/spec/enum.PrimitiveType.html           |   4 +-
 api/iceberg/spec/enum.SortOrderBuilderError.html   |   2 +-
 api/iceberg/spec/enum.Transform.html               |   4 +-
 api/iceberg/spec/enum.Type.html                    |   2 +-
 api/iceberg/spec/struct.Datum.html                 |   2 +-
 api/iceberg/spec/struct.NestedField.html           |   4 +-
 api/iceberg/spec/struct.Schema.html                |   6 +-
 api/iceberg/spec/struct.SortField.html             |   4 +-
 api/iceberg/struct.Error.html                      |   2 +-
 api/search-index.js                                |   2 +-
 api/src/iceberg/arrow/schema.rs.html               | 114 +++++++---
 .../visitors/row_group_metrics_evaluator.rs.html   | 242 ++++++++++++++++-----
 api/type.impl/alloc/boxed/struct.Box.js            |   2 +-
 api/type.impl/core/result/enum.Result.js           |   2 +-
 20 files changed, 299 insertions(+), 117 deletions(-)

diff --git a/api/iceberg/expr/enum.BoundPredicate.html 
b/api/iceberg/expr/enum.BoundPredicate.html
index 2c7416cd..58b05bd9 100644
--- a/api/iceberg/expr/enum.BoundPredicate.html
+++ b/api/iceberg/expr/enum.BoundPredicate.html
@@ -16,8 +16,8 @@
 </div><section id="variant.Unary" class="variant"><a href="#variant.Unary" 
class="anchor">§</a><h3 class="code-header">Unary(<a class="struct" 
href="struct.UnaryExpression.html" title="struct 
iceberg::expr::UnaryExpression">UnaryExpression</a>&lt;<a class="struct" 
href="struct.BoundReference.html" title="struct 
iceberg::expr::BoundReference">BoundReference</a>&gt;)</h3></section><div 
class="docblock"><p>Unary expression, for example, <code>a IS NULL</code>.</p>
 </div><section id="variant.Binary" class="variant"><a href="#variant.Binary" 
class="anchor">§</a><h3 class="code-header">Binary(<a class="struct" 
href="struct.BinaryExpression.html" title="struct 
iceberg::expr::BinaryExpression">BinaryExpression</a>&lt;<a class="struct" 
href="struct.BoundReference.html" title="struct 
iceberg::expr::BoundReference">BoundReference</a>&gt;)</h3></section><div 
class="docblock"><p>Binary expression, for example, <code>a &gt; 10</code>.</p>
 </div><section id="variant.Set" class="variant"><a href="#variant.Set" 
class="anchor">§</a><h3 class="code-header">Set(<a class="struct" 
href="struct.SetExpression.html" title="struct 
iceberg::expr::SetExpression">SetExpression</a>&lt;<a class="struct" 
href="struct.BoundReference.html" title="struct 
iceberg::expr::BoundReference">BoundReference</a>&gt;)</h3></section><div 
class="docblock"><p>Set predicates, for example, <code>a IN (1, 2, 
3)</code>.</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-BoundPredicate" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/expr/predicate.rs.html#653">source</a><a 
href="#impl-Clone-for-BoundPredicate" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" h [...]
-    __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 [...]
+</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-BoundPredicate" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/expr/predicate.rs.html#653">source</a><a 
href="#impl-Clone-for-BoundPredicate" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" h [...]
+    __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-BoundPredicate" class="impl"><a class="src rightside" 
href="../../src/iceberg/expr/predicate.rs.html#653">source</a><a 
href="#impl-Serialize-for-BoundPredicate" 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 
[...]
     __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-StructuralPartialEq-for-BoundPredicate" class="impl"><a class="src 
rightside" href=". [...]
diff --git a/api/iceberg/expr/enum.PredicateOperator.html 
b/api/iceberg/expr/enum.PredicateOperator.html
index 4c31fae0..43ae7cdf 100644
--- a/api/iceberg/expr/enum.PredicateOperator.html
+++ b/api/iceberg/expr/enum.PredicateOperator.html
@@ -38,8 +38,8 @@
 <span class="macro">assert!</span>(PredicateOperator::Eq.negate() == 
PredicateOperator::NotEq);
 <span class="macro">assert!</span>(PredicateOperator::In.negate() == 
PredicateOperator::NotIn);
 <span class="macro">assert!</span>(PredicateOperator::StartsWith.negate() == 
PredicateOperator::NotStartsWith);</code></pre></div>
-</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-PredicateOperator" class="impl"><a class="src rightside" 
href="../../src/iceberg/expr/mod.rs.html#37">source</a><a 
href="#impl-Clone-for-PredicateOperator" 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-Displ [...]
+</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-PredicateOperator" class="impl"><a class="src rightside" 
href="../../src/iceberg/expr/mod.rs.html#37">source</a><a 
href="#impl-Clone-for-PredicateOperator" 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-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-PredicateOperator" class="impl"><a class="src rightside" 
href="../../src/iceberg/expr/mod.rs.html#37">source</a><a 
href="#impl-Serialize-for-PredicateOperator" 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="tra 
[...]
     __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-Copy-for-PredicateOperator" class="impl"><a class="src rightside" 
href="../../src/ice [...]
diff --git a/api/iceberg/expr/struct.BinaryExpression.html 
b/api/iceberg/expr/struct.BinaryExpression.html
index 790051b4..b19c116a 100644
--- a/api/iceberg/expr/struct.BinaryExpression.html
+++ b/api/iceberg/expr/struct.BinaryExpression.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="Binary 
predicate, for example, `a &gt; 10`."><title>BinaryExpression 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-BinaryExpression%3CT%3E" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/expr/predicate.rs.html#200-211">source</a><a 
href="#impl-Bind-for-BinaryExpression%3CT%3E" class="anchor">§</a><h3 
class="code-header" [...]
+</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-BinaryExpression%3CT%3E" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/expr/predicate.rs.html#200-211">source</a><a 
href="#impl-Bind-for-BinaryExpression%3CT%3E" class="anchor">§</a><h3 
class="code-header" [...]
     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#152">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-BinaryExpression%3CT%3E" class="impl"><a class="src 
rightside" href="../../src/iceberg/expr/predicate.rs.html#152">source</a><a 
href="#impl-Serialize-for-BinaryExpression%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/trai [...]
     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#152">source</a><a 
href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://docs.rs [...]
diff --git a/api/iceberg/expr/struct.BoundReference.html 
b/api/iceberg/expr/struct.BoundReference.html
index d739d829..97ee66f3 100644
--- a/api/iceberg/expr/struct.BoundReference.html
+++ b/api/iceberg/expr/struct.BoundReference.html
@@ -6,8 +6,8 @@
 ) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new 
bound reference.</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.field" class="method"><a class="src rightside" 
href="../../src/iceberg/expr/term.rs.html#366-368">source</a><h4 
class="code-header">pub fn <a href="#method.field" 
class="fn">field</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="../spec/struct.NestedField.html" title="struct 
iceberg::spec::NestedField">NestedField</a></h4></section></summary><div 
class="docblock"><p>Return the field of this reference.</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.accessor" class="method"><a class="src rightside" 
href="../../src/iceberg/expr/term.rs.html#371-373">source</a><h4 
class="code-header">pub fn <a href="#method.accessor" 
class="fn">accessor</a>(&amp;self) -&gt; 
&amp;StructAccessor</h4></section></summary><div class="docblock"><p>Get this 
BoundReference’s Accessor</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-Clone-for-BoundReference" class="impl"><a class="src rightside" 
href="../../src/iceberg/expr/term.rs.html#342">source</a><a 
href="#impl-Clone-for-BoundReference" class="anchor">§</a><h3 
class="code-header">im [...]
-    __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 [...]
+</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-BoundReference" class="impl"><a class="src rightside" 
href="../../src/iceberg/expr/term.rs.html#342">source</a><a 
href="#impl-Clone-for-BoundReference" class="anchor">§</a><h3 
class="code-header">im [...]
+    __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-BoundReference" class="impl"><a class="src rightside" 
href="../../src/iceberg/expr/term.rs.html#342">source</a><a 
href="#impl-Serialize-for-BoundReference" 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 s [...]
     __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-BoundReference" class="impl"><a class="src rightside" 
href="../../src/iceberg/ [...]
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.PrimitiveType.html 
b/api/iceberg/spec/enum.PrimitiveType.html
index 10e1d525..bb03ba07 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 0ca83947..65d194bb 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.Transform.html 
b/api/iceberg/spec/enum.Transform.html
index eaba5058..7a2cd218 100644
--- a/api/iceberg/spec/enum.Transform.html
+++ b/api/iceberg/spec/enum.Transform.html
@@ -125,8 +125,8 @@ and filtering based on the original, untransformed data.</p>
 <code>bucket(a, 37) as bs</code>, if one row matches <code>a = 10</code>, then 
its partition
 value should match <code>bucket(10, 37) as bs</code>, and we project <code>a = 
10</code> to
 <code>bs = bucket(10, 37)</code></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-Clone-for-Transform" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/transform.rs.html#48">source</a><a 
href="#impl-Clone-for-Transform" class="anchor">§</a><h3 
class="code-header">impl <a  [...]
-    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-Transform" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/transform.rs.html#48">source</a><a 
href="#impl-Clone-for-Transform" class="anchor">§</a><h3 
class="code-header">impl <a  [...]
+    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-Transform" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/transform.rs.html#677-682">source</a><a 
href="#impl-Serialize-for-Transform" 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 se [...]
     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-Copy-for-Transform" 
class="impl"><a class="src rightside" href="../../src/iceberg/spec/ [...]
diff --git a/api/iceberg/spec/enum.Type.html b/api/iceberg/spec/enum.Type.html
index 10435d45..574e2795 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/struct.Datum.html 
b/api/iceberg/spec/struct.Datum.html
index 30b36f51..bf7c0fea 100644
--- a/api/iceberg/spec/struct.Datum.html
+++ b/api/iceberg/spec/struct.Datum.html
@@ -265,7 +265,7 @@ Example:</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.data_type" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/values.rs.html#1049-1051">source</a><h4 
class="code-header">pub fn <a href="#method.data_type" 
class="fn">data_type</a>(&amp;self) -&gt; &amp;<a class="enum" 
href="enum.PrimitiveType.html" title="enum 
iceberg::spec::PrimitiveType">PrimitiveType</a></h4></section></summary><div 
class="docblock"><p>Get the primitive type fro [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.is_nan" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/values.rs.html#1055-1061">source</a><h4 
class="code-header">pub fn <a href="#method.is_nan" 
class="fn">is_nan</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>Returns true if the Literal represents a primitive type
 that can be a NaN, and that it’s value is NaN</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-Clone-for-Datum" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/values.rs.html#96">source</a><a 
href="#impl-Clone-for-Datum" class="anchor">§</a><h3 class="code-header">impl 
<a class="trai [...]
+</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-Datum" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/values.rs.html#96">source</a><a 
href="#impl-Clone-for-Datum" class="anchor">§</a><h3 class="code-header">impl 
<a class="trai [...]
     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/struct.NestedField.html 
b/api/iceberg/spec/struct.NestedField.html
index adf19fb1..f91ae52a 100644
--- a/api/iceberg/spec/struct.NestedField.html
+++ b/api/iceberg/spec/struct.NestedField.html
@@ -30,8 +30,8 @@ Fields may have an optional comment or doc string. Fields can 
have default value
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_doc" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#655-658">source</a><h4 
class="code-header">pub fn <a href="#method.with_doc" 
class="fn">with_doc</a>(self, doc: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html"; 
title="trait alloc::string::ToString">ToString</a>) -&gt; 
Self</h4></section></summary><div class=" [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_initial_default" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#661-664">source</a><h4 
class="code-header">pub fn <a href="#method.with_initial_default" 
class="fn">with_initial_default</a>(self, value: <a class="enum" 
href="enum.Literal.html" title="enum iceberg::spec::Literal">Literal</a>) -&gt; 
Self</h4></section></summary><div class="docblock"><p>Set the [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_write_default" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#667-670">source</a><h4 
class="code-header">pub fn <a href="#method.with_write_default" 
class="fn">with_write_default</a>(self, value: <a class="enum" 
href="enum.Literal.html" title="enum iceberg::spec::Literal">Literal</a>) -&gt; 
Self</h4></section></summary><div class="docblock"><p>Set the field [...]
-</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-NestedField" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#512">source</a><a 
href="#impl-Clone-for-NestedField" class="anchor">§</a><h3 
class="code-header">imp [...]
-    __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 [...]
+</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-NestedField" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#512">source</a><a 
href="#impl-Clone-for-NestedField" class="anchor">§</a><h3 
class="code-header">imp [...]
+    __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-NestedField" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#512">source</a><a 
href="#impl-Serialize-for-NestedField" 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 se [...]
     __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-NestedField" 
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
diff --git a/api/iceberg/spec/struct.Schema.html 
b/api/iceberg/spec/struct.Schema.html
index 988e9b78..3df6ea5c 100644
--- a/api/iceberg/spec/struct.Schema.html
+++ b/api/iceberg/spec/struct.Schema.html
@@ -17,11 +17,11 @@
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.field_id_by_name" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/schema.rs.html#336-338">source</a><h4 
class="code-header">pub fn <a href="#method.field_id_by_name" 
class="fn">field_id_by_name</a>(&amp;self, name: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.str.html";>str</a>) -&gt; 
<a class="enum" href="https://doc.rust-lang.org/nightly/core/op [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.name_by_field_id" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/schema.rs.html#341-343">source</a><h4 
class="code-header">pub fn <a href="#method.name_by_field_id" 
class="fn">name_by_field_id</a>(&amp;self, field_id: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>) -&gt; 
<a class="enum" href="https://doc.rust-lang.org/nightly/core/opt [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.accessor_by_field_id" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/schema.rs.html#346-348">source</a><h4 
class="code-header">pub fn <a href="#method.accessor_by_field_id" 
class="fn">accessor_by_field_id</a>(&amp;self, field_id: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>) -&gt; 
<a class="enum" href="https://doc.rust-lang.org/nigh [...]
-</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-Schema" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/schema.rs.html#45">source</a><a 
href="#impl-Clone-for-Schema" class="anchor">§</a><h3 class="code-header">impl 
<a class="tr [...]
-    __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 [...]
+</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-Schema" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/schema.rs.html#45">source</a><a 
href="#impl-Clone-for-Schema" class="anchor">§</a><h3 class="code-header">impl 
<a class="tr [...]
+    __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/spec/struct.SortField.html 
b/api/iceberg/spec/struct.SortField.html
index 47da34c4..fd9083a3 100644
--- a/api/iceberg/spec/struct.SortField.html
+++ b/api/iceberg/spec/struct.SortField.html
@@ -11,8 +11,8 @@
 </div><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-SortField" class="impl"><a class="src 
rightside" href="../../src/iceberg/spec/sort.rs.html#75">source</a><a 
href="#impl-SortField" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.SortField.html" title="struct 
iceberg::spec::SortFiel [...]
 On the builder, call <code>.source_id(...)</code>, 
<code>.transform(...)</code>, <code>.direction(...)</code>, 
<code>.null_order(...)</code> to set the values of the fields.
 Finally, call <code>.build()</code> to create the instance of 
<code>SortField</code>.</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-Clone-for-SortField" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/sort.rs.html#75">source</a><a 
href="#impl-Clone-for-SortField" 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-Displ [...]
+</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-SortField" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/sort.rs.html#75">source</a><a 
href="#impl-Clone-for-SortField" 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-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-SortField" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/sort.rs.html#75">source</a><a 
href="#impl-Serialize-for-SortField" 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-SortField" 
class="impl"><a class="src rightside" href="../../src/iceberg/spec/ [...]
diff --git a/api/iceberg/struct.Error.html b/api/iceberg/struct.Error.html
index 92e56d20..21164920 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/search-index.js b/api/search-index.js
index 90baf63c..32cdd7b8 100644
--- a/api/search-index.js
+++ b/api/search-index.js
@@ -1,5 +1,5 @@
 var searchIndex = new Map(JSON.parse('[\
-["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
 [...]
+["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
 [...]
 
["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
 [...]
diff --git a/api/src/iceberg/arrow/schema.rs.html 
b/api/src/iceberg/arrow/schema.rs.html
index 663e4a91..3aef6177 100644
--- a/api/src/iceberg/arrow/schema.rs.html
+++ b/api/src/iceberg/arrow/schema.rs.html
@@ -1462,6 +1462,28 @@
 <a href="#1462" id="1462">1462</a>
 <a href="#1463" id="1463">1463</a>
 <a href="#1464" id="1464">1464</a>
+<a href="#1465" id="1465">1465</a>
+<a href="#1466" id="1466">1466</a>
+<a href="#1467" id="1467">1467</a>
+<a href="#1468" id="1468">1468</a>
+<a href="#1469" id="1469">1469</a>
+<a href="#1470" id="1470">1470</a>
+<a href="#1471" id="1471">1471</a>
+<a href="#1472" id="1472">1472</a>
+<a href="#1473" id="1473">1473</a>
+<a href="#1474" id="1474">1474</a>
+<a href="#1475" id="1475">1475</a>
+<a href="#1476" id="1476">1476</a>
+<a href="#1477" id="1477">1477</a>
+<a href="#1478" id="1478">1478</a>
+<a href="#1479" id="1479">1479</a>
+<a href="#1480" id="1480">1480</a>
+<a href="#1481" id="1481">1481</a>
+<a href="#1482" id="1482">1482</a>
+<a href="#1483" id="1483">1483</a>
+<a href="#1484" id="1484">1484</a>
+<a href="#1485" id="1485">1485</a>
+<a href="#1486" id="1486">1486</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
@@ -2129,43 +2151,57 @@
 }
 
 <span class="macro">macro_rules!</span> get_parquet_stat_as_datum {
-    (<span class="macro-nonterminal">$limit_type</span>:ident) =&gt; {
+    (<span class="macro-nonterminal">$limit_type</span>:tt) =&gt; {
         <span class="macro">paste::paste!</span> {
         <span class="doccomment">/// Gets the $limit_type value from a parquet 
Statistics struct, as a Datum
         </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
<span class="kw">fn </span>[&lt;get_parquet_stat_ <span 
class="macro-nonterminal">$limit_type </span>_as_datum&gt;](
             primitive_type: <span class="kw-2">&amp;</span>PrimitiveType, 
stats: <span class="kw-2">&amp;</span>Statistics
         ) -&gt; <span class="prelude-ty">Result</span>&lt;<span 
class="prelude-ty">Option</span>&lt;Datum&gt;&gt; {
-            <span class="prelude-val">Ok</span>(<span 
class="prelude-val">Some</span>(<span class="kw">match </span>(primitive_type, 
stats) {
-                (PrimitiveType::Boolean, Statistics::Boolean(stats)) =&gt; 
Datum::bool(<span class="kw-2">*</span>stats.<span 
class="macro-nonterminal">$limit_type</span>()),
-                (PrimitiveType::Int, Statistics::Int32(stats)) =&gt; 
Datum::int(<span class="kw-2">*</span>stats.<span 
class="macro-nonterminal">$limit_type</span>()),
-                (PrimitiveType::Date, Statistics::Int32(stats)) =&gt; 
Datum::date(<span class="kw-2">*</span>stats.<span 
class="macro-nonterminal">$limit_type</span>()),
-                (PrimitiveType::Long, Statistics::Int64(stats)) =&gt; 
Datum::long(<span class="kw-2">*</span>stats.<span 
class="macro-nonterminal">$limit_type</span>()),
-                (PrimitiveType::Time, Statistics::Int64(stats)) =&gt; 
Datum::time_micros(<span class="kw-2">*</span>stats.<span 
class="macro-nonterminal">$limit_type</span>())<span 
class="question-mark">?</span>,
+            <span class="prelude-val">Ok</span>(<span class="kw">match 
</span>(primitive_type, stats) {
+                (PrimitiveType::Boolean, Statistics::Boolean(stats)) =&gt; 
stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::bool(<span class="kw-2">*</span>val)),
+                (PrimitiveType::Int, Statistics::Int32(stats)) =&gt; 
stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::int(<span class="kw-2">*</span>val)),
+                (PrimitiveType::Date, Statistics::Int32(stats)) =&gt; 
stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::date(<span class="kw-2">*</span>val)),
+                (PrimitiveType::Long, Statistics::Int64(stats)) =&gt; 
stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::long(<span class="kw-2">*</span>val)),
+                (PrimitiveType::Time, Statistics::Int64(stats)) =&gt; {
+                    <span class="kw">let </span><span 
class="prelude-val">Some</span>(val) = stats.[&lt;<span 
class="macro-nonterminal">$limit_type </span>_opt&gt;]() <span class="kw">else 
</span>{
+                        <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
+                    };
+
+                    <span 
class="prelude-val">Some</span>(Datum::time_micros(<span 
class="kw-2">*</span>val)<span class="question-mark">?</span>)
+                }
                 (PrimitiveType::Timestamp, Statistics::Int64(stats)) =&gt; {
-                    Datum::timestamp_micros(<span 
class="kw-2">*</span>stats.<span class="macro-nonterminal">$limit_type</span>())
+                    stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::timestamp_micros(<span 
class="kw-2">*</span>val))
                 }
                 (PrimitiveType::Timestamptz, Statistics::Int64(stats)) =&gt; {
-                    Datum::timestamptz_micros(<span 
class="kw-2">*</span>stats.<span class="macro-nonterminal">$limit_type</span>())
+                    stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::timestamptz_micros(<span 
class="kw-2">*</span>val))
                 }
                 (PrimitiveType::TimestampNs, Statistics::Int64(stats)) =&gt; {
-                    Datum::timestamp_nanos(<span 
class="kw-2">*</span>stats.<span class="macro-nonterminal">$limit_type</span>())
+                    stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::timestamp_nanos(<span 
class="kw-2">*</span>val))
                 }
                 (PrimitiveType::TimestamptzNs, Statistics::Int64(stats)) =&gt; 
{
-                    Datum::timestamptz_nanos(<span 
class="kw-2">*</span>stats.<span class="macro-nonterminal">$limit_type</span>())
+                    stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::timestamptz_nanos(<span 
class="kw-2">*</span>val))
                 }
-                (PrimitiveType::Float, Statistics::Float(stats)) =&gt; 
Datum::float(<span class="kw-2">*</span>stats.<span 
class="macro-nonterminal">$limit_type</span>()),
-                (PrimitiveType::Double, Statistics::Double(stats)) =&gt; 
Datum::double(<span class="kw-2">*</span>stats.<span 
class="macro-nonterminal">$limit_type</span>()),
+                (PrimitiveType::Float, Statistics::Float(stats)) =&gt; 
stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::float(<span class="kw-2">*</span>val)),
+                (PrimitiveType::Double, Statistics::Double(stats)) =&gt; 
stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val|Datum::double(<span class="kw-2">*</span>val)),
                 (PrimitiveType::String, Statistics::ByteArray(stats)) =&gt; {
-                    Datum::string(stats.<span 
class="macro-nonterminal">$limit_type</span>().as_utf8()<span 
class="question-mark">?</span>)
+                    <span class="kw">let </span><span 
class="prelude-val">Some</span>(val) = stats.[&lt;<span 
class="macro-nonterminal">$limit_type </span>_opt&gt;]() <span class="kw">else 
</span>{
+                        <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
+                    };
+
+                    <span 
class="prelude-val">Some</span>(Datum::string(val.as_utf8()<span 
class="question-mark">?</span>))
                 }
                 (PrimitiveType::Decimal {
                     precision: <span class="kw">_</span>,
                     scale: <span class="kw">_</span>,
                 }, Statistics::ByteArray(stats)) =&gt; {
-                    Datum::new(
+                    <span class="kw">let </span><span 
class="prelude-val">Some</span>(bytes) = stats.[&lt;<span 
class="macro-nonterminal">$limit_type </span>_bytes_opt&gt;]() <span 
class="kw">else </span>{
+                        <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
+                    };
+
+                    <span class="prelude-val">Some</span>(Datum::new(
                         primitive_type.clone(),
-                        
PrimitiveLiteral::Int128(i128::from_le_bytes(stats.[&lt;<span 
class="macro-nonterminal">$limit_type </span>_bytes&gt;]().try_into()<span 
class="question-mark">?</span>)),
-                    )
+                        
PrimitiveLiteral::Int128(i128::from_le_bytes(bytes.try_into()<span 
class="question-mark">?</span>)),
+                    ))
                 }
                 (
                 PrimitiveType::Decimal {
@@ -2173,10 +2209,12 @@
                     scale: <span class="kw">_</span>,
                 },
                 Statistics::Int32(stats)) =&gt; {
-                    Datum::new(
-                        primitive_type.clone(),
-                        PrimitiveLiteral::Int128(i128::from(<span 
class="kw-2">*</span>stats.<span 
class="macro-nonterminal">$limit_type</span>())),
-                    )
+                    stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val| {
+                        Datum::new(
+                            primitive_type.clone(),
+                            PrimitiveLiteral::Int128(i128::from(<span 
class="kw-2">*</span>val)),
+                        )
+                    })
                 }
 
                 (
@@ -2186,40 +2224,46 @@
                     },
                     Statistics::Int64(stats),
                 ) =&gt; {
-                    Datum::new(
-                        primitive_type.clone(),
-                        PrimitiveLiteral::Int128(i128::from(<span 
class="kw-2">*</span>stats.<span 
class="macro-nonterminal">$limit_type</span>())),
-                    )
+                    stats.[&lt;<span class="macro-nonterminal">$limit_type 
</span>_opt&gt;]().map(|val| {
+                        Datum::new(
+                            primitive_type.clone(),
+                            PrimitiveLiteral::Int128(i128::from(<span 
class="kw-2">*</span>val)),
+                        )
+                    })
                 }
                 (PrimitiveType::Uuid, Statistics::FixedLenByteArray(stats)) 
=&gt; {
-                    <span class="kw">let </span>raw = stats.[&lt;<span 
class="macro-nonterminal">$limit_type </span>_bytes&gt;]();
-                    <span class="kw">if </span>raw.len() != <span 
class="number">16 </span>{
+                    <span class="kw">let </span><span 
class="prelude-val">Some</span>(bytes) = stats.[&lt;<span 
class="macro-nonterminal">$limit_type </span>_bytes_opt&gt;]() <span 
class="kw">else </span>{
+                        <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
+                    };
+                    <span class="kw">if </span>bytes.len() != <span 
class="number">16 </span>{
                         <span class="kw">return </span><span 
class="prelude-val">Err</span>(Error::new(
                             ErrorKind::Unexpected,
                             <span class="string">"Invalid length of uuid 
bytes."</span>,
                         ));
                     }
-                    Datum::uuid(Uuid::from_bytes(
-                        raw[..<span 
class="number">16</span>].try_into().unwrap(),
-                    ))
+                    <span 
class="prelude-val">Some</span>(Datum::uuid(Uuid::from_bytes(
+                        bytes[..<span 
class="number">16</span>].try_into().unwrap(),
+                    )))
                 }
                 (PrimitiveType::Fixed(len), 
Statistics::FixedLenByteArray(stat)) =&gt; {
-                    <span class="kw">let </span>raw = stat.[&lt;<span 
class="macro-nonterminal">$limit_type </span>_bytes&gt;]();
-                    <span class="kw">if </span>raw.len() != <span 
class="kw-2">*</span>len <span class="kw">as </span>usize {
+                    <span class="kw">let </span><span 
class="prelude-val">Some</span>(bytes) = stat.[&lt;<span 
class="macro-nonterminal">$limit_type </span>_bytes_opt&gt;]() <span 
class="kw">else </span>{
+                        <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
+                    };
+                    <span class="kw">if </span>bytes.len() != <span 
class="kw-2">*</span>len <span class="kw">as </span>usize {
                         <span class="kw">return </span><span 
class="prelude-val">Err</span>(Error::new(
                             ErrorKind::Unexpected,
                             <span class="string">"Invalid length of fixed 
bytes."</span>,
                         ));
                     }
-                    Datum::fixed(raw.to_vec())
+                    <span 
class="prelude-val">Some</span>(Datum::fixed(bytes.to_vec()))
                 }
                 (PrimitiveType::Binary, Statistics::ByteArray(stat)) =&gt; {
-                    Datum::binary(stat.[&lt;<span 
class="macro-nonterminal">$limit_type </span>_bytes&gt;]().to_vec())
+                    <span class="kw">return </span><span 
class="prelude-val">Ok</span>(stat.[&lt;<span 
class="macro-nonterminal">$limit_type 
</span>_bytes_opt&gt;]().map(|bytes|Datum::binary(bytes.to_vec())))
                 }
                 <span class="kw">_ </span>=&gt; {
                     <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
                 }
-            }))
+            })
             }
         }
     }
diff --git a/api/src/iceberg/expr/visitors/row_group_metrics_evaluator.rs.html 
b/api/src/iceberg/expr/visitors/row_group_metrics_evaluator.rs.html
index 7a1d6e61..77b9f87f 100644
--- a/api/src/iceberg/expr/visitors/row_group_metrics_evaluator.rs.html
+++ b/api/src/iceberg/expr/visitors/row_group_metrics_evaluator.rs.html
@@ -1870,6 +1870,75 @@
 <a href="#1870" id="1870">1870</a>
 <a href="#1871" id="1871">1871</a>
 <a href="#1872" id="1872">1872</a>
+<a href="#1873" id="1873">1873</a>
+<a href="#1874" id="1874">1874</a>
+<a href="#1875" id="1875">1875</a>
+<a href="#1876" id="1876">1876</a>
+<a href="#1877" id="1877">1877</a>
+<a href="#1878" id="1878">1878</a>
+<a href="#1879" id="1879">1879</a>
+<a href="#1880" id="1880">1880</a>
+<a href="#1881" id="1881">1881</a>
+<a href="#1882" id="1882">1882</a>
+<a href="#1883" id="1883">1883</a>
+<a href="#1884" id="1884">1884</a>
+<a href="#1885" id="1885">1885</a>
+<a href="#1886" id="1886">1886</a>
+<a href="#1887" id="1887">1887</a>
+<a href="#1888" id="1888">1888</a>
+<a href="#1889" id="1889">1889</a>
+<a href="#1890" id="1890">1890</a>
+<a href="#1891" id="1891">1891</a>
+<a href="#1892" id="1892">1892</a>
+<a href="#1893" id="1893">1893</a>
+<a href="#1894" id="1894">1894</a>
+<a href="#1895" id="1895">1895</a>
+<a href="#1896" id="1896">1896</a>
+<a href="#1897" id="1897">1897</a>
+<a href="#1898" id="1898">1898</a>
+<a href="#1899" id="1899">1899</a>
+<a href="#1900" id="1900">1900</a>
+<a href="#1901" id="1901">1901</a>
+<a href="#1902" id="1902">1902</a>
+<a href="#1903" id="1903">1903</a>
+<a href="#1904" id="1904">1904</a>
+<a href="#1905" id="1905">1905</a>
+<a href="#1906" id="1906">1906</a>
+<a href="#1907" id="1907">1907</a>
+<a href="#1908" id="1908">1908</a>
+<a href="#1909" id="1909">1909</a>
+<a href="#1910" id="1910">1910</a>
+<a href="#1911" id="1911">1911</a>
+<a href="#1912" id="1912">1912</a>
+<a href="#1913" id="1913">1913</a>
+<a href="#1914" id="1914">1914</a>
+<a href="#1915" id="1915">1915</a>
+<a href="#1916" id="1916">1916</a>
+<a href="#1917" id="1917">1917</a>
+<a href="#1918" id="1918">1918</a>
+<a href="#1919" id="1919">1919</a>
+<a href="#1920" id="1920">1920</a>
+<a href="#1921" id="1921">1921</a>
+<a href="#1922" id="1922">1922</a>
+<a href="#1923" id="1923">1923</a>
+<a href="#1924" id="1924">1924</a>
+<a href="#1925" id="1925">1925</a>
+<a href="#1926" id="1926">1926</a>
+<a href="#1927" id="1927">1927</a>
+<a href="#1928" id="1928">1928</a>
+<a href="#1929" id="1929">1929</a>
+<a href="#1930" id="1930">1930</a>
+<a href="#1931" id="1931">1931</a>
+<a href="#1932" id="1932">1932</a>
+<a href="#1933" id="1933">1933</a>
+<a href="#1934" id="1934">1934</a>
+<a href="#1935" id="1935">1935</a>
+<a href="#1936" id="1936">1936</a>
+<a href="#1937" id="1937">1937</a>
+<a href="#1938" id="1938">1938</a>
+<a href="#1939" id="1939">1939</a>
+<a href="#1940" id="1940">1940</a>
+<a href="#1941" id="1941">1941</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
@@ -1953,8 +2022,7 @@
     }
 
     <span class="kw">fn </span>null_count(<span class="kw-2">&amp;</span><span 
class="self">self</span>, field_id: i32) -&gt; <span 
class="prelude-ty">Option</span>&lt;u64&gt; {
-        <span class="self">self</span>.stats_for_field_id(field_id)
-            .map(|stats| stats.null_count())
+        <span class="self">self</span>.stats_for_field_id(field_id)<span 
class="question-mark">?</span>.null_count_opt()
     }
 
     <span class="kw">fn </span>value_count(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; u64 {
@@ -2013,10 +2081,6 @@
             <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
         };
 
-        <span class="kw">if </span>!stats.has_min_max_set() {
-            <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
-        }
-
         get_parquet_stat_min_as_datum(<span 
class="kw-2">&amp;</span>primitive_type, stats)
     }
 
@@ -2025,10 +2089,6 @@
             <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
         };
 
-        <span class="kw">if </span>!stats.has_min_max_set() {
-            <span class="kw">return </span><span 
class="prelude-val">Ok</span>(<span class="prelude-val">None</span>);
-        }
-
         get_parquet_stat_max_as_datum(<span 
class="kw-2">&amp;</span>primitive_type, stats)
     }
 
@@ -2465,7 +2525,7 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">1</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">1</span>), <span class="bool-val">false</span>)),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2492,7 +2552,7 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">1</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">1</span>), <span class="bool-val">false</span>)),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2519,7 +2579,7 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">0</span>), <span class="bool-val">false</span>)),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2546,7 +2606,7 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">0</span>), <span class="bool-val">false</span>)),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2573,7 +2633,7 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">1</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">1</span>), <span class="bool-val">false</span>)),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2600,7 +2660,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">0.0</span>), <span 
class="prelude-val">Some</span>(<span class="number">2.0</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">0.0</span>),
+                <span class="prelude-val">Some</span>(<span 
class="number">2.0</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2627,7 +2693,7 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">2.0</span>), <span class="prelude-val">None</span>, <span 
class="number">0</span>, <span class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">2.0</span>), <span class="prelude-val">None</span>, <span 
class="prelude-val">Some</span>(<span class="number">0</span>), <span 
class="bool-val">false</span>)),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2654,7 +2720,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">0.0</span>), <span 
class="prelude-val">Some</span>(<span class="number">0.9</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">0.0</span>),
+                <span class="prelude-val">Some</span>(<span 
class="number">0.9</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2681,7 +2753,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">0.0</span>), <span 
class="prelude-val">Some</span>(<span class="number">2.0</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">0.0</span>),
+                <span class="prelude-val">Some</span>(<span 
class="number">2.0</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2708,7 +2786,7 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">1</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">1</span>), <span class="bool-val">false</span>)),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2735,7 +2813,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(f32::NAN), <span 
class="prelude-val">Some</span>(<span class="number">2.0</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(f32::NAN),
+                <span class="prelude-val">Some</span>(<span 
class="number">2.0</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2762,7 +2846,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">1.5</span>), <span 
class="prelude-val">Some</span>(<span class="number">2.0</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">1.5</span>),
+                <span class="prelude-val">Some</span>(<span 
class="number">2.0</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2789,7 +2879,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">0.0</span>), <span 
class="prelude-val">Some</span>(f32::NAN), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">0.0</span>),
+                <span class="prelude-val">Some</span>(f32::NAN),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2816,7 +2912,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">0.0</span>), <span 
class="prelude-val">Some</span>(<span class="number">0.5</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">0.0</span>),
+                <span class="prelude-val">Some</span>(<span 
class="number">0.5</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2843,7 +2945,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">0.0</span>), <span 
class="prelude-val">Some</span>(<span class="number">2.0</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">0.0</span>),
+                <span class="prelude-val">Some</span>(<span 
class="number">2.0</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2870,7 +2978,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">1.0</span>), <span 
class="prelude-val">Some</span>(<span class="number">1.0</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">1.0</span>),
+                <span class="prelude-val">Some</span>(<span 
class="number">1.0</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -2899,7 +3013,7 @@
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">1</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">1</span>), <span class="bool-val">false</span>)),
         )<span class="question-mark">?</span>;
 
         <span class="kw">let </span>(iceberg_schema_ref, field_id_map) = 
build_iceberg_schema_and_field_map()<span class="question-mark">?</span>;
@@ -2926,7 +3040,7 @@
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">0</span>), <span class="bool-val">false</span>)),
         )<span class="question-mark">?</span>;
 
         <span class="kw">let </span>(iceberg_schema_ref, field_id_map) = 
build_iceberg_schema_and_field_map()<span class="question-mark">?</span>;
@@ -2958,7 +3072,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="macro">vec!</span>[<span class="number">255u8</span>])),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="macro">vec!</span>[<span class="number">32u8</span>])),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -2992,7 +3106,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"ice"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="macro">vec!</span>[<span class="number">255u8</span>])),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3022,7 +3136,7 @@
             <span class="prelude-val">None</span>,
             <span class="number">1</span>,
             <span class="comment">// Max val of 0xFF is not valid utf8
-            </span><span 
class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">1</span>, <span 
class="bool-val">false</span>)),
+            </span><span 
class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">1</span>), <span class="bool-val">false</span>)),
         )<span class="question-mark">?</span>;
 
         <span class="kw">let </span>(iceberg_schema_ref, field_id_map) = 
build_iceberg_schema_and_field_map()<span class="question-mark">?</span>;
@@ -3054,7 +3168,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"id"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"ie"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3088,7 +3202,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"h"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"ib"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3122,7 +3236,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"h"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"j"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3151,7 +3265,7 @@
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">1</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">1</span>), <span class="bool-val">false</span>)),
         )<span class="question-mark">?</span>;
 
         <span class="kw">let </span>(iceberg_schema_ref, field_id_map) = 
build_iceberg_schema_and_field_map()<span class="question-mark">?</span>;
@@ -3183,7 +3297,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="macro">vec!</span>[<span class="number">255u8</span>])),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="macro">vec!</span>[<span class="number">32u8</span>])),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3217,7 +3331,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="macro">vec!</span>[<span class="number">255u8</span>])),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3251,7 +3365,7 @@
                 <span class="prelude-val">None</span>,
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3285,7 +3399,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"ice"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3319,7 +3433,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3353,7 +3467,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"icy"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3387,7 +3501,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3420,7 +3534,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
-                <span class="number">1</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">1</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3449,7 +3563,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">11.0</span>), <span 
class="prelude-val">Some</span>(<span class="number">12.0</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">11.0</span>),
+                <span class="prelude-val">Some</span>(<span 
class="number">12.0</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -3478,7 +3598,7 @@
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::byte_array(<span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span 
class="number">0</span>), <span class="bool-val">false</span>)),
         )<span class="question-mark">?</span>;
 
         <span class="kw">let </span>(iceberg_schema_ref, field_id_map) = 
build_iceberg_schema_and_field_map()<span class="question-mark">?</span>;
@@ -3505,7 +3625,13 @@
         </span><span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(f32::NAN), <span 
class="prelude-val">Some</span>(<span class="number">1.0</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(f32::NAN),
+                <span class="prelude-val">Some</span>(<span 
class="number">1.0</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -3532,7 +3658,7 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">4.0</span>), <span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="number">0</span>, <span class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">4.0</span>), <span 
class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span 
class="prelude-val">Some</span>(<span class="number">0</span>), <span 
class="bool-val">false</span>)),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -3550,7 +3676,7 @@
             iceberg_schema_ref.as_ref(),
         )<span class="question-mark">?</span>;
 
-        <span class="macro">assert!</span>(result);
+        <span class="macro">assert!</span>(!result);
         <span class="prelude-val">Ok</span>(())
     }
 
@@ -3559,7 +3685,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">0.0</span>), <span 
class="prelude-val">Some</span>(f32::NAN), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">0.0</span>),
+                <span class="prelude-val">Some</span>(f32::NAN),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -3586,7 +3718,13 @@
         <span class="kw">let </span>row_group_metadata = 
create_row_group_metadata(
             <span class="number">1</span>,
             <span class="number">1</span>,
-            <span class="prelude-val">Some</span>(Statistics::float(<span 
class="prelude-val">Some</span>(<span class="number">0.0</span>), <span 
class="prelude-val">Some</span>(<span class="number">1.0</span>), <span 
class="prelude-val">None</span>, <span class="number">0</span>, <span 
class="bool-val">false</span>)),
+            <span class="prelude-val">Some</span>(Statistics::float(
+                <span class="prelude-val">Some</span>(<span 
class="number">0.0</span>),
+                <span class="prelude-val">Some</span>(<span 
class="number">1.0</span>),
+                <span class="prelude-val">None</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
+                <span class="bool-val">false</span>,
+            )),
             <span class="number">1</span>,
             <span class="prelude-val">None</span>,
         )<span class="question-mark">?</span>;
@@ -3620,7 +3758,7 @@
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">Some</span>(ByteArray::from(<span 
class="string">"iceberg"</span>.as_bytes())),
                 <span class="prelude-val">None</span>,
-                <span class="number">0</span>,
+                <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
                 <span class="bool-val">false</span>,
             )),
         )<span class="question-mark">?</span>;
@@ -3734,7 +3872,7 @@
             .set_num_rows(num_rows)
             .set_column_metadata(<span class="macro">vec!</span>[
                 col_1_meta.build()<span class="question-mark">?</span>,
-                <span class="comment">// 
.set_statistics(Statistics::float(None, None, None, 1, false))
+                <span class="comment">// 
.set_statistics(Statistics::float(None, None, None, Some(1), false))
                 </span>col_2_meta.build()<span class="question-mark">?</span>,
             ])
             .build();
diff --git a/api/type.impl/alloc/boxed/struct.Box.js 
b/api/type.impl/alloc/boxed/struct.Box.js
index 3d1318b4..b3ada9f7 100644
--- a/api/type.impl/alloc/boxed/struct.Box.js
+++ b/api/type.impl/alloc/boxed/struct.Box.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"iceberg":[["<details class=\"toggle implementors-toggle\" 
open><summary><section id=\"impl-AsFd-for-Box%3CT%3E\" class=\"impl\"><span 
class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 
1.64.0\">1.64.0</span> · <a class=\"src\" 
href=\"https://doc.rust-lang.org/nightly/src/std/os/fd/owned.rs.html#423\";>source</a></span><a
 href=\"#impl-AsFd-for-Box%3CT%3E\" class=\"anchor\">§</a><h3 
class=\"code-header\">impl&lt;T&gt; <a class=\"trait\" 
href=\"https://doc.rust-lang [...]
+"iceberg":[["<details class=\"toggle implementors-toggle\" 
open><summary><section id=\"impl-AsFd-for-Box%3CT%3E\" class=\"impl\"><span 
class=\"rightside\"><span class=\"since\" title=\"Stable since Rust version 
1.64.0\">1.64.0</span> · <a class=\"src\" 
href=\"https://doc.rust-lang.org/nightly/src/std/os/fd/owned.rs.html#423\";>source</a></span><a
 href=\"#impl-AsFd-for-Box%3CT%3E\" class=\"anchor\">§</a><h3 
class=\"code-header\">impl&lt;T&gt; <a class=\"trait\" 
href=\"https://doc.rust-lang [...]
 };if (window.register_type_impls) {window.register_type_impls(type_impls);} 
else {window.pending_type_impls = type_impls;}})()
\ No newline at end of file
diff --git a/api/type.impl/core/result/enum.Result.js 
b/api/type.impl/core/result/enum.Result.js
index 47442403..657198cf 100644
--- a/api/type.impl/core/result/enum.Result.js
+++ b/api/type.impl/core/result/enum.Result.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"iceberg":[["<details class=\"toggle implementors-toggle\" 
open><summary><section id=\"impl-Clone-for-Result%3CT,+E%3E\" 
class=\"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/result.rs.html#1699-1702\";>source</a></span><a
 href=\"#impl-Clone-for-Result%3CT,+E%3E\" class=\"anchor\">§</a><h3 
class=\"code-header\">impl&lt;T, E&gt; <a class=\"trait\" href=\"http [...]
+"iceberg":[["<details class=\"toggle implementors-toggle\" 
open><summary><section id=\"impl-Clone-for-Result%3CT,+E%3E\" 
class=\"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/result.rs.html#1699-1702\";>source</a></span><a
 href=\"#impl-Clone-for-Result%3CT,+E%3E\" class=\"anchor\">§</a><h3 
class=\"code-header\">impl&lt;T, E&gt; <a class=\"trait\" href=\"http [...]
 };if (window.register_type_impls) {window.register_type_impls(type_impls);} 
else {window.pending_type_impls = type_impls;}})()
\ No newline at end of file

Reply via email to