You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by gi...@apache.org on 2024/12/14 10:29:32 UTC

(iceberg-rust) branch gh-pages updated: deploy: 0ba444fc06241123f78eabca4965aa72fbeb469e

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 6d442909 deploy: 0ba444fc06241123f78eabca4965aa72fbeb469e
6d442909 is described below

commit 6d442909ca4462cf080728cc9783199300dccf04
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Sat Dec 14 10:29:28 2024 +0000

    deploy: 0ba444fc06241123f78eabca4965aa72fbeb469e
---
 api/iceberg/scan/index.html                        |  2 +-
 api/iceberg/spec/struct.DataFile.html              |  4 +--
 api/iceberg/spec/struct.DataFileBuilder.html       |  2 +-
 api/search-index.js                                |  2 +-
 .../expr/visitors/expression_evaluator.rs.html     |  4 +--
 .../visitors/inclusive_metrics_evaluator.rs.html   | 12 ++++----
 api/src/iceberg/io/object_cache.rs.html            |  2 ++
 api/src/iceberg/scan.rs.html                       |  2 ++
 api/src/iceberg/spec/manifest.rs.html              | 32 ++++++++++++----------
 .../writer/file_writer/parquet_writer.rs.html      |  2 +-
 10 files changed, 35 insertions(+), 29 deletions(-)

diff --git a/api/iceberg/scan/index.html b/api/iceberg/scan/index.html
index cd9c48a8..2a82fbb5 100644
--- a/api/iceberg/scan/index.html
+++ b/api/iceberg/scan/index.html
@@ -1,2 +1,2 @@
-<!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="Table scan api."><title>iceberg::scan - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-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="Table scan api."><title>iceberg::scan - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Reg [...]
 </div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.FileScanTask.html" title="struct iceberg::scan::FileScanTask">FileScanTask</a></div><div class="desc docblock-short">A task to scan part of file.</div></li><li><div class="item-name"><a class="struct" href="struct.TableScan.html" title="struct iceberg::scan::TableScan">TableScan</a></div><div class="des [...]
\ No newline at end of file
diff --git a/api/iceberg/spec/struct.DataFile.html b/api/iceberg/spec/struct.DataFile.html
index 8e89684e..ad9b6d3b 100644
--- a/api/iceberg/spec/struct.DataFile.html
+++ b/api/iceberg/spec/struct.DataFile.html
@@ -20,7 +20,7 @@ Map from column id to number of NaN values in the column</p>
 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.rs.html#1163-1165">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</a>&lt; [...]
 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.rs.html#1167-1169">source</a><h4 class="code-header">pub fn <a href="#method.key_metadata" class="fn">key_metadata</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></section></ [...]
+</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.rs.html#1167-1169">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="https://d [...]
 </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.rs.html#1172-1174">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 offsets 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.rs.html#1178-1180">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 ids of the [...]
@@ -144,4 +144,4 @@ builds.</div></details></div></details><details class="toggle implementors-toggl
 [<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details></div></details><section id="impl-Allocation-for-T" class="impl"><a href="#impl-Allocation-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Allocation for T<div class="where">where
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section><section id="impl-ErasedDe [...]
     T: 'static,</div></h3></section><section id="impl-MaybeSend-for-T" class="impl"><a href="#impl-MaybeSend-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; MaybeSend for T<div class="where">where
-    T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-MaybeSendSync-for-T" class="impl"><a href="#impl-MaybeSendSync-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; MaybeSendSync for T</h3></section></div><script type="text/json" id="notable-traits-data">{"&[u8]":"<h3>Notable traits for <code>&amp;[<a class=\"primitive\" href=\"https://doc.rust-lang.org [...]
\ No newline at end of file
+    T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-MaybeSendSync-for-T" class="impl"><a href="#impl-MaybeSendSync-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; MaybeSendSync for T</h3></section></div><script type="text/json" id="notable-traits-data">{"Either<Self, Self>":"<h3>Notable traits for <code><a class=\"enum\" href=\"https://docs.rs/either/ [...]
\ No newline at end of file
diff --git a/api/iceberg/spec/struct.DataFileBuilder.html b/api/iceberg/spec/struct.DataFileBuilder.html
index cb13fb27..48de568c 100644
--- a/api/iceberg/spec/struct.DataFileBuilder.html
+++ b/api/iceberg/spec/struct.DataFileBuilder.html
@@ -52,7 +52,7 @@ values in the column for the file.</p>
 <ul>
 <li><a href="https://iceberg.apache.org/spec/#binary-single-value-serialization">Binary single-value serialization</a></li>
 </ul>
-</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.rs.html#988">source</a><h4 class="code-header">pub fn <a href="#method.key_metadata" class="fn">key_metadata</a>(&amp;mut self, value: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.o [...]
+</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.rs.html#988">source</a><h4 class="code-header">pub fn <a href="#method.key_metadata" class="fn">key_metadata</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="struct" href="https://doc.rust-la [...]
 <p>Implementation-specific key metadata for encryption</p>
 </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.rs.html#988">source</a><h4 class="code-header">pub fn <a href="#method.split_offsets" class="fn">split_offsets</a>(&amp;mut self, value: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lan [...]
 element field id: 133</p>
diff --git a/api/search-index.js b/api/search-index.js
index c5432594..f501eb31 100644
--- a/api/search-index.js
+++ b/api/search-index.js
@@ -1,5 +1,5 @@
 var searchIndex = new Map(JSON.parse('[\
-["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN [...]
+["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN [...]
 ["iceberg_catalog_glue",{"t":"SSSSSFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQ","n":["AWS_ACCESS_KEY_ID","AWS_PROFILE_NAME","AWS_REGION_NAME","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","GlueCatalog","GlueCatalogConfig","borrow","borrow","borrow_mut","borrow_mut","builder","create_namespace","create_table","deref","deref","deref_mut","deref_mut","drop","drop","drop_namespace","drop_table","file_io","fmt","fmt","from","from","get_namespace","init","init","into","into","into_shared","i [...]
 ["iceberg_catalog_hms",{"t":"PPFFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Buffered","Framed","HmsCatalog","HmsCatalogConfig","HmsThriftTransport","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","builder","create_namespace","create_table","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop_namespace","drop_table","file_io","fmt","fmt","fmt","from","from","from","get_namespace","init","init","init","into [...]
 ["iceberg_catalog_memory",{"t":"FNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["MemoryCatalog","borrow","borrow_mut","create_namespace","create_table","deref","deref_mut","drop","drop_namespace","drop_table","fmt","from","get_namespace","init","into","list_namespaces","list_tables","load_table","namespace_exists","new","rename_table","table_exists","try_from","try_into","type_id","update_namespace","update_table","vzip"],"q":[[0,"iceberg_catalog_memory"],[28,"iceberg_catalog_memory::catalog"],[29,"i [...]
diff --git a/api/src/iceberg/expr/visitors/expression_evaluator.rs.html b/api/src/iceberg/expr/visitors/expression_evaluator.rs.html
index a73ae554..096ef1a5 100644
--- a/api/src/iceberg/expr/visitors/expression_evaluator.rs.html
+++ b/api/src/iceberg/expr/visitors/expression_evaluator.rs.html
@@ -1132,7 +1132,7 @@
             nan_value_counts: HashMap::new(),
             lower_bounds: HashMap::new(),
             upper_bounds: HashMap::new(),
-            key_metadata: <span class="macro">vec!</span>[],
+            key_metadata: <span class="prelude-val">None</span>,
             split_offsets: <span class="macro">vec!</span>[],
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
@@ -1155,7 +1155,7 @@
             nan_value_counts: HashMap::new(),
             lower_bounds: HashMap::new(),
             upper_bounds: HashMap::new(),
-            key_metadata: <span class="macro">vec!</span>[],
+            key_metadata: <span class="prelude-val">None</span>,
             split_offsets: <span class="macro">vec!</span>[],
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <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 bc0d56d5..f5a14de3 100644
--- a/api/src/iceberg/expr/visitors/inclusive_metrics_evaluator.rs.html
+++ b/api/src/iceberg/expr/visitors/inclusive_metrics_evaluator.rs.html
@@ -4149,7 +4149,7 @@
             nan_value_counts: Default::default(),
             lower_bounds: Default::default(),
             upper_bounds: Default::default(),
-            key_metadata: <span class="macro">vec!</span>[],
+            key_metadata: <span class="prelude-val">None</span>,
             split_offsets: <span class="macro">vec!</span>[],
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
@@ -4170,7 +4170,7 @@
             nan_value_counts: Default::default(),
             lower_bounds: Default::default(),
             upper_bounds: Default::default(),
-            key_metadata: <span class="macro">vec!</span>[],
+            key_metadata: <span class="prelude-val">None</span>,
             split_offsets: <span class="macro">vec!</span>[],
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
@@ -4227,7 +4227,7 @@
             ]),
 
             column_sizes: Default::default(),
-            key_metadata: <span class="macro">vec!</span>[],
+            key_metadata: <span class="prelude-val">None</span>,
             split_offsets: <span class="macro">vec!</span>[],
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
@@ -4253,7 +4253,7 @@
             upper_bounds: HashMap::from([(<span class="number">3</span>, Datum::string(<span class="string">"dC"</span>))]),
 
             column_sizes: Default::default(),
-            key_metadata: <span class="macro">vec!</span>[],
+            key_metadata: <span class="prelude-val">None</span>,
             split_offsets: <span class="macro">vec!</span>[],
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
@@ -4280,7 +4280,7 @@
             upper_bounds: HashMap::from([(<span class="number">3</span>, Datum::string(<span class="string">"3str3"</span>))]),
 
             column_sizes: Default::default(),
-            key_metadata: <span class="macro">vec!</span>[],
+            key_metadata: <span class="prelude-val">None</span>,
             split_offsets: <span class="macro">vec!</span>[],
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
@@ -4307,7 +4307,7 @@
             upper_bounds: HashMap::from([(<span class="number">3</span>, Datum::string(<span class="string">"イロハニホヘト"</span>))]),
 
             column_sizes: Default::default(),
-            key_metadata: <span class="macro">vec!</span>[],
+            key_metadata: <span class="prelude-val">None</span>,
             split_offsets: <span class="macro">vec!</span>[],
             equality_ids: <span class="macro">vec!</span>[],
             sort_order_id: <span class="prelude-val">None</span>,
diff --git a/api/src/iceberg/io/object_cache.rs.html b/api/src/iceberg/io/object_cache.rs.html
index ad487abb..f3f9014d 100644
--- a/api/src/iceberg/io/object_cache.rs.html
+++ b/api/src/iceberg/io/object_cache.rs.html
@@ -398,6 +398,7 @@
 <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
@@ -678,6 +679,7 @@
                             .file_size_in_bytes(<span class="number">100</span>)
                             .record_count(<span class="number">1</span>)
                             .partition(Struct::from_iter([<span class="prelude-val">Some</span>(Literal::long(<span class="number">100</span>))]))
+                            .key_metadata(<span class="prelude-val">None</span>)
                             .build()
                             .unwrap(),
                     )
diff --git a/api/src/iceberg/scan.rs.html b/api/src/iceberg/scan.rs.html
index 38d5310a..78629bfd 100644
--- a/api/src/iceberg/scan.rs.html
+++ b/api/src/iceberg/scan.rs.html
@@ -1872,6 +1872,7 @@
 <a href="#1872" id="1872">1872</a>
 <a href="#1873" id="1873">1873</a>
 <a href="#1874" id="1874">1874</a>
+<a href="#1875" id="1875">1875</a>
 </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
@@ -2947,6 +2948,7 @@
                                 .file_size_in_bytes(<span class="number">100</span>)
                                 .record_count(<span class="number">1</span>)
                                 .partition(Struct::from_iter([<span class="prelude-val">Some</span>(Literal::long(<span class="number">100</span>))]))
+                                .key_metadata(<span class="prelude-val">None</span>)
                                 .build()
                                 .unwrap(),
                         )
diff --git a/api/src/iceberg/spec/manifest.rs.html b/api/src/iceberg/spec/manifest.rs.html
index 4ed67ffa..6f74252a 100644
--- a/api/src/iceberg/spec/manifest.rs.html
+++ b/api/src/iceberg/spec/manifest.rs.html
@@ -2335,6 +2335,7 @@
 <a href="#2335" id="2335">2335</a>
 <a href="#2336" id="2336">2336</a>
 <a href="#2337" id="2337">2337</a>
+<a href="#2338" id="2338">2338</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
@@ -3411,7 +3412,7 @@
     ///
     /// Implementation-specific key metadata for encryption
     </span><span class="attr">#[builder(default)]
-    </span><span class="kw">pub</span>(<span class="kw">crate</span>) key_metadata: Vec&lt;u8&gt;,
+    </span><span class="kw">pub</span>(<span class="kw">crate</span>) key_metadata: <span class="prelude-ty">Option</span>&lt;Vec&lt;u8&gt;&gt;,
     <span class="doccomment">/// field id: 132
     /// element field id: 133
     ///
@@ -3501,8 +3502,8 @@
         <span class="kw-2">&amp;</span><span class="self">self</span>.upper_bounds
     }
     <span class="doccomment">/// Get the Implementation-specific key metadata for the data file.
-    </span><span class="kw">pub fn </span>key_metadata(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="kw-2">&amp;</span>[u8] {
-        <span class="kw-2">&amp;</span><span class="self">self</span>.key_metadata
+    </span><span class="kw">pub fn </span>key_metadata(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[u8]&gt; {
+        <span class="self">self</span>.key_metadata.as_deref()
     }
     <span class="doccomment">/// Get the split offsets of the data file.
     /// For example, all row group offsets in a Parquet file.
@@ -3715,12 +3716,13 @@
                 nan_value_counts: <span class="prelude-val">Some</span>(to_i64_entry(value.nan_value_counts)<span class="question-mark">?</span>),
                 lower_bounds: <span class="prelude-val">Some</span>(to_bytes_entry(value.lower_bounds)<span class="question-mark">?</span>),
                 upper_bounds: <span class="prelude-val">Some</span>(to_bytes_entry(value.upper_bounds)<span class="question-mark">?</span>),
-                key_metadata: <span class="prelude-val">Some</span>(serde_bytes::ByteBuf::from(value.key_metadata)),
+                key_metadata: value.key_metadata.map(serde_bytes::ByteBuf::from),
                 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,
             })
         }
+
         <span class="kw">pub fn </span>try_into(
             <span class="self">self</span>,
             partition_type: <span class="kw-2">&amp;</span>StructType,
@@ -3778,7 +3780,7 @@
                     .map(|v| parse_bytes_entry(v, schema))
                     .transpose()<span class="question-mark">?
                     </span>.unwrap_or_default(),
-                key_metadata: <span class="self">self</span>.key_metadata.map(|v| v.to_vec()).unwrap_or_default(),
+                key_metadata: <span class="self">self</span>.key_metadata.map(|v| v.to_vec()),
                 split_offsets: <span class="self">self</span>.split_offsets.unwrap_or_default(),
                 equality_ids: <span class="self">self</span>.equality_ids.unwrap_or_default(),
                 sort_order_id: <span class="self">self</span>.sort_order_id,
@@ -3994,7 +3996,7 @@
                         nan_value_counts: HashMap::new(),
                         lower_bounds: HashMap::new(),
                         upper_bounds: HashMap::new(),
-                        key_metadata: Vec::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>,
@@ -4150,7 +4152,7 @@
                     nan_value_counts: HashMap::new(),
                     lower_bounds: HashMap::new(),
                     upper_bounds: HashMap::new(),
-                    key_metadata: <span class="macro">vec!</span>[],
+                    key_metadata: <span class="prelude-val">None</span>,
                     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>,
@@ -4217,7 +4219,7 @@
                     nan_value_counts: HashMap::new(),
                     lower_bounds: HashMap::from([(<span class="number">1</span>,Datum::int(<span class="number">1</span>)),(<span class="number">2</span>,Datum::string(<span class="string">"a"</span>)),(<span class="number">3</span>,Datum::string(<span class="string">"AC/DC"</span>))]),
                     upper_bounds: HashMap::from([(<span class="number">1</span>,Datum::int(<span class="number">1</span>)),(<span class="number">2</span>,Datum::string(<span class="string">"a"</span>)),(<span class="number">3</span>,Datum::string(<span class="string">"AC/DC"</span>))]),
-                    key_metadata: <span class="macro">vec!</span>[],
+                    key_metadata: <span class="prelude-val">None</span>,
                     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>),
@@ -4297,7 +4299,7 @@
                         (<span class="number">2</span>, Datum::string(<span class="string">"a"</span>)),
                         (<span class="number">3</span>, Datum::string(<span class="string">"x"</span>))
                         ]),
-                        key_metadata: <span class="macro">vec!</span>[],
+                        key_metadata: <span class="prelude-val">None</span>,
                         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>),
@@ -4372,7 +4374,7 @@
                         (<span class="number">2</span>, Datum::int(<span class="number">2</span>)),
                         (<span class="number">3</span>, Datum::string(<span class="string">"x"</span>))
                     ]),
-                    key_metadata: <span class="macro">vec!</span>[],
+                    key_metadata: <span class="prelude-val">None</span>,
                     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>,
@@ -4442,7 +4444,7 @@
                         (<span class="number">1</span>, Datum::long(<span class="number">1</span>)),
                         (<span class="number">2</span>, Datum::int(<span class="number">2</span>)),
                     ]),
-                    key_metadata: <span class="macro">vec!</span>[],
+                    key_metadata: <span class="prelude-val">None</span>,
                     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>,
@@ -4520,7 +4522,7 @@
                         nan_value_counts: HashMap::new(),
                         lower_bounds: HashMap::new(),
                         upper_bounds: HashMap::new(),
-                        key_metadata: Vec::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>,
@@ -4551,7 +4553,7 @@
                             nan_value_counts: HashMap::new(),
                             lower_bounds: HashMap::new(),
                             upper_bounds: HashMap::new(),
-                            key_metadata: Vec::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>,
@@ -4583,7 +4585,7 @@
                             nan_value_counts: HashMap::new(),
                             lower_bounds: HashMap::new(),
                             upper_bounds: HashMap::new(),
-                            key_metadata: Vec::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>,
@@ -4615,7 +4617,7 @@
                             nan_value_counts: HashMap::new(),
                             lower_bounds: HashMap::new(),
                             upper_bounds: HashMap::new(),
-                            key_metadata: Vec::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>,
diff --git a/api/src/iceberg/writer/file_writer/parquet_writer.rs.html b/api/src/iceberg/writer/file_writer/parquet_writer.rs.html
index 768fdbed..0a51a0a1 100644
--- a/api/src/iceberg/writer/file_writer/parquet_writer.rs.html
+++ b/api/src/iceberg/writer/file_writer/parquet_writer.rs.html
@@ -1553,7 +1553,7 @@
             <span class="comment">// # TODO(#417)
             // - nan_value_counts
             // - distinct_counts
-            </span>.key_metadata(metadata.footer_signing_key_metadata.unwrap_or_default())
+            </span>.key_metadata(metadata.footer_signing_key_metadata)
             .split_offsets(
                 metadata
                     .row_groups