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 63f4ef78 deploy: 82da82605d41b5f6d0bdc4bfaf74a7e60920d88e
63f4ef78 is described below
commit 63f4ef785ef596eff892425769fd4bbf79f22cfb
Author: Fokko <[email protected]>
AuthorDate: Fri Mar 7 12:57:03 2025 +0000
deploy: 82da82605d41b5f6d0bdc4bfaf74a7e60920d88e
---
api/iceberg/spec/enum.FormatVersion.html | 16 +++---
api/iceberg/spec/struct.MetadataLog.html | 10 ++--
api/iceberg/spec/struct.SnapshotLog.html | 14 ++---
api/iceberg/spec/struct.TableMetadata.html | 4 +-
api/src/iceberg/spec/table_metadata.rs.html | 34 ++++++++++++
.../iceberg/spec/table_metadata_builder.rs.html | 62 ++++++++++++++++++++++
6 files changed, 118 insertions(+), 22 deletions(-)
diff --git a/api/iceberg/spec/enum.FormatVersion.html
b/api/iceberg/spec/enum.FormatVersion.html
index 65da2bbf..71358b9d 100644
--- a/api/iceberg/spec/enum.FormatVersion.html
+++ b/api/iceberg/spec/enum.FormatVersion.html
@@ -1,21 +1,21 @@
-<!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="Iceberg
format version"><title>FormatVersion in iceberg::spec -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388
[...]
+<!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="Iceberg
format version"><title>FormatVersion in iceberg::spec -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388
[...]
V1 = 1,
V2 = 2,
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Iceberg format version</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a
href="#variants" class="anchor">§</a></h2><div class="variants"><section
id="variant.V1" class="variant"><a href="#variant.V1" class="anchor">§</a><h3
class="code-header">V1 = 1</h3></section><div class="docblock"><p>Iceberg spec
version 1</p>
</div><section id="variant.V2" class="variant"><a href="#variant.V2"
class="anchor">§</a><h3 class="code-header">V2 = 2</h3></section><div
class="docblock"><p>Iceberg spec version 2</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-FormatVersion" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1203">source</a><a
href="#impl-Clone-for-FormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class="trai [...]
- D: <a class="trait"
href="https://docs.rs/serde/1.0.217/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</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-Display [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-FormatVersion" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1220">source</a><a
href="#impl-Clone-for-FormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class="trai [...]
+ D: <a class="trait"
href="https://docs.rs/serde/1.0.217/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</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-Display [...]
H: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"
title="trait core::hash::Hasher">Hasher</a>,
- Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Feeds a slice of this type into the given <a
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"
title="trait core::hash::Hasher"><code>Hasher</code></a>. <a
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read
more</a></div></details></div></d [...]
+ Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Feeds a slice of this type into the given <a
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"
title="trait core::hash::Hasher"><code>Hasher</code></a>. <a
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read
more</a></div></details></div></d [...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Compares and returns the maximum of two values. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read
more</a></div></details><details class="toggle method-toggle"
open><summary><section id="method.min" class="method trait-impl"><span
class="rightside"><span class="si [...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Compares and returns the minimum of two values. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read
more</a></div></details><details class="toggle method-toggle"
open><summary><section id="method.clamp" class="method trait-impl"><span
class="rightside"><span class=" [...]
- Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a> + <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html"
title="trait
core::cmp::PartialOrd">PartialOrd</a>,</div></h4></section></summary><div
class='docblock'>Restrict a value to a certain interval. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read
more</a></div></details></div> [...]
+ Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a> + <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html"
title="trait
core::cmp::PartialOrd">PartialOrd</a>,</div></h4></section></summary><div
class='docblock'>Restrict a value to a certain interval. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read
more</a></div></details></div> [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
-sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-PartialOrd-for-FormatVersion" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1213-1217">source</a><a
href="#impl-PartialOrd-for-FormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd. [...]
+sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-PartialOrd-for-FormatVersion" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1230-1234">source</a><a
href="#impl-PartialOrd-for-FormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd. [...]
operator. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read
more</a></div></details><details class="toggle method-toggle"
open><summary><section id="method.gt" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#1215">source</a></span><a
href="#method.gt" class="anchor">§</a><h4 class="code-header">fn [...]
-operator. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-FormatVersion" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1203">source</a><a
href="#impl-Serialize-for-FormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0 [...]
- 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-FormatVersion" class="impl"><a class="src rightside"
href="../../src/iceberg/s [...]
+operator. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-FormatVersion" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1220">source</a><a
href="#impl-Serialize-for-FormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0 [...]
+ 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-FormatVersion" class="impl"><a class="src rightside"
href="../../src/iceberg/s [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow_mut" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a
href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a
href= [...]
diff --git a/api/iceberg/spec/struct.MetadataLog.html
b/api/iceberg/spec/struct.MetadataLog.html
index 54116ecf..0071630e 100644
--- a/api/iceberg/spec/struct.MetadataLog.html
+++ b/api/iceberg/spec/struct.MetadataLog.html
@@ -1,14 +1,14 @@
-<!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="Encodes
changes to the previous metadata files for the table"><title>MetadataLog in
iceberg::spec -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo
[...]
+<!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="Encodes
changes to the previous metadata files for the table"><title>MetadataLog in
iceberg::spec -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo
[...]
pub metadata_file: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>,
pub timestamp_ms: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Encodes changes to the previous metadata files for the
table</p>
</div></details><h2 id="fields" class="fields section-header">Fields<a
href="#fields" class="anchor">§</a></h2><span id="structfield.metadata_file"
class="structfield section-header"><a href="#structfield.metadata_file"
class="anchor field">§</a><code>metadata_file: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a></code></span><div
class="docblock"><p>The file for the log.</p>
</div><span id="structfield.timestamp_ms" class="structfield
section-header"><a href="#structfield.timestamp_ms" class="anchor
field">§</a><code>timestamp_ms: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span><div
class="docblock"><p>Time new metadata was created</p>
-</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-MetadataLog" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1234">source</a><a
href="#impl-Clone-for-MetadataLog" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="h [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.217/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</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 [...]
+</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-MetadataLog" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1251">source</a><a
href="#impl-Clone-for-MetadataLog" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="h [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.217/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</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 [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
-sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-MetadataLog"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1234">source</a><a
href="#impl-Serialize-for-MetadataLog" 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="tr
[...]
- __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-Eq-for-MetadataLog"
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
+sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-MetadataLog"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1251">source</a><a
href="#impl-Serialize-for-MetadataLog" 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="tr
[...]
+ __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-Eq-for-MetadataLog"
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow_mut" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a
href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a
href= [...]
diff --git a/api/iceberg/spec/struct.SnapshotLog.html
b/api/iceberg/spec/struct.SnapshotLog.html
index fa4b18d9..19117d87 100644
--- a/api/iceberg/spec/struct.SnapshotLog.html
+++ b/api/iceberg/spec/struct.SnapshotLog.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="A log of
when each snapshot was made."><title>SnapshotLog in iceberg::spec -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9
[...]
+<!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="A log of
when each snapshot was made."><title>SnapshotLog in iceberg::spec -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9
[...]
pub snapshot_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
pub timestamp_ms: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>A log of when each snapshot was made.</p>
</div></details><h2 id="fields" class="fields section-header">Fields<a
href="#fields" class="anchor">§</a></h2><span id="structfield.snapshot_id"
class="structfield section-header"><a href="#structfield.snapshot_id"
class="anchor field">§</a><code>snapshot_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span><div
class="docblock"><p>Id of the snapshot.</p>
</div><span id="structfield.timestamp_ms" class="structfield
section-header"><a href="#structfield.timestamp_ms" class="anchor
field">§</a><code>timestamp_ms: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span><div
class="docblock"><p>Last updated timestamp</p>
-</div><h2 id="implementations" class="section-header">Implementations<a
href="#implementations" class="anchor">§</a></h2><div
id="implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-SnapshotLog" class="impl"><a class="src
rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1254-1265">source</a><a
href="#impl-SnapshotLog" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.SnapshotLog.html" title="struct [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.timestamp_ms" class="method"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1262-1264">source</a><h4
class="code-header">pub fn <a href="#method.timestamp_ms"
class="fn">timestamp_ms</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></h4></section></summary><div
class="docblock"><p>Returns the timestamp in mil [...]
-</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-SnapshotLog" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1244">source</a><a
href="#impl-Clone-for-SnapshotLog" class="anchor">§</a><h3 class="code-heade
[...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.217/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</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 [...]
+</div><h2 id="implementations" class="section-header">Implementations<a
href="#implementations" class="anchor">§</a></h2><div
id="implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-SnapshotLog" class="impl"><a class="src
rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1271-1282">source</a><a
href="#impl-SnapshotLog" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.SnapshotLog.html" title="struct [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.timestamp_ms" class="method"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1279-1281">source</a><h4
class="code-header">pub fn <a href="#method.timestamp_ms"
class="fn">timestamp_ms</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></h4></section></summary><div
class="docblock"><p>Returns the timestamp in mil [...]
+</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-SnapshotLog" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1261">source</a><a
href="#impl-Clone-for-SnapshotLog" class="anchor">§</a><h3 class="code-heade
[...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.217/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</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 [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
-sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-SnapshotLog"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1244">source</a><a
href="#impl-Serialize-for-SnapshotLog" 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="tr
[...]
- __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-Eq-for-SnapshotLog"
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
+sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-SnapshotLog"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#1261">source</a><a
href="#impl-Serialize-for-SnapshotLog" 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="tr
[...]
+ __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-Eq-for-SnapshotLog"
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow_mut" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a
href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a
href= [...]
diff --git a/api/iceberg/spec/struct.TableMetadata.html
b/api/iceberg/spec/struct.TableMetadata.html
index d1bdc756..341699a9 100644
--- a/api/iceberg/spec/struct.TableMetadata.html
+++ b/api/iceberg/spec/struct.TableMetadata.html
@@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Fields for
the version 2 of the table metadata."><title>TableMetadata in iceberg::spec -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan
[...]
<p>We assume that this data structure is always valid, so we will panic when
invalid error happens.
We check the validity of this data structure when constructing.</p>
-</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-TableMetadata"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#176-629">source</a><a
href="#impl-TableMetadata" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.TableMetadata.html" [...]
+</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-TableMetadata"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#176-646">source</a><a
href="#impl-TableMetadata" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.TableMetadata.html" [...]
self,
current_file_location: <a class="enum"
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"
title="enum core::option::Option">Option</a><<a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>>,
) -> <a class="struct" href="struct.TableMetadataBuilder.html"
title="struct
iceberg::spec::TableMetadataBuilder">TableMetadataBuilder</a></h4></section></summary><div
class="docblock"><p>Convert this Table Metadata into a builder for
modification.</p>
@@ -58,7 +58,7 @@ Returns an option if the <code>ref_name</code> is not
found</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-TableMetadata" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#100">source</a><a
href="#impl-Clone-for-TableMetadata" class="anchor">§</a><h3 class="code-he
[...]
__D: <a class="trait"
href="https://docs.rs/serde/1.0.217/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</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-From% [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
-sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-TableMetadata" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#745-754">source</a><a
href="#impl-Serialize-for-TableMetadata" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html" ti [...]
+sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-TableMetadata" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/table_metadata.rs.html#762-771">source</a><a
href="#impl-Serialize-for-TableMetadata" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html" ti [...]
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-Eq-for-TableMetadata" class="impl"><a class="src rightside"
href="../../src/iceberg/spe [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
diff --git a/api/src/iceberg/spec/table_metadata.rs.html
b/api/src/iceberg/spec/table_metadata.rs.html
index f9c8c3a1..f4e074d0 100644
--- a/api/src/iceberg/spec/table_metadata.rs.html
+++ b/api/src/iceberg/spec/table_metadata.rs.html
@@ -2775,6 +2775,23 @@
<a href="#2775" id="2775">2775</a>
<a href="#2776" id="2776">2776</a>
<a href="#2777" id="2777">2777</a>
+<a href="#2778" id="2778">2778</a>
+<a href="#2779" id="2779">2779</a>
+<a href="#2780" id="2780">2780</a>
+<a href="#2781" id="2781">2781</a>
+<a href="#2782" id="2782">2782</a>
+<a href="#2783" id="2783">2783</a>
+<a href="#2784" id="2784">2784</a>
+<a href="#2785" id="2785">2785</a>
+<a href="#2786" id="2786">2786</a>
+<a href="#2787" id="2787">2787</a>
+<a href="#2788" id="2788">2788</a>
+<a href="#2789" id="2789">2789</a>
+<a href="#2790" id="2790">2790</a>
+<a href="#2791" id="2791">2791</a>
+<a href="#2792" id="2792">2792</a>
+<a href="#2793" id="2793">2793</a>
+<a href="#2794" id="2794">2794</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
@@ -3202,6 +3219,22 @@
.insert(snapshot.snapshot_id(), Arc::new(snapshot));
}
+ <span class="kw">fn </span>construct_refs(<span class="kw-2">&mut
</span><span class="self">self</span>) {
+ <span class="kw">if let </span><span
class="prelude-val">Some</span>(current_snapshot_id) = <span
class="self">self</span>.current_snapshot_id {
+ <span class="kw">if </span>!<span
class="self">self</span>.refs.contains_key(MAIN_BRANCH) {
+ <span class="self">self</span>.refs
+ .insert(MAIN_BRANCH.to_string(), SnapshotReference {
+ snapshot_id: current_snapshot_id,
+ retention: SnapshotRetention::Branch {
+ min_snapshots_to_keep: <span
class="prelude-val">None</span>,
+ max_snapshot_age_ms: <span
class="prelude-val">None</span>,
+ max_ref_age_ms: <span
class="prelude-val">None</span>,
+ },
+ });
+ }
+ }
+ }
+
<span class="doccomment">/// Normalize this partition spec.
///
/// This is an internal method
@@ -3212,6 +3245,7 @@
</span><span class="kw">pub</span>(<span class="kw">super</span>) <span
class="kw">fn </span>try_normalize(<span class="kw-2">&mut </span><span
class="self">self</span>) -> <span class="prelude-ty">Result</span><<span
class="kw-2">&mut </span><span class="self">Self</span>> {
<span class="self">self</span>.validate_current_schema()<span
class="question-mark">?</span>;
<span class="self">self</span>.normalize_current_snapshot()<span
class="question-mark">?</span>;
+ <span class="self">self</span>.construct_refs();
<span class="self">self</span>.validate_refs()<span
class="question-mark">?</span>;
<span
class="self">self</span>.validate_chronological_snapshot_logs()<span
class="question-mark">?</span>;
<span
class="self">self</span>.validate_chronological_metadata_logs()<span
class="question-mark">?</span>;
diff --git a/api/src/iceberg/spec/table_metadata_builder.rs.html
b/api/src/iceberg/spec/table_metadata_builder.rs.html
index 63e6517d..7902170f 100644
--- a/api/src/iceberg/spec/table_metadata_builder.rs.html
+++ b/api/src/iceberg/spec/table_metadata_builder.rs.html
@@ -2382,6 +2382,37 @@
<a href="#2382" id="2382">2382</a>
<a href="#2383" id="2383">2383</a>
<a href="#2384" id="2384">2384</a>
+<a href="#2385" id="2385">2385</a>
+<a href="#2386" id="2386">2386</a>
+<a href="#2387" id="2387">2387</a>
+<a href="#2388" id="2388">2388</a>
+<a href="#2389" id="2389">2389</a>
+<a href="#2390" id="2390">2390</a>
+<a href="#2391" id="2391">2391</a>
+<a href="#2392" id="2392">2392</a>
+<a href="#2393" id="2393">2393</a>
+<a href="#2394" id="2394">2394</a>
+<a href="#2395" id="2395">2395</a>
+<a href="#2396" id="2396">2396</a>
+<a href="#2397" id="2397">2397</a>
+<a href="#2398" id="2398">2398</a>
+<a href="#2399" id="2399">2399</a>
+<a href="#2400" id="2400">2400</a>
+<a href="#2401" id="2401">2401</a>
+<a href="#2402" id="2402">2402</a>
+<a href="#2403" id="2403">2403</a>
+<a href="#2404" id="2404">2404</a>
+<a href="#2405" id="2405">2405</a>
+<a href="#2406" id="2406">2406</a>
+<a href="#2407" id="2407">2407</a>
+<a href="#2408" id="2408">2408</a>
+<a href="#2409" id="2409">2409</a>
+<a href="#2410" id="2410">2410</a>
+<a href="#2411" id="2411">2411</a>
+<a href="#2412" id="2412">2412</a>
+<a href="#2413" id="2413">2413</a>
+<a href="#2414" id="2414">2414</a>
+<a href="#2415" id="2415">2415</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
@@ -3604,14 +3635,19 @@
<span class="attr">#[cfg(test)]
</span><span class="kw">mod </span>tests {
+ <span class="kw">use </span>std::fs::File;
+ <span class="kw">use </span>std::io::BufReader;
<span class="kw">use </span>std::thread::sleep;
<span class="kw">use super</span>::<span class="kw-2">*</span>;
+ <span class="kw">use </span><span
class="kw">crate</span>::io::FileIOBuilder;
<span class="kw">use </span><span class="kw">crate</span>::spec::{
BlobMetadata, NestedField, NullOrder, Operation, PartitionSpec,
PrimitiveType, Schema,
SnapshotRetention, SortDirection, SortField, StructType, Summary,
Transform, Type,
UnboundPartitionField,
};
+ <span class="kw">use </span><span class="kw">crate</span>::table::Table;
+ <span class="kw">use </span><span class="kw">crate</span>::TableIdent;
<span class="kw">const </span>TEST_LOCATION: <span
class="kw-2">&</span>str = <span
class="string">"s3://bucket/test/location"</span>;
<span class="kw">const </span>LAST_ASSIGNED_COLUMN_ID: i32 = <span
class="number">3</span>;
@@ -4765,5 +4801,31 @@
last_updated_ms
);
}
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_construct_default_main_branch() {
+ <span class="comment">// Load the table without ref
+ </span><span class="kw">let </span>file = File::open(<span
class="macro">format!</span>(
+ <span class="string">"{}/testdata/table_metadata/{}"</span>,
+ <span class="macro">env!</span>(<span
class="string">"CARGO_MANIFEST_DIR"</span>),
+ <span class="string">"TableMetadataV2Valid.json"
+ </span>))
+ .unwrap();
+ <span class="kw">let </span>reader = BufReader::new(file);
+ <span class="kw">let </span>resp = serde_json::from_reader::<<span
class="kw">_</span>, TableMetadata>(reader).unwrap();
+
+ <span class="kw">let </span>table = Table::builder()
+ .metadata(resp)
+ .metadata_location(<span
class="string">"s3://bucket/test/location/metadata/v1.json"</span>.to_string())
+ .identifier(TableIdent::from_strs([<span
class="string">"ns1"</span>, <span class="string">"test1"</span>]).unwrap())
+ .file_io(FileIOBuilder::new(<span
class="string">"memory"</span>).build().unwrap())
+ .build()
+ .unwrap();
+
+ <span class="macro">assert_eq!</span>(
+ table.metadata().refs.get(MAIN_BRANCH).unwrap().snapshot_id,
+ table.metadata().current_snapshot_id().unwrap()
+ );
+ }
}
</code></pre></div></section></main></body></html>
\ No newline at end of file