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 685891fe deploy: b4bc6dd15ae4f7a4b1c9ce555e3458089a83e228
685891fe is described below

commit 685891feb87cee3b5d44ed8fc1c14bf3e13141bb
Author: liurenjie1024 <[email protected]>
AuthorDate: Thu May 1 05:53:28 2025 +0000

    deploy: b4bc6dd15ae4f7a4b1c9ce555e3458089a83e228
---
 api/iceberg/spec/enum.DataContentType.html         |  10 +-
 api/iceberg/spec/enum.DataFileFormat.html          |  16 +-
 api/iceberg/spec/fn.read_data_files_from_avro.html |   2 +-
 api/iceberg/spec/fn.write_data_files_to_avro.html  |   2 +-
 api/iceberg/spec/struct.DataFile.html              |  41 +--
 api/iceberg/spec/struct.DataFileBuilder.html       |  20 +-
 api/search-index.js                                |   4 +-
 api/search.desc/iceberg/iceberg-desc-0-.js         |   2 +-
 .../expr/visitors/expression_evaluator.rs.html     |  18 +-
 .../visitors/inclusive_metrics_evaluator.rs.html   |  50 +++-
 .../expr/visitors/strict_metrics_evaluator.rs.html |  34 ++-
 api/src/iceberg/spec/manifest/_serde.rs.html       |  38 ++-
 api/src/iceberg/spec/manifest/data_file.rs.html    | 104 +++++++-
 api/src/iceberg/spec/manifest/entry.rs.html        |  90 ++++++-
 api/src/iceberg/spec/manifest/mod.rs.html          | 294 +++++++++++++--------
 api/src/iceberg/spec/manifest/writer.rs.html       |  38 ++-
 api/src/iceberg/spec/snapshot_summary.rs.html      |  42 ++-
 17 files changed, 639 insertions(+), 166 deletions(-)

diff --git a/api/iceberg/spec/enum.DataContentType.html 
b/api/iceberg/spec/enum.DataContentType.html
index 5a4fa6aa..97ebf3e2 100644
--- a/api/iceberg/spec/enum.DataContentType.html
+++ b/api/iceberg/spec/enum.DataContentType.html
@@ -1,4 +1,4 @@
-<!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="Type of 
content stored by the data file: data, equality deletes, or position deletes 
(all v1 files are data files)"><title>DataContentType in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053
 [...]
+<!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="Type of 
content stored by the data file: data, equality deletes, or position deletes 
(all v1 files are data files)"><title>DataContentType in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053
 [...]
     Data = 0,
     PositionDeletes = 1,
     EqualityDeletes = 2,
@@ -7,10 +7,10 @@ position deletes (all v1 files are data files)</p>
 </div></details><h2 id="variants" class="variants section-header">Variants<a 
href="#variants" class="anchor">§</a></h2><div class="variants"><section 
id="variant.Data" class="variant"><a href="#variant.Data" 
class="anchor">§</a><h3 class="code-header">Data = 0</h3></section><div 
class="docblock"><p>value: 0</p>
 </div><section id="variant.PositionDeletes" class="variant"><a 
href="#variant.PositionDeletes" class="anchor">§</a><h3 
class="code-header">PositionDeletes = 1</h3></section><div 
class="docblock"><p>value: 1</p>
 </div><section id="variant.EqualityDeletes" class="variant"><a 
href="#variant.EqualityDeletes" class="anchor">§</a><h3 
class="code-header">EqualityDeletes = 2</h3></section><div 
class="docblock"><p>value: 2</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-DataContentType" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#291">Source</a><a 
href="#impl-Clone-for-DataContentType" class="anchor">§</a><h3 
class="code-header">impl <a clas [...]
-    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Parti [...]
-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-DataContentType" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#291">Source</a><a 
href="#impl-Serialize-for-DataContentType" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html"; title="tra 
[...]
-    __S: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/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%3Ci32%3E-for-DataCo [...]
+</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-DataContentType" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#336">Source</a><a 
href="#impl-Clone-for-DataContentType" class="anchor">§</a><h3 
class="code-header">impl <a clas [...]
+    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Parti [...]
+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-DataContentType" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#336">Source</a><a 
href="#impl-Serialize-for-DataContentType" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html"; title="tra 
[...]
+    __S: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/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%3Ci32%3E-for-DataCo [...]
     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#139";>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#211";>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#218";>Source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href= [...]
diff --git a/api/iceberg/spec/enum.DataFileFormat.html 
b/api/iceberg/spec/enum.DataFileFormat.html
index c58e13da..0b795426 100644
--- a/api/iceberg/spec/enum.DataFileFormat.html
+++ b/api/iceberg/spec/enum.DataFileFormat.html
@@ -1,18 +1,20 @@
-<!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="Format of 
this data."><title>DataFileFormat in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regu
 [...]
+<!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="Format of 
this data."><title>DataFileFormat in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regu
 [...]
     Avro,
     Orc,
     Parquet,
+    Puffin,
 }</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>Format of this data.</p>
 </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/data_file.rs.html#318">Source</a><a 
href="#impl-Clone-for-DataFileFormat" class="anchor">§</a><h3 
class="code-header">impl <a class= [...]
+</div><section id="variant.Puffin" class="variant"><a href="#variant.Puffin" 
class="anchor">§</a><h3 class="code-header">Puffin</h3></section><div 
class="docblock"><p>Puffin file format: <a 
href="https://iceberg.apache.org/puffin-spec/";>https://iceberg.apache.org/puffin-spec/</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/data_file.rs.html#363">Source</a><a 
href="#impl-Clone-for-DataFileFormat" class="anchor">§</a><h3 
class="code-header">impl <a class= [...]
     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.217/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.217/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 [...]
-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/data_file.rs.html#318">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.217/serde/ser/trait.Serialize.html"; 
title="trait [...]
-    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/data_file.rs.html#318">Source</a><a 
href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a 
href="https:/ [...]
-    __S: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><section 
id="impl-Copy-for-DataFileFormat" class="impl"><a class="src rightside" 
href="../../src/iceber [...]
+    &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.217/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.217/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 [...]
+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/data_file.rs.html#363">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.217/serde/ser/trait.Serialize.html"; 
title="trait [...]
+    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/data_file.rs.html#363">Source</a><a 
href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a 
href="https:/ [...]
+    __S: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><section 
id="impl-Copy-for-DataFileFormat" class="impl"><a class="src rightside" 
href="../../src/iceber [...]
     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#139";>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#211";>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#218";>Source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href= [...]
diff --git a/api/iceberg/spec/fn.read_data_files_from_avro.html 
b/api/iceberg/spec/fn.read_data_files_from_avro.html
index a3a7f405..a55bf996 100644
--- a/api/iceberg/spec/fn.read_data_files_from_avro.html
+++ b/api/iceberg/spec/fn.read_data_files_from_avro.html
@@ -1,4 +1,4 @@
-<!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="Parse data 
files from avro bytes."><title>read_data_files_from_avro in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.
 [...]
+<!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="Parse data 
files from avro bytes."><title>read_data_files_from_avro in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.
 [...]
     reader: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;mut 
R</a>,
     schema: &amp;<a class="struct" href="struct.Schema.html" title="struct 
iceberg::spec::Schema">Schema</a>,
     partition_spec_id: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>,
diff --git a/api/iceberg/spec/fn.write_data_files_to_avro.html 
b/api/iceberg/spec/fn.write_data_files_to_avro.html
index 3fa0d402..adeaf397 100644
--- a/api/iceberg/spec/fn.write_data_files_to_avro.html
+++ b/api/iceberg/spec/fn.write_data_files_to_avro.html
@@ -1,4 +1,4 @@
-<!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="Convert 
data files to avro bytes and write to writer. Return the bytes 
written."><title>write_data_files_to_avro in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Reg
 [...]
+<!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="Convert 
data files to avro bytes and write to writer. Return the bytes 
written."><title>write_data_files_to_avro in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Reg
 [...]
     writer: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;mut 
W</a>,
     data_files: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html";
 title="trait 
core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a 
class="struct" href="struct.DataFile.html" title="struct 
iceberg::spec::DataFile">DataFile</a>&gt;,
     partition_type: &amp;<a class="struct" href="struct.StructType.html" 
title="struct iceberg::spec::StructType">StructType</a>,
diff --git a/api/iceberg/spec/struct.DataFile.html 
b/api/iceberg/spec/struct.DataFile.html
index da4a6f44..d8eb7d0c 100644
--- a/api/iceberg/spec/struct.DataFile.html
+++ b/api/iceberg/spec/struct.DataFile.html
@@ -1,37 +1,44 @@
-<!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="Data file 
carries data file path, partition tuple, metrics, …"><title>DataFile in 
iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Mediu
 [...]
-</div></details><h2 id="implementations" 
class="section-header">Implementations<a href="#implementations" 
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle 
implementors-toggle" open><summary><section id="impl-DataFile" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#156-238">Source</a><a 
href="#impl-DataFile" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.DataFile.html" title="stru [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.file_path" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#162-164">Source</a><h4 
class="code-header">pub fn <a href="#method.file_path" 
class="fn">file_path</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>Get the file path as full URI  [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.file_format" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#166-168">Source</a><h4 
class="code-header">pub fn <a href="#method.file_format" 
class="fn">file_format</a>(&amp;self) -&gt; <a class="enum" 
href="enum.DataFileFormat.html" title="enum 
iceberg::spec::DataFileFormat">DataFileFormat</a></h4></section></summary><div 
class="docblock"><p>Get the file [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.partition" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#170-172">Source</a><h4 
class="code-header">pub fn <a href="#method.partition" 
class="fn">partition</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="struct.Struct.html" title="struct 
iceberg::spec::Struct">Struct</a></h4></section></summary><div 
class="docblock"><p>Get the partition values of the [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.record_count" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#174-176">Source</a><h4 
class="code-header">pub fn <a href="#method.record_count" 
class="fn">record_count</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html";>u64</a></h4></section></summary><div
 class="docblock"><p>Get the record count in th [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.file_size_in_bytes" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#178-180">Source</a><h4 
class="code-header">pub fn <a href="#method.file_size_in_bytes" 
class="fn">file_size_in_bytes</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html";>u64</a></h4></section></summary><div
 class="docblock"><p>Get the  [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.column_sizes" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#185-187">Source</a><h4 
class="code-header">pub fn <a href="#method.column_sizes" 
class="fn">column_sizes</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::HashMap">HashMap [...]
+<!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="Data file 
carries data file path, partition tuple, metrics, …"><title>DataFile in 
iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Mediu
 [...]
+</div></details><h2 id="implementations" 
class="section-header">Implementations<a href="#implementations" 
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle 
implementors-toggle" open><summary><section id="impl-DataFile" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#182-283">Source</a><a 
href="#impl-DataFile" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.DataFile.html" title="stru [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.file_path" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#188-190">Source</a><h4 
class="code-header">pub fn <a href="#method.file_path" 
class="fn">file_path</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>Get the file path as full URI  [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.file_format" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#192-194">Source</a><h4 
class="code-header">pub fn <a href="#method.file_format" 
class="fn">file_format</a>(&amp;self) -&gt; <a class="enum" 
href="enum.DataFileFormat.html" title="enum 
iceberg::spec::DataFileFormat">DataFileFormat</a></h4></section></summary><div 
class="docblock"><p>Get the file [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.partition" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#196-198">Source</a><h4 
class="code-header">pub fn <a href="#method.partition" 
class="fn">partition</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="struct.Struct.html" title="struct 
iceberg::spec::Struct">Struct</a></h4></section></summary><div 
class="docblock"><p>Get the partition values of the [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.record_count" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#200-202">Source</a><h4 
class="code-header">pub fn <a href="#method.record_count" 
class="fn">record_count</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html";>u64</a></h4></section></summary><div
 class="docblock"><p>Get the record count in th [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.file_size_in_bytes" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#204-206">Source</a><h4 
class="code-header">pub fn <a href="#method.file_size_in_bytes" 
class="fn">file_size_in_bytes</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html";>u64</a></h4></section></summary><div
 class="docblock"><p>Get the  [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.column_sizes" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#211-213">Source</a><h4 
class="code-header">pub fn <a href="#method.column_sizes" 
class="fn">column_sizes</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::HashMap">HashMap [...]
 Map from column id to the total size on disk of all regions that
 store the column. Does not include bytes necessary to read other
 columns, like footers. Null for row-oriented formats (Avro)</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.value_counts" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#191-193">Source</a><h4 
class="code-header">pub fn <a href="#method.value_counts" 
class="fn">value_counts</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::HashMap">HashMap [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.value_counts" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#217-219">Source</a><h4 
class="code-header">pub fn <a href="#method.value_counts" 
class="fn">value_counts</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::HashMap">HashMap [...]
 Map from column id to number of values in the column (including null
 and NaN values)</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.null_value_counts" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#196-198">Source</a><h4 
class="code-header">pub fn <a href="#method.null_value_counts" 
class="fn">null_value_counts</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::H [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.null_value_counts" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#222-224">Source</a><h4 
class="code-header">pub fn <a href="#method.null_value_counts" 
class="fn">null_value_counts</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::H [...]
 Map from column id to number of null values in the column</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.nan_value_counts" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#201-203">Source</a><h4 
class="code-header">pub fn <a href="#method.nan_value_counts" 
class="fn">nan_value_counts</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::Hash [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.nan_value_counts" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#227-229">Source</a><h4 
class="code-header">pub fn <a href="#method.nan_value_counts" 
class="fn">nan_value_counts</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::Hash [...]
 Map from column id to number of NaN values in the column</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.lower_bounds" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#206-208">Source</a><h4 
class="code-header">pub fn <a href="#method.lower_bounds" 
class="fn">lower_bounds</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::HashMap">HashMap [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.lower_bounds" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#232-234">Source</a><h4 
class="code-header">pub fn <a href="#method.lower_bounds" 
class="fn">lower_bounds</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::HashMap">HashMap [...]
 Map from column id to lower bound in the column serialized as binary.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.upper_bounds" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#211-213">Source</a><h4 
class="code-header">pub fn <a href="#method.upper_bounds" 
class="fn">upper_bounds</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::HashMap">HashMap [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.upper_bounds" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#237-239">Source</a><h4 
class="code-header">pub fn <a href="#method.upper_bounds" 
class="fn">upper_bounds</a>(&amp;self) -&gt; &amp;<a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::HashMap">HashMap [...]
 Map from column id to upper bound in the column serialized as binary.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.key_metadata" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#215-217">Source</a><h4 
class="code-header">pub fn <a href="#method.key_metadata" 
class="fn">key_metadata</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" 
href="h [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.split_offsets" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#220-222">Source</a><h4 
class="code-header">pub fn <a href="#method.split_offsets" 
class="fn">split_offsets</a>(&amp;self) -&gt; &amp;[<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html";>i64</a>]</h4></section></summary><div
 class="docblock"><p>Get the split of [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.key_metadata" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#241-243">Source</a><h4 
class="code-header">pub fn <a href="#method.key_metadata" 
class="fn">key_metadata</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;&amp;[<a class="primitive" 
href="h [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.split_offsets" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#246-248">Source</a><h4 
class="code-header">pub fn <a href="#method.split_offsets" 
class="fn">split_offsets</a>(&amp;self) -&gt; &amp;[<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html";>i64</a>]</h4></section></summary><div
 class="docblock"><p>Get the split of [...]
 For example, all row group offsets in a Parquet file.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.equality_ids" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#226-228">Source</a><h4 
class="code-header">pub fn <a href="#method.equality_ids" 
class="fn">equality_ids</a>(&amp;self) -&gt; &amp;[<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>]</h4></section></summary><div
 class="docblock"><p>Get the equality id [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.equality_ids" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#252-254">Source</a><h4 
class="code-header">pub fn <a href="#method.equality_ids" 
class="fn">equality_ids</a>(&amp;self) -&gt; &amp;[<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>]</h4></section></summary><div
 class="docblock"><p>Get the equality id [...]
 Field ids used to determine row equality in equality delete files.
 null when content is not EqualityDeletes.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.sort_order_id" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#235-237">Source</a><h4 
class="code-header">pub fn <a href="#method.sort_order_id" 
class="fn">sort_order_id</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="http 
[...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.first_row_id" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#256-258">Source</a><h4 
class="code-header">pub fn <a href="#method.first_row_id" 
class="fn">first_row_id</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class="primitive" 
href="https:/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.sort_order_id" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#265-267">Source</a><h4 
class="code-header">pub fn <a href="#method.sort_order_id" 
class="fn">sort_order_id</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="http 
[...]
 Only data files and equality delete files should be
 written with a non-null order id. Position deletes are required to be
 sorted by file and position, not a table order, and should set sort
 order id to null. Readers must ignore sort order id for position
 delete files.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.referenced_data_file" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#270-272">Source</a><h4 
class="code-header">pub fn <a href="#method.referenced_data_file" 
class="fn">referenced_data_file</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class=" [...]
+Positional delete files could have the field set, and deletion vectors must 
the field set.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.content_offset" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#275-277">Source</a><h4 
class="code-header">pub fn <a href="#method.content_offset" 
class="fn">content_offset</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="h 
[...]
+Only meaningful for puffin blobs, and required for deletion vectors.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.content_size_in_bytes" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#280-282">Source</a><h4 
class="code-header">pub fn <a href="#method.content_size_in_bytes" 
class="fn">content_size_in_bytes</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a clas [...]
+Only meaningful for puffin blobs, and required for deletion vectors.</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-DataFile" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><a 
href="#impl-Clone-for-DataFile" class="anchor">§</a><h3 class="code-header">i 
[...]
 and should not be overridden without very good 
reason.</div></details></div></details><section id="impl-Eq-for-DataFile" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><a 
href="#impl-Eq-for-DataFile" class="anchor">§</a><h3 class="code-header">impl 
<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"; title="trait 
core::cmp::Eq">Eq</a> for <a class="struct" href="struct.DataFile.html" 
title="struct ic [...]
     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#139";>Source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
diff --git a/api/iceberg/spec/struct.DataFileBuilder.html 
b/api/iceberg/spec/struct.DataFileBuilder.html
index bd8e6fa1..62edcad8 100644
--- a/api/iceberg/spec/struct.DataFileBuilder.html
+++ b/api/iceberg/spec/struct.DataFileBuilder.html
@@ -1,16 +1,16 @@
-<!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="Builder 
for `DataFile`."><title>DataFileBuilder in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-
 [...]
+<!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="Builder 
for `DataFile`."><title>DataFileBuilder in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-
 [...]
 </div></details><h2 id="implementations" 
class="section-header">Implementations<a href="#implementations" 
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle 
implementors-toggle" open><summary><section id="impl-DataFileBuilder" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><a 
href="#impl-DataFileBuilder" class="anchor">§</a><h3 class="code-header">impl 
<a class="struct" href="struct.DataFileBuilder.h [...]
 <p>Type of content stored by the data file: data, equality deletes,
 or position deletes (all v1 files are data files)</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.file_path" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.file_path" 
class="fn">file_path</a>(&amp;mut self, value: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"; 
title="struct alloc::string::String">String</a>) -&gt; &amp;mut 
Self</h4></section></s [...]
 <p>Full URI for the file with FS scheme</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.file_format" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.file_format" 
class="fn">file_format</a>(&amp;mut self, value: <a class="enum" 
href="enum.DataFileFormat.html" title="enum 
iceberg::spec::DataFileFormat">DataFileFormat</a>) -&gt; &amp;mut 
Self</h4></section></summary><div class="docb [...]
-<p>String file format name, avro, orc or parquet</p>
+<p>String file format name, <code>avro</code>, <code>orc</code>, 
<code>parquet</code>, or <code>puffin</code></p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.partition" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.partition" 
class="fn">partition</a>(&amp;mut self, value: <a class="struct" 
href="struct.Struct.html" title="struct iceberg::spec::Struct">Struct</a>) 
-&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>field id: 
102</p>
 <p>Partition data tuple, schema based on the partition spec output using
 partition field ids for the struct field ids</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.record_count" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.record_count" 
class="fn">record_count</a>(&amp;mut self, value: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html";>u64</a>) -&gt; 
&amp;mut Self</h4></section></summary><div class="docblock"><p>field [...]
-<p>Number of records in this file</p>
+<p>Number of records in this file, or the cardinality of a deletion vector</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.file_size_in_bytes" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.file_size_in_bytes" 
class="fn">file_size_in_bytes</a>(&amp;mut self, value: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html";>u64</a>) -&gt; 
&amp;mut Self</h4></section></summary><div class=" [...]
 <p>Total file size in bytes</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.column_sizes" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.column_sizes" 
class="fn">column_sizes</a>(&amp;mut self, value: <a class="struct" 
href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html";
 title="struct std::collections::hash::map::HashMap">HashMap</a>& [...]
@@ -72,8 +72,22 @@ written with a non-null order id. Position deletes are 
required to be
 sorted by file and position, not a table order, and should set sort
 order id to null. Readers must ignore sort order id for position
 delete files.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.first_row_id" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.first_row_id" 
class="fn">first_row_id</a>(&amp;mut self, value: <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class="primitive" 
href="https:/ [...]
+<p>The _row_id for the first row in the data file.
+For more details, refer to 
https://github.com/apache/iceberg/blob/main/format/spec.md#first-row-id-inheritance</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.partition_spec_id" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.partition_spec_id" 
class="fn">partition_spec_id</a>(&amp;mut self, value: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>) -&gt; 
&amp;mut Self</h4></section></summary><div class="doc [...]
 in process.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.referenced_data_file" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.referenced_data_file" 
class="fn">referenced_data_file</a>(&amp;mut self, value: <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class=" [...]
+<p>Fully qualified location (URI with FS scheme) of a data file that all 
deletes reference.
+Position delete metadata can use <code>referenced_data_file</code> when all 
deletes tracked by the
+entry are in a single data file. Setting the referenced file is required for 
deletion vectors.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.content_offset" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.content_offset" 
class="fn">content_offset</a>(&amp;mut self, value: <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="h 
[...]
+<p>The offset in the file where the content starts.
+The <code>content_offset</code> and <code>content_size_in_bytes</code> fields 
are used to reference a specific blob
+for direct access to a deletion vector. For deletion vectors, these values are 
required and must
+exactly match the <code>offset</code> and <code>length</code> stored in the 
Puffin footer for the deletion vector blob.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.content_size_in_bytes" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.content_size_in_bytes" 
class="fn">content_size_in_bytes</a>(&amp;mut self, value: <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a clas [...]
+<p>The length of a referenced content stored in the file; required if 
<code>content_offset</code> is present</p>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.build" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/manifest/data_file.rs.html#33">Source</a><h4 
class="code-header">pub fn <a href="#method.build" 
class="fn">build</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;<a class="struct" 
href="struct.DataFile.html" title="struct  [...]
 <h5 id="errors"><a class="doc-anchor" href="#errors">§</a>Errors</h5>
 <p>If a required field has not been initialized.</p>
diff --git a/api/search-index.js b/api/search-index.js
index 8020a246..f5d46a4f 100644
--- a/api/search-index.js
+++ b/api/search-index.js
@@ -1,4 +1,4 @@
-var searchIndex = new 
Map(JSON.parse('[["iceberg",{"t":"PPPPPKPPPPPFGPPPFPFPPPPPPPPPPPIPPPPPPPPPFFFPGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOCMOCOONNNNONCOCMNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFFFFKSRRSNNNNNNNNHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNM
 [...]
+var searchIndex = new 
Map(JSON.parse('[["iceberg",{"t":"PPPPPKPPPPPFGPPPFPFPPPPPPPPPPPIPPPPPPPPPFFFPGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOCMOCOONNNNONCOCMNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFFFFKSRRSNNNNNNNNHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNM
 [...]
 if (typeof exports !== 'undefined') exports.searchIndex = searchIndex;
 else if (window.initSearch) window.initSearch(searchIndex);
-//{"start":39,"fragment_lengths":[86855,1200,2348,2291,1821,2127,2098,2233,1414,3389,787,148,1116]}
\ No newline at end of file
+//{"start":39,"fragment_lengths":[87146,1200,2348,2291,1821,2127,2098,2233,1414,3389,787,148,1116]}
\ No newline at end of file
diff --git a/api/search.desc/iceberg/iceberg-desc-0-.js 
b/api/search.desc/iceberg/iceberg-desc-0-.js
index 8e840e28..ecc7f1c5 100644
--- a/api/search.desc/iceberg/iceberg-desc-0-.js
+++ b/api/search.desc/iceberg/iceberg-desc-0-.js
@@ -1 +1 @@
-searchState.loadedDescShard("iceberg", 0, "Apache Iceberg Official Native Rust 
Implementation\nAdd a new schema to the table\nAdd snapshot to table.\nAdd sort 
order to table.\nAdd a new partition spec to the table\nAssign a new UUID to 
the table\nThe catalog API for Iceberg Rust.\nThe table’s current schema id 
must match the requirement.\nIceberg data is invalid.\nThe table’s default sort 
order id must match the …\nThe table’s default spec id must match the 
requirement.\nContains the err [...]
\ No newline at end of file
+searchState.loadedDescShard("iceberg", 0, "Apache Iceberg Official Native Rust 
Implementation\nAdd a new schema to the table\nAdd snapshot to table.\nAdd sort 
order to table.\nAdd a new partition spec to the table\nAssign a new UUID to 
the table\nThe catalog API for Iceberg Rust.\nThe table’s current schema id 
must match the requirement.\nIceberg data is invalid.\nThe table’s default sort 
order id must match the …\nThe table’s default spec id must match the 
requirement.\nContains the err [...]
\ No newline at end of file
diff --git a/api/src/iceberg/expr/visitors/expression_evaluator.rs.html 
b/api/src/iceberg/expr/visitors/expression_evaluator.rs.html
index 678e1892..b0301ccf 100644
--- a/api/src/iceberg/expr/visitors/expression_evaluator.rs.html
+++ b/api/src/iceberg/expr/visitors/expression_evaluator.rs.html
@@ -796,7 +796,15 @@
 <a href="#795" id="795">795</a>
 <a href="#796" id="796">796</a>
 <a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#798" id="798">798</a>
+<a href="#799" id="799">799</a>
+<a href="#800" id="800">800</a>
+<a href="#801" id="801">801</a>
+<a href="#802" id="802">802</a>
+<a href="#803" id="803">803</a>
+<a href="#804" id="804">804</a>
+<a href="#805" id="805">805</a>
+<a href="#806" id="806">806</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
 // regarding copyright ownership.  The ASF licenses this file
@@ -1145,6 +1153,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
@@ -1169,6 +1181,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
diff --git a/api/src/iceberg/expr/visitors/inclusive_metrics_evaluator.rs.html 
b/api/src/iceberg/expr/visitors/inclusive_metrics_evaluator.rs.html
index 799fa349..ed69b00d 100644
--- a/api/src/iceberg/expr/visitors/inclusive_metrics_evaluator.rs.html
+++ b/api/src/iceberg/expr/visitors/inclusive_metrics_evaluator.rs.html
@@ -2163,7 +2163,31 @@
 <a href="#2162" id="2162">2162</a>
 <a href="#2163" id="2163">2163</a>
 <a href="#2164" id="2164">2164</a>
-<a href="#2165" id="2165">2165</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#2165" id="2165">2165</a>
+<a href="#2166" id="2166">2166</a>
+<a href="#2167" id="2167">2167</a>
+<a href="#2168" id="2168">2168</a>
+<a href="#2169" id="2169">2169</a>
+<a href="#2170" id="2170">2170</a>
+<a href="#2171" id="2171">2171</a>
+<a href="#2172" id="2172">2172</a>
+<a href="#2173" id="2173">2173</a>
+<a href="#2174" id="2174">2174</a>
+<a href="#2175" id="2175">2175</a>
+<a href="#2176" id="2176">2176</a>
+<a href="#2177" id="2177">2177</a>
+<a href="#2178" id="2178">2178</a>
+<a href="#2179" id="2179">2179</a>
+<a href="#2180" id="2180">2180</a>
+<a href="#2181" id="2181">2181</a>
+<a href="#2182" id="2182">2182</a>
+<a href="#2183" id="2183">2183</a>
+<a href="#2184" id="2184">2184</a>
+<a href="#2185" id="2185">2185</a>
+<a href="#2186" id="2186">2186</a>
+<a href="#2187" id="2187">2187</a>
+<a href="#2188" id="2188">2188</a>
+<a href="#2189" id="2189">2189</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
 // regarding copyright ownership.  The ASF licenses this file
@@ -4162,6 +4186,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
@@ -4184,6 +4212,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
@@ -4242,6 +4274,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
     <span class="kw">fn </span>get_test_file_2() -&gt; DataFile {
@@ -4269,6 +4305,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
@@ -4297,6 +4337,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
@@ -4325,6 +4369,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 }
diff --git a/api/src/iceberg/expr/visitors/strict_metrics_evaluator.rs.html 
b/api/src/iceberg/expr/visitors/strict_metrics_evaluator.rs.html
index b12b1faa..5449bdc0 100644
--- a/api/src/iceberg/expr/visitors/strict_metrics_evaluator.rs.html
+++ b/api/src/iceberg/expr/visitors/strict_metrics_evaluator.rs.html
@@ -1561,7 +1561,23 @@
 <a href="#1560" id="1560">1560</a>
 <a href="#1561" id="1561">1561</a>
 <a href="#1562" id="1562">1562</a>
-<a href="#1563" id="1563">1563</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#1563" id="1563">1563</a>
+<a href="#1564" id="1564">1564</a>
+<a href="#1565" id="1565">1565</a>
+<a href="#1566" id="1566">1566</a>
+<a href="#1567" id="1567">1567</a>
+<a href="#1568" id="1568">1568</a>
+<a href="#1569" id="1569">1569</a>
+<a href="#1570" id="1570">1570</a>
+<a href="#1571" id="1571">1571</a>
+<a href="#1572" id="1572">1572</a>
+<a href="#1573" id="1573">1573</a>
+<a href="#1574" id="1574">1574</a>
+<a href="#1575" id="1575">1575</a>
+<a href="#1576" id="1576">1576</a>
+<a href="#1577" id="1577">1577</a>
+<a href="#1578" id="1578">1578</a>
+<a href="#1579" id="1579">1579</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
 // regarding copyright ownership.  The ASF licenses this file
@@ -2145,6 +2161,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
@@ -2167,6 +2187,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
@@ -2189,6 +2213,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
@@ -2212,6 +2240,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         }
     }
 
diff --git a/api/src/iceberg/spec/manifest/_serde.rs.html 
b/api/src/iceberg/spec/manifest/_serde.rs.html
index f5866b4b..fe853f4c 100644
--- a/api/src/iceberg/spec/manifest/_serde.rs.html
+++ b/api/src/iceberg/spec/manifest/_serde.rs.html
@@ -383,7 +383,23 @@
 <a href="#382" id="382">382</a>
 <a href="#383" id="383">383</a>
 <a href="#384" id="384">384</a>
-<a href="#385" id="385">385</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</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
 // regarding copyright ownership.  The ASF licenses this file
@@ -504,6 +520,10 @@
     <span class="attr">#[serde(default)]
     </span>equality_ids: <span 
class="prelude-ty">Option</span>&lt;Vec&lt;i32&gt;&gt;,
     sort_order_id: <span class="prelude-ty">Option</span>&lt;i32&gt;,
+    first_row_id: <span class="prelude-ty">Option</span>&lt;i64&gt;,
+    referenced_data_file: <span class="prelude-ty">Option</span>&lt;String&gt;,
+    content_offset: <span class="prelude-ty">Option</span>&lt;i64&gt;,
+    content_size_in_bytes: <span class="prelude-ty">Option</span>&lt;i64&gt;,
 }
 
 <span class="kw">impl </span>DataFileSerde {
@@ -534,6 +554,10 @@
             split_offsets: <span 
class="prelude-val">Some</span>(value.split_offsets),
             equality_ids: <span 
class="prelude-val">Some</span>(value.equality_ids),
             sort_order_id: value.sort_order_id,
+            first_row_id: value.first_row_id,
+            referenced_data_file: value.referenced_data_file,
+            content_offset: value.content_offset,
+            content_size_in_bytes: value.content_size_in_bytes,
         })
     }
 
@@ -600,6 +624,10 @@
             equality_ids: <span 
class="self">self</span>.equality_ids.unwrap_or_default(),
             sort_order_id: <span class="self">self</span>.sort_order_id,
             partition_spec_id,
+            first_row_id: <span class="self">self</span>.first_row_id,
+            referenced_data_file: <span 
class="self">self</span>.referenced_data_file,
+            content_offset: <span class="self">self</span>.content_offset,
+            content_size_in_bytes: <span 
class="self">self</span>.content_size_in_bytes,
         })
     }
 }
@@ -744,8 +772,12 @@
             split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
-            partition_spec_id: <span class="number">0
-        </span>}];
+            partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
+        }];
 
         <span class="kw">let </span><span class="kw-2">mut </span>buffer = 
Vec::new();
         <span class="kw">let _ </span>= write_data_files_to_avro(
diff --git a/api/src/iceberg/spec/manifest/data_file.rs.html 
b/api/src/iceberg/spec/manifest/data_file.rs.html
index f9f1e211..75465615 100644
--- a/api/src/iceberg/spec/manifest/data_file.rs.html
+++ b/api/src/iceberg/spec/manifest/data_file.rs.html
@@ -350,7 +350,56 @@
 <a href="#349" id="349">349</a>
 <a href="#350" id="350">350</a>
 <a href="#351" id="351">351</a>
-<a href="#352" id="352">352</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</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
 // regarding copyright ownership.  The ASF licenses this file
@@ -395,7 +444,7 @@
     </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
file_path: String,
     <span class="doccomment">/// field id: 101
     ///
-    /// String file format name, avro, orc or parquet
+    /// String file format name, `avro`, `orc`, `parquet`, or `puffin`
     </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
file_format: DataFileFormat,
     <span class="doccomment">/// field id: 102
     ///
@@ -404,7 +453,7 @@
     </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
partition: Struct,
     <span class="doccomment">/// field id: 103
     ///
-    /// Number of records in this file
+    /// Number of records in this file, or the cardinality of a deletion vector
     </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
record_count: u64,
     <span class="doccomment">/// field id: 104
     ///
@@ -500,9 +549,35 @@
     /// delete files.
     </span><span class="attr">#[builder(default, setter(strip_option))]
     </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
sort_order_id: <span class="prelude-ty">Option</span>&lt;i32&gt;,
+    <span class="doccomment">/// field id: 142
+    ///
+    /// The _row_id for the first row in the data file.
+    /// For more details, refer to 
https://github.com/apache/iceberg/blob/main/format/spec.md#first-row-id-inheritance
+    </span><span class="attr">#[builder(default)]
+    </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
first_row_id: <span class="prelude-ty">Option</span>&lt;i64&gt;,
     <span class="doccomment">/// This field is not included in spec. It is 
just store in memory representation used
     /// in process.
     </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
partition_spec_id: i32,
+    <span class="doccomment">/// field id: 143
+    ///
+    /// Fully qualified location (URI with FS scheme) of a data file that all 
deletes reference.
+    /// Position delete metadata can use `referenced_data_file` when all 
deletes tracked by the
+    /// entry are in a single data file. Setting the referenced file is 
required for deletion vectors.
+    </span><span class="attr">#[builder(default)]
+    </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
referenced_data_file: <span class="prelude-ty">Option</span>&lt;String&gt;,
+    <span class="doccomment">/// field: 144
+    ///
+    /// The offset in the file where the content starts.
+    /// The `content_offset` and `content_size_in_bytes` fields are used to 
reference a specific blob
+    /// for direct access to a deletion vector. For deletion vectors, these 
values are required and must
+    /// exactly match the `offset` and `length` stored in the Puffin footer 
for the deletion vector blob.
+    </span><span class="attr">#[builder(default)]
+    </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
content_offset: <span class="prelude-ty">Option</span>&lt;i64&gt;,
+    <span class="doccomment">/// field: 145
+    ///
+    /// The length of a referenced content stored in the file; required if 
`content_offset` is present
+    </span><span class="attr">#[builder(default)]
+    </span><span class="kw">pub</span>(<span class="kw">crate</span>) 
content_size_in_bytes: <span class="prelude-ty">Option</span>&lt;i64&gt;,
 }
 
 <span class="kw">impl </span>DataFile {
@@ -578,6 +653,10 @@
     </span><span class="kw">pub fn </span>equality_ids(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="kw-2">&amp;</span>[i32] {
         <span class="kw-2">&amp;</span><span 
class="self">self</span>.equality_ids
     }
+    <span class="doccomment">/// Get the first row id in the data file.
+    </span><span class="kw">pub fn </span>first_row_id(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="prelude-ty">Option</span>&lt;i64&gt; {
+        <span class="self">self</span>.first_row_id
+    }
     <span class="doccomment">/// Get the sort order id of the data file.
     /// Only data files and equality delete files should be
     /// written with a non-null order id. Position deletes are required to be
@@ -587,6 +666,21 @@
     </span><span class="kw">pub fn </span>sort_order_id(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="prelude-ty">Option</span>&lt;i32&gt; {
         <span class="self">self</span>.sort_order_id
     }
+    <span class="doccomment">/// Get the fully qualified referenced location 
for the corresponding data file.
+    /// Positional delete files could have the field set, and deletion vectors 
must the field set.
+    </span><span class="kw">pub fn </span>referenced_data_file(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="prelude-ty">Option</span>&lt;String&gt; {
+        <span class="self">self</span>.referenced_data_file.clone()
+    }
+    <span class="doccomment">/// Get the offset in the file where the blob 
content starts.
+    /// Only meaningful for puffin blobs, and required for deletion vectors.
+    </span><span class="kw">pub fn </span>content_offset(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="prelude-ty">Option</span>&lt;i64&gt; {
+        <span class="self">self</span>.content_offset
+    }
+    <span class="doccomment">/// Get the length of a puffin blob.
+    /// Only meaningful for puffin blobs, and required for deletion vectors.
+    </span><span class="kw">pub fn </span>content_size_in_bytes(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="prelude-ty">Option</span>&lt;i64&gt; {
+        <span class="self">self</span>.content_size_in_bytes
+    }
 }
 
 <span class="doccomment">/// Convert data files to avro bytes and write to 
writer.
@@ -675,6 +769,8 @@
     </span>Orc,
     <span class="doccomment">/// Parquet file format: 
&lt;https://parquet.apache.org/&gt;
     </span>Parquet,
+    <span class="doccomment">/// Puffin file format: 
&lt;https://iceberg.apache.org/puffin-spec/&gt;
+    </span>Puffin,
 }
 
 <span class="kw">impl </span>FromStr <span class="kw">for 
</span>DataFileFormat {
@@ -685,6 +781,7 @@
             <span class="string">"avro" </span>=&gt; <span 
class="prelude-val">Ok</span>(<span class="self">Self</span>::Avro),
             <span class="string">"orc" </span>=&gt; <span 
class="prelude-val">Ok</span>(<span class="self">Self</span>::Orc),
             <span class="string">"parquet" </span>=&gt; <span 
class="prelude-val">Ok</span>(<span class="self">Self</span>::Parquet),
+            <span class="string">"puffin" </span>=&gt; <span 
class="prelude-val">Ok</span>(<span class="self">Self</span>::Puffin),
             <span class="kw">_ </span>=&gt; <span 
class="prelude-val">Err</span>(Error::new(
                 ErrorKind::DataInvalid,
                 <span class="macro">format!</span>(<span 
class="string">"Unsupported data file format: {}"</span>, s),
@@ -699,6 +796,7 @@
             DataFileFormat::Avro =&gt; <span class="macro">write!</span>(f, 
<span class="string">"avro"</span>),
             DataFileFormat::Orc =&gt; <span class="macro">write!</span>(f, 
<span class="string">"orc"</span>),
             DataFileFormat::Parquet =&gt; <span class="macro">write!</span>(f, 
<span class="string">"parquet"</span>),
+            DataFileFormat::Puffin =&gt; <span class="macro">write!</span>(f, 
<span class="string">"puffin"</span>),
         }
     }
 }
diff --git a/api/src/iceberg/spec/manifest/entry.rs.html 
b/api/src/iceberg/spec/manifest/entry.rs.html
index c8a36af0..81d71145 100644
--- a/api/src/iceberg/spec/manifest/entry.rs.html
+++ b/api/src/iceberg/spec/manifest/entry.rs.html
@@ -561,7 +561,51 @@
 <a href="#560" id="560">560</a>
 <a href="#561" id="561">561</a>
 <a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</a>
+<a href="#565" id="565">565</a>
+<a href="#566" id="566">566</a>
+<a href="#567" id="567">567</a>
+<a href="#568" id="568">568</a>
+<a href="#569" id="569">569</a>
+<a href="#570" id="570">570</a>
+<a href="#571" id="571">571</a>
+<a href="#572" id="572">572</a>
+<a href="#573" id="573">573</a>
+<a href="#574" id="574">574</a>
+<a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
+<a href="#600" id="600">600</a>
+<a href="#601" id="601">601</a>
+<a href="#602" id="602">602</a>
+<a href="#603" id="603">603</a>
+<a href="#604" id="604">604</a>
+<a href="#605" id="605">605</a>
+<a href="#606" id="606">606</a>
+<a href="#607" id="607">607</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
 // regarding copyright ownership.  The ASF licenses this file
@@ -1032,6 +1076,46 @@
     })
 };
 
+<span class="kw">static </span>FIRST_ROW_ID: Lazy&lt;NestedFieldRef&gt; = {
+    Lazy::new(|| {
+        Arc::new(NestedField::optional(
+            <span class="number">142</span>,
+            <span class="string">"first_row_id"</span>,
+            Type::Primitive(PrimitiveType::Long),
+        ))
+    })
+};
+
+<span class="kw">static </span>REFERENCE_DATA_FILE: Lazy&lt;NestedFieldRef&gt; 
= {
+    Lazy::new(|| {
+        Arc::new(NestedField::optional(
+            <span class="number">143</span>,
+            <span class="string">"referenced_data_file"</span>,
+            Type::Primitive(PrimitiveType::String),
+        ))
+    })
+};
+
+<span class="kw">static </span>CONTENT_OFFSET: Lazy&lt;NestedFieldRef&gt; = {
+    Lazy::new(|| {
+        Arc::new(NestedField::optional(
+            <span class="number">144</span>,
+            <span class="string">"content_offset"</span>,
+            Type::Primitive(PrimitiveType::Long),
+        ))
+    })
+};
+
+<span class="kw">static </span>CONTENT_SIZE_IN_BYTES: 
Lazy&lt;NestedFieldRef&gt; = {
+    Lazy::new(|| {
+        Arc::new(NestedField::optional(
+            <span class="number">145</span>,
+            <span class="string">"content_size_in_bytes"</span>,
+            Type::Primitive(PrimitiveType::Long),
+        ))
+    })
+};
+
 <span class="kw">fn </span>data_file_fields_v2(partition_type: <span 
class="kw-2">&amp;</span>StructType) -&gt; Vec&lt;NestedFieldRef&gt; {
     <span class="macro">vec!</span>[
         CONTENT.clone(),
@@ -1054,6 +1138,10 @@
         SPLIT_OFFSETS.clone(),
         EQUALITY_IDS.clone(),
         SORT_ORDER_ID.clone(),
+        FIRST_ROW_ID.clone(),
+        REFERENCE_DATA_FILE.clone(),
+        CONTENT_OFFSET.clone(),
+        CONTENT_SIZE_IN_BYTES.clone(),
     ]
 }
 
diff --git a/api/src/iceberg/spec/manifest/mod.rs.html 
b/api/src/iceberg/spec/manifest/mod.rs.html
index e76bb439..6571a453 100644
--- a/api/src/iceberg/spec/manifest/mod.rs.html
+++ b/api/src/iceberg/spec/manifest/mod.rs.html
@@ -995,7 +995,43 @@
 <a href="#994" id="994">994</a>
 <a href="#995" id="995">995</a>
 <a href="#996" id="996">996</a>
-<a href="#997" id="997">997</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</a>
+<a href="#1004" id="1004">1004</a>
+<a href="#1005" id="1005">1005</a>
+<a href="#1006" id="1006">1006</a>
+<a href="#1007" id="1007">1007</a>
+<a href="#1008" id="1008">1008</a>
+<a href="#1009" id="1009">1009</a>
+<a href="#1010" id="1010">1010</a>
+<a href="#1011" id="1011">1011</a>
+<a href="#1012" id="1012">1012</a>
+<a href="#1013" id="1013">1013</a>
+<a href="#1014" id="1014">1014</a>
+<a href="#1015" id="1015">1015</a>
+<a href="#1016" id="1016">1016</a>
+<a href="#1017" id="1017">1017</a>
+<a href="#1018" id="1018">1018</a>
+<a href="#1019" id="1019">1019</a>
+<a href="#1020" id="1020">1020</a>
+<a href="#1021" id="1021">1021</a>
+<a href="#1022" id="1022">1022</a>
+<a href="#1023" id="1023">1023</a>
+<a href="#1024" id="1024">1024</a>
+<a href="#1025" id="1025">1025</a>
+<a href="#1026" id="1026">1026</a>
+<a href="#1027" id="1027">1027</a>
+<a href="#1028" id="1028">1028</a>
+<a href="#1029" id="1029">1029</a>
+<a href="#1030" id="1030">1030</a>
+<a href="#1031" id="1031">1031</a>
+<a href="#1032" id="1032">1032</a>
+<a href="#1033" id="1033">1033</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
 // regarding copyright ownership.  The ASF licenses this file
@@ -1212,7 +1248,7 @@
                     snapshot_id: <span class="prelude-val">None</span>,
                     sequence_number: <span class="prelude-val">None</span>,
                     file_sequence_number: <span 
class="prelude-val">None</span>,
-                    data_file: DataFile 
{content:DataContentType::Data,file_path:<span 
class="string">"s3a://icebergdata/demo/s1/t1/data/00000-0-ba56fbfa-f2ff-40c9-bb27-565ad6dc2be8-00000.parquet"</span>.to_string(),file_format:DataFileFormat::Parquet,partition:Struct::empty(),record_count:<span
 class="number">1</span>,file_size_in_bytes:<span 
class="number">5442</span>,column_sizes:HashMap::from([(<span 
class="number">0</span>,<span class="number">73</span>),(<span 
class="number">6</spa [...]
+                    data_file: DataFile 
{content:DataContentType::Data,file_path:<span 
class="string">"s3a://icebergdata/demo/s1/t1/data/00000-0-ba56fbfa-f2ff-40c9-bb27-565ad6dc2be8-00000.parquet"</span>.to_string(),file_format:DataFileFormat::Parquet,partition:Struct::empty(),record_count:<span
 class="number">1</span>,file_size_in_bytes:<span 
class="number">5442</span>,column_sizes:HashMap::from([(<span 
class="number">0</span>,<span class="number">73</span>),(<span 
class="number">6</spa [...]
                 }
             ];
 
@@ -1393,8 +1429,12 @@
                     split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
                     equality_ids: <span class="macro">vec!</span>[],
                     sort_order_id: <span class="prelude-val">None</span>,
-                    partition_spec_id: <span class="number">0
-                </span>},
+                    partition_spec_id: <span class="number">0</span>,
+                    first_row_id: <span class="prelude-val">None</span>,
+                    referenced_data_file: <span 
class="prelude-val">None</span>,
+                    content_offset: <span class="prelude-val">None</span>,
+                    content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                },
             }];
 
         <span class="comment">// write manifest to file and check the return 
manifest file.
@@ -1486,8 +1526,12 @@
                     split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
                     equality_ids: <span class="macro">vec!</span>[],
                     sort_order_id: <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
-                    partition_spec_id: <span class="number">0
-                </span>}
+                    partition_spec_id: <span class="number">0</span>,
+                    first_row_id: <span class="prelude-val">None</span>,
+                    referenced_data_file: <span 
class="prelude-val">None</span>,
+                    content_offset: <span class="prelude-val">None</span>,
+                    content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                }
             }];
 
         <span class="comment">// write manifest to file
@@ -1590,8 +1634,12 @@
                         split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
                         equality_ids: <span class="macro">vec!</span>[],
                         sort_order_id: <span 
class="prelude-val">Some</span>(<span class="number">0</span>),
-                        partition_spec_id: <span class="number">0
-                    </span>},
+                        partition_spec_id: <span class="number">0</span>,
+                        first_row_id: <span class="prelude-val">None</span>,
+                        referenced_data_file: <span 
class="prelude-val">None</span>,
+                        content_offset: <span class="prelude-val">None</span>,
+                        content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                    },
                 }
             ];
 
@@ -1694,8 +1742,12 @@
                     split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
                     equality_ids: <span class="macro">vec!</span>[],
                     sort_order_id: <span class="prelude-val">None</span>,
-                    partition_spec_id: <span class="number">0
-                </span>},
+                    partition_spec_id: <span class="number">0</span>,
+                    first_row_id: <span class="prelude-val">None</span>,
+                    referenced_data_file: <span 
class="prelude-val">None</span>,
+                    content_offset: <span class="prelude-val">None</span>,
+                    content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                },
             }];
 
         <span class="comment">// write manifest to file
@@ -1781,8 +1833,12 @@
                     split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
                     equality_ids: <span class="macro">vec!</span>[],
                     sort_order_id: <span class="prelude-val">None</span>,
-                    partition_spec_id: <span class="number">0
-                </span>},
+                    partition_spec_id: <span class="number">0</span>,
+                    first_row_id: <span class="prelude-val">None</span>,
+                    referenced_data_file: <span 
class="prelude-val">None</span>,
+                    content_offset: <span class="prelude-val">None</span>,
+                    content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                },
             })],
         };
 
@@ -1831,6 +1887,41 @@
             format_version: FormatVersion::V2,
         };
         <span class="kw">let </span>entries = <span class="macro">vec!</span>[
+            ManifestEntry {
+                status: ManifestStatus::Added,
+                snapshot_id: <span class="prelude-val">None</span>,
+                sequence_number: <span class="prelude-val">None</span>,
+                file_sequence_number: <span class="prelude-val">None</span>,
+                data_file: DataFile {
+                    content: DataContentType::Data,
+                    file_path: <span 
class="string">"s3a://icebergdata/demo/s1/t1/data/00000-0-ba56fbfa-f2ff-40c9-bb27-565ad6dc2be8-00000.parquet"</span>.to_string(),
+                    file_format: DataFileFormat::Parquet,
+                    partition: Struct::from_iter(
+                        <span class="macro">vec!</span>[
+                            <span 
class="prelude-val">Some</span>(Literal::int(<span class="number">2021</span>)),
+                            <span 
class="prelude-val">Some</span>(Literal::float(<span 
class="number">1.0</span>)),
+                            <span 
class="prelude-val">Some</span>(Literal::double(<span 
class="number">2.0</span>)),
+                        ]
+                    ),
+                    record_count: <span class="number">1</span>,
+                    file_size_in_bytes: <span class="number">5442</span>,
+                    column_sizes: HashMap::from([(<span 
class="number">0</span>,<span class="number">73</span>),(<span 
class="number">6</span>,<span class="number">34</span>),(<span 
class="number">2</span>,<span class="number">73</span>),(<span 
class="number">7</span>,<span class="number">61</span>),(<span 
class="number">3</span>,<span class="number">61</span>),(<span 
class="number">5</span>,<span class="number">62</span>),(<span 
class="number">9</span>,<span class="number">79</span>),(< [...]
+                    value_counts: HashMap::from([(<span 
class="number">4</span>,<span class="number">1</span>),(<span 
class="number">5</span>,<span class="number">1</span>),(<span 
class="number">2</span>,<span class="number">1</span>),(<span 
class="number">0</span>,<span class="number">1</span>),(<span 
class="number">3</span>,<span class="number">1</span>),(<span 
class="number">6</span>,<span class="number">1</span>),(<span 
class="number">8</span>,<span class="number">1</span>),(<span cl [...]
+                    null_value_counts: HashMap::from([(<span 
class="number">1</span>,<span class="number">0</span>),(<span 
class="number">6</span>,<span class="number">0</span>),(<span 
class="number">2</span>,<span class="number">0</span>),(<span 
class="number">8</span>,<span class="number">0</span>),(<span 
class="number">0</span>,<span class="number">0</span>),(<span 
class="number">3</span>,<span class="number">0</span>),(<span 
class="number">5</span>,<span class="number">0</span>),(<sp [...]
+                    nan_value_counts: HashMap::new(),
+                    lower_bounds: HashMap::new(),
+                    upper_bounds: HashMap::new(),
+                    key_metadata: <span class="prelude-val">None</span>,
+                    split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
+                    equality_ids: Vec::new(),
+                    sort_order_id: <span class="prelude-val">None</span>,
+                    partition_spec_id: <span class="number">0</span>,
+                    first_row_id: <span class="prelude-val">None</span>,
+                    referenced_data_file: <span 
class="prelude-val">None</span>,
+                    content_offset: <span class="prelude-val">None</span>,
+                    content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                }
+            },
                 ManifestEntry {
                     status: ManifestStatus::Added,
                     snapshot_id: <span class="prelude-val">None</span>,
@@ -1842,9 +1933,9 @@
                         file_format: DataFileFormat::Parquet,
                         partition: Struct::from_iter(
                             <span class="macro">vec!</span>[
-                                <span 
class="prelude-val">Some</span>(Literal::int(<span class="number">2021</span>)),
-                                <span 
class="prelude-val">Some</span>(Literal::float(<span 
class="number">1.0</span>)),
-                                <span 
class="prelude-val">Some</span>(Literal::double(<span 
class="number">2.0</span>)),
+                                <span 
class="prelude-val">Some</span>(Literal::int(<span class="number">1111</span>)),
+                                <span 
class="prelude-val">Some</span>(Literal::float(<span 
class="number">15.5</span>)),
+                                <span 
class="prelude-val">Some</span>(Literal::double(<span 
class="number">25.5</span>)),
                             ]
                         ),
                         record_count: <span class="number">1</span>,
@@ -1859,103 +1950,84 @@
                         split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
                         equality_ids: Vec::new(),
                         sort_order_id: <span class="prelude-val">None</span>,
-                        partition_spec_id: <span class="number">0
-                    </span>}
+                        partition_spec_id: <span class="number">0</span>,
+                        first_row_id: <span class="prelude-val">None</span>,
+                        referenced_data_file: <span 
class="prelude-val">None</span>,
+                        content_offset: <span class="prelude-val">None</span>,
+                        content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                    }
                 },
-                    ManifestEntry {
-                        status: ManifestStatus::Added,
-                        snapshot_id: <span class="prelude-val">None</span>,
-                        sequence_number: <span class="prelude-val">None</span>,
-                        file_sequence_number: <span 
class="prelude-val">None</span>,
-                        data_file: DataFile {
-                            content: DataContentType::Data,
-                            file_path: <span 
class="string">"s3a://icebergdata/demo/s1/t1/data/00000-0-ba56fbfa-f2ff-40c9-bb27-565ad6dc2be8-00000.parquet"</span>.to_string(),
-                            file_format: DataFileFormat::Parquet,
-                            partition: Struct::from_iter(
-                                <span class="macro">vec!</span>[
-                                    <span 
class="prelude-val">Some</span>(Literal::int(<span class="number">1111</span>)),
-                                    <span 
class="prelude-val">Some</span>(Literal::float(<span 
class="number">15.5</span>)),
-                                    <span 
class="prelude-val">Some</span>(Literal::double(<span 
class="number">25.5</span>)),
-                                ]
-                            ),
-                            record_count: <span class="number">1</span>,
-                            file_size_in_bytes: <span 
class="number">5442</span>,
-                            column_sizes: HashMap::from([(<span 
class="number">0</span>,<span class="number">73</span>),(<span 
class="number">6</span>,<span class="number">34</span>),(<span 
class="number">2</span>,<span class="number">73</span>),(<span 
class="number">7</span>,<span class="number">61</span>),(<span 
class="number">3</span>,<span class="number">61</span>),(<span 
class="number">5</span>,<span class="number">62</span>),(<span 
class="number">9</span>,<span class="number">79</s [...]
-                            value_counts: HashMap::from([(<span 
class="number">4</span>,<span class="number">1</span>),(<span 
class="number">5</span>,<span class="number">1</span>),(<span 
class="number">2</span>,<span class="number">1</span>),(<span 
class="number">0</span>,<span class="number">1</span>),(<span 
class="number">3</span>,<span class="number">1</span>),(<span 
class="number">6</span>,<span class="number">1</span>),(<span 
class="number">8</span>,<span class="number">1</span>),( [...]
-                            null_value_counts: HashMap::from([(<span 
class="number">1</span>,<span class="number">0</span>),(<span 
class="number">6</span>,<span class="number">0</span>),(<span 
class="number">2</span>,<span class="number">0</span>),(<span 
class="number">8</span>,<span class="number">0</span>),(<span 
class="number">0</span>,<span class="number">0</span>),(<span 
class="number">3</span>,<span class="number">0</span>),(<span 
class="number">5</span>,<span class="number">0</spa [...]
-                            nan_value_counts: HashMap::new(),
-                            lower_bounds: HashMap::new(),
-                            upper_bounds: HashMap::new(),
-                            key_metadata: <span 
class="prelude-val">None</span>,
-                            split_offsets: <span 
class="macro">vec!</span>[<span class="number">4</span>],
-                            equality_ids: Vec::new(),
-                            sort_order_id: <span 
class="prelude-val">None</span>,
-                            partition_spec_id: <span class="number">0
-                        </span>}
-                    },
-                    ManifestEntry {
-                        status: ManifestStatus::Added,
-                        snapshot_id: <span class="prelude-val">None</span>,
-                        sequence_number: <span class="prelude-val">None</span>,
-                        file_sequence_number: <span 
class="prelude-val">None</span>,
-                        data_file: DataFile {
-                            content: DataContentType::Data,
-                            file_path: <span 
class="string">"s3a://icebergdata/demo/s1/t1/data/00000-0-ba56fbfa-f2ff-40c9-bb27-565ad6dc2be8-00000.parquet"</span>.to_string(),
-                            file_format: DataFileFormat::Parquet,
-                            partition: Struct::from_iter(
-                                <span class="macro">vec!</span>[
-                                    <span 
class="prelude-val">Some</span>(Literal::int(<span class="number">1211</span>)),
-                                    <span 
class="prelude-val">Some</span>(Literal::float(f32::NAN)),
-                                    <span 
class="prelude-val">Some</span>(Literal::double(<span 
class="number">1.0</span>)),
-                                ]
-                            ),
-                            record_count: <span class="number">1</span>,
-                            file_size_in_bytes: <span 
class="number">5442</span>,
-                            column_sizes: HashMap::from([(<span 
class="number">0</span>,<span class="number">73</span>),(<span 
class="number">6</span>,<span class="number">34</span>),(<span 
class="number">2</span>,<span class="number">73</span>),(<span 
class="number">7</span>,<span class="number">61</span>),(<span 
class="number">3</span>,<span class="number">61</span>),(<span 
class="number">5</span>,<span class="number">62</span>),(<span 
class="number">9</span>,<span class="number">79</s [...]
-                            value_counts: HashMap::from([(<span 
class="number">4</span>,<span class="number">1</span>),(<span 
class="number">5</span>,<span class="number">1</span>),(<span 
class="number">2</span>,<span class="number">1</span>),(<span 
class="number">0</span>,<span class="number">1</span>),(<span 
class="number">3</span>,<span class="number">1</span>),(<span 
class="number">6</span>,<span class="number">1</span>),(<span 
class="number">8</span>,<span class="number">1</span>),( [...]
-                            null_value_counts: HashMap::from([(<span 
class="number">1</span>,<span class="number">0</span>),(<span 
class="number">6</span>,<span class="number">0</span>),(<span 
class="number">2</span>,<span class="number">0</span>),(<span 
class="number">8</span>,<span class="number">0</span>),(<span 
class="number">0</span>,<span class="number">0</span>),(<span 
class="number">3</span>,<span class="number">0</span>),(<span 
class="number">5</span>,<span class="number">0</spa [...]
-                            nan_value_counts: HashMap::new(),
-                            lower_bounds: HashMap::new(),
-                            upper_bounds: HashMap::new(),
-                            key_metadata: <span 
class="prelude-val">None</span>,
-                            split_offsets: <span 
class="macro">vec!</span>[<span class="number">4</span>],
-                            equality_ids: Vec::new(),
-                            sort_order_id: <span 
class="prelude-val">None</span>,
-                            partition_spec_id: <span class="number">0
-                        </span>}
-                    },
-                    ManifestEntry {
-                        status: ManifestStatus::Added,
-                        snapshot_id: <span class="prelude-val">None</span>,
-                        sequence_number: <span class="prelude-val">None</span>,
-                        file_sequence_number: <span 
class="prelude-val">None</span>,
-                        data_file: DataFile {
-                            content: DataContentType::Data,
-                            file_path: <span 
class="string">"s3a://icebergdata/demo/s1/t1/data/00000-0-ba56fbfa-f2ff-40c9-bb27-565ad6dc2be8-00000.parquet"</span>.to_string(),
-                            file_format: DataFileFormat::Parquet,
-                            partition: Struct::from_iter(
-                                <span class="macro">vec!</span>[
-                                    <span 
class="prelude-val">Some</span>(Literal::int(<span class="number">1111</span>)),
-                                    <span class="prelude-val">None</span>,
-                                    <span 
class="prelude-val">Some</span>(Literal::double(<span 
class="number">11.0</span>)),
-                                ]
-                            ),
-                            record_count: <span class="number">1</span>,
-                            file_size_in_bytes: <span 
class="number">5442</span>,
-                            column_sizes: HashMap::from([(<span 
class="number">0</span>,<span class="number">73</span>),(<span 
class="number">6</span>,<span class="number">34</span>),(<span 
class="number">2</span>,<span class="number">73</span>),(<span 
class="number">7</span>,<span class="number">61</span>),(<span 
class="number">3</span>,<span class="number">61</span>),(<span 
class="number">5</span>,<span class="number">62</span>),(<span 
class="number">9</span>,<span class="number">79</s [...]
-                            value_counts: HashMap::from([(<span 
class="number">4</span>,<span class="number">1</span>),(<span 
class="number">5</span>,<span class="number">1</span>),(<span 
class="number">2</span>,<span class="number">1</span>),(<span 
class="number">0</span>,<span class="number">1</span>),(<span 
class="number">3</span>,<span class="number">1</span>),(<span 
class="number">6</span>,<span class="number">1</span>),(<span 
class="number">8</span>,<span class="number">1</span>),( [...]
-                            null_value_counts: HashMap::from([(<span 
class="number">1</span>,<span class="number">0</span>),(<span 
class="number">6</span>,<span class="number">0</span>),(<span 
class="number">2</span>,<span class="number">0</span>),(<span 
class="number">8</span>,<span class="number">0</span>),(<span 
class="number">0</span>,<span class="number">0</span>),(<span 
class="number">3</span>,<span class="number">0</span>),(<span 
class="number">5</span>,<span class="number">0</spa [...]
-                            nan_value_counts: HashMap::new(),
-                            lower_bounds: HashMap::new(),
-                            upper_bounds: HashMap::new(),
-                            key_metadata: <span 
class="prelude-val">None</span>,
-                            split_offsets: <span 
class="macro">vec!</span>[<span class="number">4</span>],
-                            equality_ids: Vec::new(),
-                            sort_order_id: <span 
class="prelude-val">None</span>,
-                            partition_spec_id: <span class="number">0
-                        </span>}
-                    },
-            ];
+                ManifestEntry {
+                    status: ManifestStatus::Added,
+                    snapshot_id: <span class="prelude-val">None</span>,
+                    sequence_number: <span class="prelude-val">None</span>,
+                    file_sequence_number: <span 
class="prelude-val">None</span>,
+                    data_file: DataFile {
+                        content: DataContentType::Data,
+                        file_path: <span 
class="string">"s3a://icebergdata/demo/s1/t1/data/00000-0-ba56fbfa-f2ff-40c9-bb27-565ad6dc2be8-00000.parquet"</span>.to_string(),
+                        file_format: DataFileFormat::Parquet,
+                        partition: Struct::from_iter(
+                            <span class="macro">vec!</span>[
+                                <span 
class="prelude-val">Some</span>(Literal::int(<span class="number">1211</span>)),
+                                <span 
class="prelude-val">Some</span>(Literal::float(f32::NAN)),
+                                <span 
class="prelude-val">Some</span>(Literal::double(<span 
class="number">1.0</span>)),
+                            ]
+                        ),
+                        record_count: <span class="number">1</span>,
+                        file_size_in_bytes: <span class="number">5442</span>,
+                        column_sizes: HashMap::from([(<span 
class="number">0</span>,<span class="number">73</span>),(<span 
class="number">6</span>,<span class="number">34</span>),(<span 
class="number">2</span>,<span class="number">73</span>),(<span 
class="number">7</span>,<span class="number">61</span>),(<span 
class="number">3</span>,<span class="number">61</span>),(<span 
class="number">5</span>,<span class="number">62</span>),(<span 
class="number">9</span>,<span class="number">79</span> [...]
+                        value_counts: HashMap::from([(<span 
class="number">4</span>,<span class="number">1</span>),(<span 
class="number">5</span>,<span class="number">1</span>),(<span 
class="number">2</span>,<span class="number">1</span>),(<span 
class="number">0</span>,<span class="number">1</span>),(<span 
class="number">3</span>,<span class="number">1</span>),(<span 
class="number">6</span>,<span class="number">1</span>),(<span 
class="number">8</span>,<span class="number">1</span>),(<spa [...]
+                        null_value_counts: HashMap::from([(<span 
class="number">1</span>,<span class="number">0</span>),(<span 
class="number">6</span>,<span class="number">0</span>),(<span 
class="number">2</span>,<span class="number">0</span>),(<span 
class="number">8</span>,<span class="number">0</span>),(<span 
class="number">0</span>,<span class="number">0</span>),(<span 
class="number">3</span>,<span class="number">0</span>),(<span 
class="number">5</span>,<span class="number">0</span>), [...]
+                        nan_value_counts: HashMap::new(),
+                        lower_bounds: HashMap::new(),
+                        upper_bounds: HashMap::new(),
+                        key_metadata: <span class="prelude-val">None</span>,
+                        split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
+                        equality_ids: Vec::new(),
+                        sort_order_id: <span class="prelude-val">None</span>,
+                        partition_spec_id: <span class="number">0</span>,
+                        first_row_id: <span class="prelude-val">None</span>,
+                        referenced_data_file: <span 
class="prelude-val">None</span>,
+                        content_offset: <span class="prelude-val">None</span>,
+                        content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                    }
+                },
+                ManifestEntry {
+                    status: ManifestStatus::Added,
+                    snapshot_id: <span class="prelude-val">None</span>,
+                    sequence_number: <span class="prelude-val">None</span>,
+                    file_sequence_number: <span 
class="prelude-val">None</span>,
+                    data_file: DataFile {
+                        content: DataContentType::Data,
+                        file_path: <span 
class="string">"s3a://icebergdata/demo/s1/t1/data/00000-0-ba56fbfa-f2ff-40c9-bb27-565ad6dc2be8-00000.parquet"</span>.to_string(),
+                        file_format: DataFileFormat::Parquet,
+                        partition: Struct::from_iter(
+                            <span class="macro">vec!</span>[
+                                <span 
class="prelude-val">Some</span>(Literal::int(<span class="number">1111</span>)),
+                                <span class="prelude-val">None</span>,
+                                <span 
class="prelude-val">Some</span>(Literal::double(<span 
class="number">11.0</span>)),
+                            ]
+                        ),
+                        record_count: <span class="number">1</span>,
+                        file_size_in_bytes: <span class="number">5442</span>,
+                        column_sizes: HashMap::from([(<span 
class="number">0</span>,<span class="number">73</span>),(<span 
class="number">6</span>,<span class="number">34</span>),(<span 
class="number">2</span>,<span class="number">73</span>),(<span 
class="number">7</span>,<span class="number">61</span>),(<span 
class="number">3</span>,<span class="number">61</span>),(<span 
class="number">5</span>,<span class="number">62</span>),(<span 
class="number">9</span>,<span class="number">79</span> [...]
+                        value_counts: HashMap::from([(<span 
class="number">4</span>,<span class="number">1</span>),(<span 
class="number">5</span>,<span class="number">1</span>),(<span 
class="number">2</span>,<span class="number">1</span>),(<span 
class="number">0</span>,<span class="number">1</span>),(<span 
class="number">3</span>,<span class="number">1</span>),(<span 
class="number">6</span>,<span class="number">1</span>),(<span 
class="number">8</span>,<span class="number">1</span>),(<spa [...]
+                        null_value_counts: HashMap::from([(<span 
class="number">1</span>,<span class="number">0</span>),(<span 
class="number">6</span>,<span class="number">0</span>),(<span 
class="number">2</span>,<span class="number">0</span>),(<span 
class="number">8</span>,<span class="number">0</span>),(<span 
class="number">0</span>,<span class="number">0</span>),(<span 
class="number">3</span>,<span class="number">0</span>),(<span 
class="number">5</span>,<span class="number">0</span>), [...]
+                        nan_value_counts: HashMap::new(),
+                        lower_bounds: HashMap::new(),
+                        upper_bounds: HashMap::new(),
+                        key_metadata: <span class="prelude-val">None</span>,
+                        split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
+                        equality_ids: Vec::new(),
+                        sort_order_id: <span class="prelude-val">None</span>,
+                        partition_spec_id: <span class="number">0</span>,
+                        first_row_id: <span class="prelude-val">None</span>,
+                        referenced_data_file: <span 
class="prelude-val">None</span>,
+                        content_offset: <span class="prelude-val">None</span>,
+                        content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                    }
+                },
+        ];
 
         <span class="comment">// write manifest to file
         </span><span class="kw">let </span>tmp_dir = TempDir::new().unwrap();
diff --git a/api/src/iceberg/spec/manifest/writer.rs.html 
b/api/src/iceberg/spec/manifest/writer.rs.html
index 0636aaa2..b3b13051 100644
--- a/api/src/iceberg/spec/manifest/writer.rs.html
+++ b/api/src/iceberg/spec/manifest/writer.rs.html
@@ -628,7 +628,19 @@
 <a href="#627" id="627">627</a>
 <a href="#628" id="628">628</a>
 <a href="#629" id="629">629</a>
-<a href="#630" id="630">630</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#630" id="630">630</a>
+<a href="#631" id="631">631</a>
+<a href="#632" id="632">632</a>
+<a href="#633" id="633">633</a>
+<a href="#634" id="634">634</a>
+<a href="#635" id="635">635</a>
+<a href="#636" id="636">636</a>
+<a href="#637" id="637">637</a>
+<a href="#638" id="638">638</a>
+<a href="#639" id="639">639</a>
+<a href="#640" id="640">640</a>
+<a href="#641" id="641">641</a>
+<a href="#642" id="642">642</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
 // regarding copyright ownership.  The ASF licenses this file
@@ -1172,8 +1184,12 @@
                         split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
                         equality_ids: Vec::new(),
                         sort_order_id: <span class="prelude-val">None</span>,
-                        partition_spec_id: <span class="number">0
-                    </span>},
+                        partition_spec_id: <span class="number">0</span>,
+                        first_row_id: <span class="prelude-val">None</span>,
+                        referenced_data_file: <span 
class="prelude-val">None</span>,
+                        content_offset: <span class="prelude-val">None</span>,
+                        content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                    },
                 },
                 ManifestEntry {
                     status: ManifestStatus::Deleted,
@@ -1197,8 +1213,12 @@
                         split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
                         equality_ids: Vec::new(),
                         sort_order_id: <span class="prelude-val">None</span>,
-                        partition_spec_id: <span class="number">0
-                    </span>},
+                        partition_spec_id: <span class="number">0</span>,
+                        first_row_id: <span class="prelude-val">None</span>,
+                        referenced_data_file: <span 
class="prelude-val">None</span>,
+                        content_offset: <span class="prelude-val">None</span>,
+                        content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                    },
                 },
                 ManifestEntry {
                     status: ManifestStatus::Existing,
@@ -1222,8 +1242,12 @@
                         split_offsets: <span class="macro">vec!</span>[<span 
class="number">4</span>],
                         equality_ids: Vec::new(),
                         sort_order_id: <span class="prelude-val">None</span>,
-                        partition_spec_id: <span class="number">0
-                    </span>},
+                        partition_spec_id: <span class="number">0</span>,
+                        first_row_id: <span class="prelude-val">None</span>,
+                        referenced_data_file: <span 
class="prelude-val">None</span>,
+                        content_offset: <span class="prelude-val">None</span>,
+                        content_size_in_bytes: <span 
class="prelude-val">None</span>,
+                    },
                 },
             ];
 
diff --git a/api/src/iceberg/spec/snapshot_summary.rs.html 
b/api/src/iceberg/spec/snapshot_summary.rs.html
index a9795b02..7a56e2a0 100644
--- a/api/src/iceberg/spec/snapshot_summary.rs.html
+++ b/api/src/iceberg/spec/snapshot_summary.rs.html
@@ -990,7 +990,27 @@
 <a href="#989" id="989">989</a>
 <a href="#990" id="990">990</a>
 <a href="#991" id="991">991</a>
-<a href="#992" id="992">992</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#992" id="992">992</a>
+<a href="#993" id="993">993</a>
+<a href="#994" id="994">994</a>
+<a href="#995" id="995">995</a>
+<a href="#996" id="996">996</a>
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</a>
+<a href="#1004" id="1004">1004</a>
+<a href="#1005" id="1005">1005</a>
+<a href="#1006" id="1006">1006</a>
+<a href="#1007" id="1007">1007</a>
+<a href="#1008" id="1008">1008</a>
+<a href="#1009" id="1009">1009</a>
+<a href="#1010" id="1010">1010</a>
+<a href="#1011" id="1011">1011</a>
+<a href="#1012" id="1012">1012</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
 // regarding copyright ownership.  The ASF licenses this file
@@ -1761,6 +1781,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         };
 
         <span class="kw">let </span>file2 = DataFile {
@@ -1789,6 +1813,10 @@
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">Some</span>(<span 
class="number">0</span>),
             partition_spec_id: <span class="number">0</span>,
+            first_row_id: <span class="prelude-val">None</span>,
+            referenced_data_file: <span class="prelude-val">None</span>,
+            content_offset: <span class="prelude-val">None</span>,
+            content_size_in_bytes: <span class="prelude-val">None</span>,
         };
 
         collector.add_file(<span class="kw-2">&amp;</span>file1, 
schema.clone(), partition_spec.clone());
@@ -1893,6 +1921,10 @@
                 equality_ids: <span class="macro">vec!</span>[],
                 sort_order_id: <span class="prelude-val">None</span>,
                 partition_spec_id: <span class="number">0</span>,
+                first_row_id: <span class="prelude-val">None</span>,
+                referenced_data_file: <span class="prelude-val">None</span>,
+                content_offset: <span class="prelude-val">None</span>,
+                content_size_in_bytes: <span class="prelude-val">None</span>,
             },
             schema.clone(),
             partition_spec.clone(),
@@ -1917,6 +1949,10 @@
                 equality_ids: <span class="macro">vec!</span>[],
                 sort_order_id: <span class="prelude-val">None</span>,
                 partition_spec_id: <span class="number">0</span>,
+                first_row_id: <span class="prelude-val">None</span>,
+                referenced_data_file: <span class="prelude-val">None</span>,
+                content_offset: <span class="prelude-val">None</span>,
+                content_size_in_bytes: <span class="prelude-val">None</span>,
             },
             schema.clone(),
             partition_spec.clone(),
@@ -1967,6 +2003,10 @@
                 equality_ids: <span class="macro">vec!</span>[],
                 sort_order_id: <span class="prelude-val">None</span>,
                 partition_spec_id: <span class="number">0</span>,
+                first_row_id: <span class="prelude-val">None</span>,
+                referenced_data_file: <span class="prelude-val">None</span>,
+                content_offset: <span class="prelude-val">None</span>,
+                content_size_in_bytes: <span class="prelude-val">None</span>,
             },
             schema.clone(),
             partition_spec.clone(),

Reply via email to