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 7875558e deploy: 52296eb5e1be88a241903488c133214cb5a9a363
7875558e is described below
commit 7875558eafaeff85578dbaf136bbd836e4891b1d
Author: liurenjie1024 <[email protected]>
AuthorDate: Mon Nov 11 12:05:51 2024 +0000
deploy: 52296eb5e1be88a241903488c133214cb5a9a363
---
api/iceberg/enum.TableRequirement.html | 23 +-
api/iceberg/expr/enum.BoundPredicate.html | 4 +-
api/iceberg/expr/struct.Reference.html | 4 +-
api/iceberg/spec/enum.DataFileBuilderError.html | 2 +-
api/iceberg/spec/enum.DataFileFormat.html | 4 +-
api/iceberg/spec/enum.NullOrder.html | 4 +-
api/iceberg/spec/enum.SortDirection.html | 4 +-
api/iceberg/spec/enum.SortOrderBuilderError.html | 2 +-
api/iceberg/spec/enum.Type.html | 4 +-
api/iceberg/spec/enum.ViewFormatVersion.html | 4 +-
api/iceberg/spec/struct.Datum.html | 2 +-
api/iceberg/spec/struct.NestedField.html | 4 +-
api/iceberg/spec/struct.Schema.html | 6 +-
api/iceberg/spec/struct.StructType.html | 4 +-
api/iceberg/spec/struct.UnboundPartitionSpec.html | 2 +-
api/iceberg/struct.Error.html | 2 +-
api/iceberg/struct.ViewCreation.html | 6 +-
api/search-index.js | 2 +-
api/search.desc/iceberg/iceberg-desc-0-.js | 2 +-
api/src/iceberg/catalog/mod.rs.html | 604 +++++++++++++++++++++-
api/src/iceberg/transaction.rs.html | 2 +-
21 files changed, 642 insertions(+), 49 deletions(-)
diff --git a/api/iceberg/enum.TableRequirement.html
b/api/iceberg/enum.TableRequirement.html
index 53fe5a9c..ced369b7 100644
--- a/api/iceberg/enum.TableRequirement.html
+++ b/api/iceberg/enum.TableRequirement.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="TableRequirement represents a requirement for a table in the
catalog."><title>TableRequirement in iceberg -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf08
[...]
+<!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="TableRequirement represents a requirement for a table in the
catalog."><title>TableRequirement in iceberg -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf08
[...]
NotExist,
UuidMatch {
uuid: <a class="struct"
href="https://docs.rs/uuid/1.11.0/uuid/struct.Uuid.html" title="struct
uuid::Uuid">Uuid</a>,
@@ -8,16 +8,16 @@
snapshot_id: <a class="enum"
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"
title="enum core::option::Option">Option</a><<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>>,
},
LastAssignedFieldIdMatch {
- last_assigned_field_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
+ last_assigned_field_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>,
},
CurrentSchemaIdMatch {
- current_schema_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
+ current_schema_id: <a class="type" href="spec/type.SchemaId.html"
title="type iceberg::spec::SchemaId">SchemaId</a>,
},
LastAssignedPartitionIdMatch {
- last_assigned_partition_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
+ last_assigned_partition_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>,
},
DefaultSpecIdMatch {
- default_spec_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
+ default_spec_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>,
},
DefaultSortOrderIdMatch {
default_sort_order_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
@@ -32,17 +32,20 @@ reference the requirement’s <code>snapshot-id</code>.</p>
</div></div><div class="sub-variant-field"><span
id="variant.RefSnapshotIdMatch.field.snapshot_id" class="section-header"><a
href="#variant.RefSnapshotIdMatch.field.snapshot_id" class="anchor
field">§</a><code>snapshot_id: <a class="enum"
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"
title="enum core::option::Option">Option</a><<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>></code></span><div
class="docblock"><p> [...]
If the id is <code>None</code>, the ref must not already exist.</p>
</div></div></div><section id="variant.LastAssignedFieldIdMatch"
class="variant"><a href="#variant.LastAssignedFieldIdMatch"
class="anchor">§</a><h3
class="code-header">LastAssignedFieldIdMatch</h3></section><div
class="docblock"><p>The table’s last assigned column id must match the
requirement.</p>
-</div><div class="sub-variant"
id="variant.LastAssignedFieldIdMatch.fields"><h4>Fields</h4><div
class="sub-variant-field"><span
id="variant.LastAssignedFieldIdMatch.field.last_assigned_field_id"
class="section-header"><a
href="#variant.LastAssignedFieldIdMatch.field.last_assigned_field_id"
class="anchor field">§</a><code>last_assigned_field_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span><div
class="docblock"><p>The last assig [...]
+</div><div class="sub-variant"
id="variant.LastAssignedFieldIdMatch.fields"><h4>Fields</h4><div
class="sub-variant-field"><span
id="variant.LastAssignedFieldIdMatch.field.last_assigned_field_id"
class="section-header"><a
href="#variant.LastAssignedFieldIdMatch.field.last_assigned_field_id"
class="anchor field">§</a><code>last_assigned_field_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><div
class="docblock"><p>The last assig [...]
</div></div></div><section id="variant.CurrentSchemaIdMatch"
class="variant"><a href="#variant.CurrentSchemaIdMatch" class="anchor">§</a><h3
class="code-header">CurrentSchemaIdMatch</h3></section><div
class="docblock"><p>The table’s current schema id must match the
requirement.</p>
-</div><div class="sub-variant"
id="variant.CurrentSchemaIdMatch.fields"><h4>Fields</h4><div
class="sub-variant-field"><span
id="variant.CurrentSchemaIdMatch.field.current_schema_id"
class="section-header"><a
href="#variant.CurrentSchemaIdMatch.field.current_schema_id" class="anchor
field">§</a><code>current_schema_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span><div
class="docblock"><p>Current schema id of the table to assert.</p>
+</div><div class="sub-variant"
id="variant.CurrentSchemaIdMatch.fields"><h4>Fields</h4><div
class="sub-variant-field"><span
id="variant.CurrentSchemaIdMatch.field.current_schema_id"
class="section-header"><a
href="#variant.CurrentSchemaIdMatch.field.current_schema_id" class="anchor
field">§</a><code>current_schema_id: <a class="type"
href="spec/type.SchemaId.html" title="type
iceberg::spec::SchemaId">SchemaId</a></code></span><div
class="docblock"><p>Current schema id of the table to ass [...]
</div></div></div><section id="variant.LastAssignedPartitionIdMatch"
class="variant"><a href="#variant.LastAssignedPartitionIdMatch"
class="anchor">§</a><h3
class="code-header">LastAssignedPartitionIdMatch</h3></section><div
class="docblock"><p>The table’s last assigned partition id must match the
requirement.</p>
-</div><div class="sub-variant"
id="variant.LastAssignedPartitionIdMatch.fields"><h4>Fields</h4><div
class="sub-variant-field"><span
id="variant.LastAssignedPartitionIdMatch.field.last_assigned_partition_id"
class="section-header"><a
href="#variant.LastAssignedPartitionIdMatch.field.last_assigned_partition_id"
class="anchor field">§</a><code>last_assigned_partition_id: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span><div
class="doc [...]
+</div><div class="sub-variant"
id="variant.LastAssignedPartitionIdMatch.fields"><h4>Fields</h4><div
class="sub-variant-field"><span
id="variant.LastAssignedPartitionIdMatch.field.last_assigned_partition_id"
class="section-header"><a
href="#variant.LastAssignedPartitionIdMatch.field.last_assigned_partition_id"
class="anchor field">§</a><code>last_assigned_partition_id: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><div
class="doc [...]
</div></div></div><section id="variant.DefaultSpecIdMatch" class="variant"><a
href="#variant.DefaultSpecIdMatch" class="anchor">§</a><h3
class="code-header">DefaultSpecIdMatch</h3></section><div
class="docblock"><p>The table’s default spec id must match the requirement.</p>
-</div><div class="sub-variant"
id="variant.DefaultSpecIdMatch.fields"><h4>Fields</h4><div
class="sub-variant-field"><span
id="variant.DefaultSpecIdMatch.field.default_spec_id" class="section-header"><a
href="#variant.DefaultSpecIdMatch.field.default_spec_id" class="anchor
field">§</a><code>default_spec_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span><div
class="docblock"><p>Default spec id of the table to assert.</p>
+</div><div class="sub-variant"
id="variant.DefaultSpecIdMatch.fields"><h4>Fields</h4><div
class="sub-variant-field"><span
id="variant.DefaultSpecIdMatch.field.default_spec_id" class="section-header"><a
href="#variant.DefaultSpecIdMatch.field.default_spec_id" class="anchor
field">§</a><code>default_spec_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><div
class="docblock"><p>Default spec id of the table to assert.</p>
</div></div></div><section id="variant.DefaultSortOrderIdMatch"
class="variant"><a href="#variant.DefaultSortOrderIdMatch"
class="anchor">§</a><h3
class="code-header">DefaultSortOrderIdMatch</h3></section><div
class="docblock"><p>The table’s default sort order id must match the
requirement.</p>
</div><div class="sub-variant"
id="variant.DefaultSortOrderIdMatch.fields"><h4>Fields</h4><div
class="sub-variant-field"><span
id="variant.DefaultSortOrderIdMatch.field.default_sort_order_id"
class="section-header"><a
href="#variant.DefaultSortOrderIdMatch.field.default_sort_order_id"
class="anchor field">§</a><code>default_sort_order_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span><div
class="docblock"><p>Default sort order i [...]
-</div></div></div></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-TableRequirement" class="impl"><a class="src rightside"
href="../src/iceberg/catalog/mod.rs.html#287">source</a><a
href="#impl-Debug-for-TableRequirement" class="anchor">§</a><h3
class="code-header">impl <a class [...]
+</div></div></div></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-TableRequirement"
class="impl"><a class="src rightside"
href="../src/iceberg/catalog/mod.rs.html#456-588">source</a><a
href="#impl-TableRequirement" class="anchor">§</a><h3 class="code-header">impl
<a class="enum" href="enum.TableRequirement.html [...]
+If the requirement is not met, an appropriate error is returned.</p>
+<p>Provide metadata as <code>None</code> if the table does not exist.</p>
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-TableRequirement" class="impl"><a class="src rightside"
href="../src/iceberg/catalog/mod.rs.html#287">source</a><a
href="#impl-Debug-for-TableRequirement" class="anchor">§</a><h3
class="code-header" [...]
__D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/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-TableRequirement" class="impl"><a class="src rightside"
href="../src/iceberg/catalog/mod.rs.html#287">source</a><a
href="#impl-Serialize-for-TableRequirement" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.html" title="trai
[...]
diff --git a/api/iceberg/expr/enum.BoundPredicate.html
b/api/iceberg/expr/enum.BoundPredicate.html
index a600257b..041c4705 100644
--- a/api/iceberg/expr/enum.BoundPredicate.html
+++ b/api/iceberg/expr/enum.BoundPredicate.html
@@ -16,8 +16,8 @@
</div><section id="variant.Unary" class="variant"><a href="#variant.Unary"
class="anchor">§</a><h3 class="code-header">Unary(<a class="struct"
href="struct.UnaryExpression.html" title="struct
iceberg::expr::UnaryExpression">UnaryExpression</a><<a class="struct"
href="struct.BoundReference.html" title="struct
iceberg::expr::BoundReference">BoundReference</a>>)</h3></section><div
class="docblock"><p>Unary expression, for example, <code>a IS NULL</code>.</p>
</div><section id="variant.Binary" class="variant"><a href="#variant.Binary"
class="anchor">§</a><h3 class="code-header">Binary(<a class="struct"
href="struct.BinaryExpression.html" title="struct
iceberg::expr::BinaryExpression">BinaryExpression</a><<a class="struct"
href="struct.BoundReference.html" title="struct
iceberg::expr::BoundReference">BoundReference</a>>)</h3></section><div
class="docblock"><p>Binary expression, for example, <code>a > 10</code>.</p>
</div><section id="variant.Set" class="variant"><a href="#variant.Set"
class="anchor">§</a><h3 class="code-header">Set(<a class="struct"
href="struct.SetExpression.html" title="struct
iceberg::expr::SetExpression">SetExpression</a><<a class="struct"
href="struct.BoundReference.html" title="struct
iceberg::expr::BoundReference">BoundReference</a>>)</h3></section><div
class="docblock"><p>Set predicates, for example, <code>a IN (1, 2,
3)</code>.</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-BoundPredicate" class="impl"><a
class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#676">source</a><a
href="#impl-Clone-for-BoundPredicate" class="anchor">§</a><h3
class="code-header">impl <a class="trait" h [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-BoundPredicate" class="impl"><a
class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#676">source</a><a
href="#impl-Clone-for-BoundPredicate" class="anchor">§</a><h3
class="code-header">impl <a class="trait" h [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-BoundPredicate" class="impl"><a class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#676">source</a><a
href="#impl-Serialize-for-BoundPredicate" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.html" title="tr
[...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section
id="impl-StructuralPartialEq-for-BoundPredicate" class="impl"><a class="src
rightside" href=". [...]
diff --git a/api/iceberg/expr/struct.Reference.html
b/api/iceberg/expr/struct.Reference.html
index 76d097fd..ee1fe729 100644
--- a/api/iceberg/expr/struct.Reference.html
+++ b/api/iceberg/expr/struct.Reference.html
@@ -105,8 +105,8 @@ For example, <code>a</code> in <code>a > 10</code>.</p>
<span class="kw">let </span>as_string = <span
class="macro">format!</span>(<span class="string">"{expr}"</span>);
<span class="macro">assert!</span>(<span class="kw-2">&</span>as_string ==
<span class="string">"a NOT IN (5, 6)" </span>|| <span
class="kw-2">&</span>as_string == <span class="string">"a NOT IN (6,
5)"</span>);</code></pre></div>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Bind-for-Reference" class="impl"><a class="src rightside"
href="../../src/iceberg/expr/term.rs.html#309-339">source</a><a
href="#impl-Bind-for-Reference" class="anchor">§</a><h3
class="code-header">impl <a cl [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Bind-for-Reference" class="impl"><a class="src rightside"
href="../../src/iceberg/expr/term.rs.html#309-339">source</a><a
href="#impl-Bind-for-Reference" class="anchor">§</a><h3
class="code-header">impl <a cl [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-Reference"
class="impl"><a class="src rightside"
href="../../src/iceberg/expr/term.rs.html#37">source</a><a
href="#impl-Serialize-for-Reference" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.html"
title="trait serde::ser:: [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section
id="impl-StructuralPartialEq-for-Reference" class="impl"><a class="src
rightside" href="../../ [...]
diff --git a/api/iceberg/spec/enum.DataFileBuilderError.html
b/api/iceberg/spec/enum.DataFileBuilderError.html
index b267f9a7..232d4e25 100644
--- a/api/iceberg/spec/enum.DataFileBuilderError.html
+++ b/api/iceberg/spec/enum.DataFileBuilderError.html
@@ -4,7 +4,7 @@
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Error type for DataFileBuilder</p>
</div></details><h2 id="variants" class="variants section-header">Variants
(Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details
class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked
as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums
could have additional variants added in future. Therefore, when matching
against variants of non-exhaustive enums, an extra wildcard arm must be added
to account for any future variants.</di [...]
</div><section id="variant.ValidationError" class="variant"><a
href="#variant.ValidationError" class="anchor">§</a><h3
class="code-header">ValidationError(<a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>)</h3></section><div
class="docblock"><p>Custom validation error</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Debug-for-DataFileBuilderError" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/manifest.rs.html#952">source</a><a
href="#impl-Debug-for-DataFileBuilderError" class="anchor">§</a><h3
class="code-header">impl <a clas [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Debug-for-DataFileBuilderError" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/manifest.rs.html#952">source</a><a
href="#impl-Debug-for-DataFileBuilderError" class="anchor">§</a><h3
class="code-header">impl <a clas [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html"
title="trait core::error::Error">Error</a> +
'static,</div></h3></section></summary><div class="impl-items"><details
class="toggle method-toggle" open><summary><section id="method.as_error_source"
class="method trait-impl"><a href="#method.as_error_source"
class="anchor">§</a><h4 class="code-header">fn <a
class="fn">as_error_source</a>(&self) -> &(dyn <a class="trait"
href="https://doc [...]
to benefit from Rust’s automatic dereferencing of method
diff --git a/api/iceberg/spec/enum.DataFileFormat.html
b/api/iceberg/spec/enum.DataFileFormat.html
index 5978f554..568009c3 100644
--- a/api/iceberg/spec/enum.DataFileFormat.html
+++ b/api/iceberg/spec/enum.DataFileFormat.html
@@ -6,10 +6,10 @@
</div></details><h2 id="variants" class="variants section-header">Variants<a
href="#variants" class="anchor">§</a></h2><div class="variants"><section
id="variant.Avro" class="variant"><a href="#variant.Avro"
class="anchor">§</a><h3 class="code-header">Avro</h3></section><div
class="docblock"><p>Avro file format: <a
href="https://avro.apache.org/">https://avro.apache.org/</a></p>
</div><section id="variant.Orc" class="variant"><a href="#variant.Orc"
class="anchor">§</a><h3 class="code-header">Orc</h3></section><div
class="docblock"><p>Orc file format: <a
href="https://orc.apache.org/">https://orc.apache.org/</a></p>
</div><section id="variant.Parquet" class="variant"><a href="#variant.Parquet"
class="anchor">§</a><h3 class="code-header">Parquet</h3></section><div
class="docblock"><p>Parquet file format: <a
href="https://parquet.apache.org/">https://parquet.apache.org/</a></p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-DataFileFormat" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/manifest.rs.html#1184">source</a><a
href="#impl-Clone-for-DataFileFormat" class="anchor">§</a><h3
class="code-header">impl <a class="trait" h [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-DataFileFormat" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/manifest.rs.html#1184">source</a><a
href="#impl-Clone-for-DataFileFormat" class="anchor">§</a><h3
class="code-header">impl <a class="trait" h [...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html"
title="trait core::str::traits::FromStr">FromStr</a>,
<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>>::<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.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-DataFileFormat" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/manifest.rs.html#1184">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.214/serde/ser/trait.Serialize.html" title="tr
[...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html"
title="trait
core::fmt::Display">Display</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.serialize" class="method trait-impl"><a class="src rightside"
href="../../src/iceberg/spec/manifest.rs.html#1184">source</a><a
href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a
href="https://docs.rs/ [...]
diff --git a/api/iceberg/spec/enum.NullOrder.html
b/api/iceberg/spec/enum.NullOrder.html
index f6300e67..1c510cf6 100644
--- a/api/iceberg/spec/enum.NullOrder.html
+++ b/api/iceberg/spec/enum.NullOrder.html
@@ -4,8 +4,8 @@
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Describes the order of null values when sorted.</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a
href="#variants" class="anchor">§</a></h2><div class="variants"><section
id="variant.First" class="variant"><a href="#variant.First"
class="anchor">§</a><h3 class="code-header">First</h3></section><div
class="docblock"><p>Nulls are stored first</p>
</div><section id="variant.Last" class="variant"><a href="#variant.Last"
class="anchor">§</a><h3 class="code-header">Last</h3></section><div
class="docblock"><p>Nulls are stored last</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-NullOrder" class="impl"><a class="src
rightside" href="../../src/iceberg/spec/sort.rs.html#55">source</a><a
href="#impl-Clone-for-NullOrder" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="https://doc [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-NullOrder" class="impl"><a class="src
rightside" href="../../src/iceberg/spec/sort.rs.html#55">source</a><a
href="#impl-Clone-for-NullOrder" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="https://doc [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-NullOrder"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/sort.rs.html#55">source</a><a
href="#impl-Serialize-for-NullOrder" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.html"
title="trait serde::ser:: [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section id="impl-Copy-for-NullOrder"
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
diff --git a/api/iceberg/spec/enum.SortDirection.html
b/api/iceberg/spec/enum.SortDirection.html
index a7bcdcd4..fcb18623 100644
--- a/api/iceberg/spec/enum.SortDirection.html
+++ b/api/iceberg/spec/enum.SortDirection.html
@@ -4,8 +4,8 @@
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Sort direction in a partition, either ascending or
descending</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a
href="#variants" class="anchor">§</a></h2><div class="variants"><section
id="variant.Ascending" class="variant"><a href="#variant.Ascending"
class="anchor">§</a><h3 class="code-header">Ascending</h3></section><div
class="docblock"><p>Ascending</p>
</div><section id="variant.Descending" class="variant"><a
href="#variant.Descending" class="anchor">§</a><h3
class="code-header">Descending</h3></section><div
class="docblock"><p>Descending</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-SortDirection" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/sort.rs.html#35">source</a><a
href="#impl-Clone-for-SortDirection" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="htt [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-SortDirection" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/sort.rs.html#35">source</a><a
href="#impl-Clone-for-SortDirection" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="htt [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-SortDirection" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/sort.rs.html#35">source</a><a
href="#impl-Serialize-for-SortDirection" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.html"
title="trait serd [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section
id="impl-Copy-for-SortDirection" class="impl"><a class="src rightside"
href="../../src/iceberg [...]
diff --git a/api/iceberg/spec/enum.SortOrderBuilderError.html
b/api/iceberg/spec/enum.SortOrderBuilderError.html
index b05178d2..3e5da4d0 100644
--- a/api/iceberg/spec/enum.SortOrderBuilderError.html
+++ b/api/iceberg/spec/enum.SortOrderBuilderError.html
@@ -4,7 +4,7 @@
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Error type for SortOrderBuilder</p>
</div></details><h2 id="variants" class="variants section-header">Variants
(Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details
class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked
as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums
could have additional variants added in future. Therefore, when matching
against variants of non-exhaustive enums, an extra wildcard arm must be added
to account for any future variants.</di [...]
</div><section id="variant.ValidationError" class="variant"><a
href="#variant.ValidationError" class="anchor">§</a><h3
class="code-header">ValidationError(<a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>)</h3></section><div
class="docblock"><p>Custom validation error</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Debug-for-SortOrderBuilderError"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/sort.rs.html#99">source</a><a
href="#impl-Debug-for-SortOrderBuilderError" class="anchor">§</a><h3
class="code-header">impl <a class=" [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Debug-for-SortOrderBuilderError"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/sort.rs.html#99">source</a><a
href="#impl-Debug-for-SortOrderBuilderError" class="anchor">§</a><h3
class="code-header">impl <a class=" [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html"
title="trait core::error::Error">Error</a> +
'static,</div></h3></section></summary><div class="impl-items"><details
class="toggle method-toggle" open><summary><section id="method.as_error_source"
class="method trait-impl"><a href="#method.as_error_source"
class="anchor">§</a><h4 class="code-header">fn <a
class="fn">as_error_source</a>(&self) -> &(dyn <a class="trait"
href="https://doc [...]
to benefit from Rust’s automatic dereferencing of method
diff --git a/api/iceberg/spec/enum.Type.html b/api/iceberg/spec/enum.Type.html
index 73a7ee63..c28c1aad 100644
--- a/api/iceberg/spec/enum.Type.html
+++ b/api/iceberg/spec/enum.Type.html
@@ -17,8 +17,8 @@
</div></details><details class="toggle method-toggle" open><summary><section
id="method.decimal_required_bytes" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#153-156">source</a><h4
class="code-header">pub fn <a href="#method.decimal_required_bytes"
class="fn">decimal_required_bytes</a>(precision: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) ->
<a class="type" href="../type.Result.html" title="typ [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.decimal" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#160-163">source</a><h4
class="code-header">pub fn <a href="#method.decimal"
class="fn">decimal</a>(precision: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, scale:
<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -&g
[...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.is_floating_type" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#167-172">source</a><h4
class="code-header">pub fn <a href="#method.is_floating_type"
class="fn">is_floating_type</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div
class="docblock"><p>Check if it’s float o [...]
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Type" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#80">source</a><a
href="#impl-Clone-for-Type" class="anchor">§</a><h3 class="code-header">impl <a
class="tra [...]
- D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Type" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#80">source</a><a
href="#impl-Clone-for-Type" class="anchor">§</a><h3 class="code-header">impl <a
class="tra [...]
+ D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-Type"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#267-273">source</a><a
href="#impl-Serialize-for-Type" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.html"
title="trait serde::ser:: [...]
S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section id="impl-Eq-for-Type"
class="impl"><a class="src rightside" href="../../src/iceberg/spec/datatyp [...]
diff --git a/api/iceberg/spec/enum.ViewFormatVersion.html
b/api/iceberg/spec/enum.ViewFormatVersion.html
index e5447404..73526b64 100644
--- a/api/iceberg/spec/enum.ViewFormatVersion.html
+++ b/api/iceberg/spec/enum.ViewFormatVersion.html
@@ -2,8 +2,8 @@
V1 = 1,
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Iceberg format version</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a
href="#variants" class="anchor">§</a></h2><div class="variants"><section
id="variant.V1" class="variant"><a href="#variant.V1" class="anchor">§</a><h3
class="code-header">V1 = 1</h3></section><div class="docblock"><p>Iceberg view
spec version 1</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-ViewFormatVersion" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/view_metadata.rs.html#397">source</a><a
href="#impl-Clone-for-ViewFormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class [...]
- D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-ViewFormatVersion" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/view_metadata.rs.html#397">source</a><a
href="#impl-Clone-for-ViewFormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class [...]
+ D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Compares and returns the maximum of two values. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read
more</a></div></details><details class="toggle method-toggle"
open><summary><section id="method.min" class="method trait-impl"><span
class="rightside"><span class="si [...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Compares and returns the minimum of two values. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read
more</a></div></details><details class="toggle method-toggle"
open><summary><section id="method.clamp" class="method trait-impl"><span
class="rightside"><span class=" [...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a> + <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html"
title="trait
core::cmp::PartialOrd">PartialOrd</a>,</div></h4></section></summary><div
class='docblock'>Restrict a value to a certain interval. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read
more</a></div></details></div> [...]
diff --git a/api/iceberg/spec/struct.Datum.html
b/api/iceberg/spec/struct.Datum.html
index b7f227e5..aa1e8425 100644
--- a/api/iceberg/spec/struct.Datum.html
+++ b/api/iceberg/spec/struct.Datum.html
@@ -265,7 +265,7 @@ Example:</p>
</div></details><details class="toggle method-toggle" open><summary><section
id="method.data_type" class="method"><a class="src rightside"
href="../../src/iceberg/spec/values.rs.html#1049-1051">source</a><h4
class="code-header">pub fn <a href="#method.data_type"
class="fn">data_type</a>(&self) -> &<a class="enum"
href="enum.PrimitiveType.html" title="enum
iceberg::spec::PrimitiveType">PrimitiveType</a></h4></section></summary><div
class="docblock"><p>Get the primitive type fro [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.is_nan" class="method"><a class="src rightside"
href="../../src/iceberg/spec/values.rs.html#1055-1061">source</a><h4
class="code-header">pub fn <a href="#method.is_nan"
class="fn">is_nan</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div
class="docblock"><p>Returns true if the Literal represents a primitive type
that can be a NaN, and that it’s value is NaN</p>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Datum" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/values.rs.html#96">source</a><a
href="#impl-Clone-for-Datum" class="anchor">§</a><h3 class="code-header">impl
<a class="trai [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Datum" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/values.rs.html#96">source</a><a
href="#impl-Clone-for-Datum" class="anchor">§</a><h3 class="code-header">impl
<a class="trai [...]
H: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"
title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Feeds a slice of this type into the given <a
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"
title="trait core::hash::Hasher"><code>Hasher</code></a>. <a
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read
more</a></div></details></div></d [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
diff --git a/api/iceberg/spec/struct.NestedField.html
b/api/iceberg/spec/struct.NestedField.html
index d78c00af..164a27bc 100644
--- a/api/iceberg/spec/struct.NestedField.html
+++ b/api/iceberg/spec/struct.NestedField.html
@@ -30,8 +30,8 @@ Fields may have an optional comment or doc string. Fields can
have default value
</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_doc" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#655-658">source</a><h4
class="code-header">pub fn <a href="#method.with_doc"
class="fn">with_doc</a>(self, doc: impl <a class="trait"
href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html"
title="trait alloc::string::ToString">ToString</a>) ->
Self</h4></section></summary><div class=" [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_initial_default" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#661-664">source</a><h4
class="code-header">pub fn <a href="#method.with_initial_default"
class="fn">with_initial_default</a>(self, value: <a class="enum"
href="enum.Literal.html" title="enum iceberg::spec::Literal">Literal</a>) ->
Self</h4></section></summary><div class="docblock"><p>Set the [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_write_default" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#667-670">source</a><h4
class="code-header">pub fn <a href="#method.with_write_default"
class="fn">with_write_default</a>(self, value: <a class="enum"
href="enum.Literal.html" title="enum iceberg::spec::Literal">Literal</a>) ->
Self</h4></section></summary><div class="docblock"><p>Set the field [...]
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-NestedField" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#512">source</a><a
href="#impl-Clone-for-NestedField" class="anchor">§</a><h3
class="code-header">imp [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-NestedField" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#512">source</a><a
href="#impl-Clone-for-NestedField" class="anchor">§</a><h3
class="code-header">imp [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-NestedField"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#512">source</a><a
href="#impl-Serialize-for-NestedField" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.html"
title="trait se [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section id="impl-Eq-for-NestedField"
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
diff --git a/api/iceberg/spec/struct.Schema.html
b/api/iceberg/spec/struct.Schema.html
index 3250e0b0..c156e5c2 100644
--- a/api/iceberg/spec/struct.Schema.html
+++ b/api/iceberg/spec/struct.Schema.html
@@ -17,11 +17,11 @@
</div></details><details class="toggle method-toggle" open><summary><section
id="method.field_id_by_name" class="method"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#366-368">source</a><h4
class="code-header">pub fn <a href="#method.field_id_by_name"
class="fn">field_id_by_name</a>(&self, name: &<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) ->
<a class="enum" href="https://doc.rust-lang.org/nightly/core/op [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.name_by_field_id" class="method"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#371-373">source</a><h4
class="code-header">pub fn <a href="#method.name_by_field_id"
class="fn">name_by_field_id</a>(&self, field_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) ->
<a class="enum" href="https://doc.rust-lang.org/nightly/core/opt [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.accessor_by_field_id" class="method"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#376-378">source</a><h4
class="code-header">pub fn <a href="#method.accessor_by_field_id"
class="fn">accessor_by_field_id</a>(&self, field_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) ->
<a class="enum" href="https://doc.rust-lang.org/nigh [...]
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Schema" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#45">source</a><a
href="#impl-Clone-for-Schema" class="anchor">§</a><h3 class="code-header">impl
<a class="tr [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Schema" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#45">source</a><a
href="#impl-Clone-for-Schema" class="anchor">§</a><h3 class="code-header">impl
<a class="tr [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-Schema"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#45">source</a><a
href="#impl-Serialize-for-Schema" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.html"
title="trait serde::ser::Seri [...]
- __S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-TryFrom%3C%26Schema%3E-for- [...]
+ __S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-TryFrom%3C%26Schema%3E-for- [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow_mut" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a
href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a
href= [...]
diff --git a/api/iceberg/spec/struct.StructType.html
b/api/iceberg/spec/struct.StructType.html
index 16fb1834..13809887 100644
--- a/api/iceberg/spec/struct.StructType.html
+++ b/api/iceberg/spec/struct.StructType.html
@@ -3,8 +3,8 @@
</div></details><details class="toggle method-toggle" open><summary><section
id="method.field_by_id" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#448-450">source</a><h4
class="code-header">pub fn <a href="#method.field_by_id"
class="fn">field_by_id</a>(&self, id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) ->
<a class="enum"
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.ht [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.field_by_name" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#462-464">source</a><h4
class="code-header">pub fn <a href="#method.field_by_name"
class="fn">field_by_name</a>(&self, name: &<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) ->
<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/e [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.fields" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#481-483">source</a><h4
class="code-header">pub fn <a href="#method.fields"
class="fn">fields</a>(&self) -> &[<a class="type"
href="type.NestedFieldRef.html" title="type
iceberg::spec::NestedFieldRef">NestedFieldRef</a>]</h4></section></summary><div
class="docblock"><p>Get fields.</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-StructType" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#380">source</a><a
href="#impl-Clone-for-StructType" class="anchor">§</a><h3
class="code-header">impl [...]
- D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-StructType" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#380">source</a><a
href="#impl-Clone-for-StructType" class="anchor">§</a><h3
class="code-header">impl [...]
+ D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-StructType"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#380">source</a><a
href="#impl-Serialize-for-StructType" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.html"
title="trait serd [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section id="impl-Eq-for-StructType"
class="impl"><a class="src rightside" href="../../src/iceberg/spec [...]
diff --git a/api/iceberg/spec/struct.UnboundPartitionSpec.html
b/api/iceberg/spec/struct.UnboundPartitionSpec.html
index 7f55d7c2..ceb84d77 100644
--- a/api/iceberg/spec/struct.UnboundPartitionSpec.html
+++ b/api/iceberg/spec/struct.UnboundPartitionSpec.html
@@ -5,7 +5,7 @@
</div></details><details class="toggle method-toggle" open><summary><section
id="method.fields" class="method"><a class="src rightside"
href="../../src/iceberg/spec/partition.rs.html#267-269">source</a><h4
class="code-header">pub fn <a href="#method.fields"
class="fn">fields</a>(&self) -> &[<a class="struct"
href="struct.UnboundPartitionField.html" title="struct
iceberg::spec::UnboundPartitionField">UnboundPartitionField</a>]</h4></section></summary><div
class="docblock"><p>Fi [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_spec_id" class="method"><a class="src rightside"
href="../../src/iceberg/spec/partition.rs.html#272-277">source</a><h4
class="code-header">pub fn <a href="#method.with_spec_id"
class="fn">with_spec_id</a>(self, spec_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) ->
Self</h4></section></summary><div class="docblock"><p>Change the spec id of the
[...]
</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-UnboundPartitionSpec" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/partition.rs.html#241">source</a><a
href="#impl-Clone-for-UnboundPartitionSpec" class="anchor">§</a><h3 class [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/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% [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/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-UnboundPartitionSpec" class="impl"><a class="src
rightside" href="../../src/iceberg/spec/partition.rs.html#241">source</a><a
href="#impl-Serialize-for-UnboundPartitionSpec" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.214/serde/ser/trait.Serialize.htm [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.214/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.214/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section
id="impl-Eq-for-UnboundPartitionSpec" class="impl"><a class="src rightside"
href="../../src/ic [...]
diff --git a/api/iceberg/struct.Error.html b/api/iceberg/struct.Error.html
index c924db3a..4ccbe401 100644
--- a/api/iceberg/struct.Error.html
+++ b/api/iceberg/struct.Error.html
@@ -35,7 +35,7 @@ Backtrace:
</div></details><details class="toggle method-toggle" open><summary><section
id="method.kind" class="method"><a class="src rightside"
href="../src/iceberg/error.rs.html#241-243">source</a><h4
class="code-header">pub fn <a href="#method.kind"
class="fn">kind</a>(&self) -> <a class="enum" href="enum.ErrorKind.html"
title="enum iceberg::ErrorKind">ErrorKind</a></h4></section></summary><div
class="docblock"><p>Return error’s kind.</p>
<p>Users can use this method to check error’s kind and take actions.</p>
</div></details><details class="toggle method-toggle" open><summary><section
id="method.message" class="method"><a class="src rightside"
href="../src/iceberg/error.rs.html#247-249">source</a><h4
class="code-header">pub fn <a href="#method.message"
class="fn">message</a>(&self) -> &<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div
class="docblock"><p>Return error’s message.</p>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-Error" class="impl"><a class="src rightside"
href="../src/iceberg/error.rs.html#148-187">source</a><a
href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl
<a class="trait" h [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-Error" class="impl"><a class="src rightside"
href="../src/iceberg/error.rs.html#148-187">source</a><a
href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl
<a class="trait" h [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html"
title="trait core::error::Error">Error</a> +
'static,</div></h3></section></summary><div class="impl-items"><details
class="toggle method-toggle" open><summary><section id="method.as_error_source"
class="method trait-impl"><a href="#method.as_error_source"
class="anchor">§</a><h4 class="code-header">fn <a
class="fn">as_error_source</a>(&self) -> &(dyn <a class="trait"
href="https://doc [...]
to benefit from Rust’s automatic dereferencing of method
diff --git a/api/iceberg/struct.ViewCreation.html
b/api/iceberg/struct.ViewCreation.html
index 24c87b62..1a56b370 100644
--- a/api/iceberg/struct.ViewCreation.html
+++ b/api/iceberg/struct.ViewCreation.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="ViewCreation represents the creation of a view in the
catalog."><title>ViewCreation in iceberg -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2
[...]
+<!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="ViewCreation represents the creation of a view in the
catalog."><title>ViewCreation in iceberg -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2
[...]
pub name: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>,
pub location: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>,
pub representations: <a class="struct"
href="spec/struct.ViewRepresentations.html" title="struct
iceberg::spec::ViewRepresentations">ViewRepresentations</a>,
@@ -17,10 +17,10 @@
</div><span id="structfield.default_catalog" class="structfield
section-header"><a href="#structfield.default_catalog" class="anchor
field">§</a><code>default_catalog: <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>></code></span><div
class="docblock"><p>Default c [...]
</div><span id="structfield.summary" class="structfield section-header"><a
href="#structfield.summary" class="anchor field">§</a><code>summary: <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><<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="https://doc.r [...]
Typical keys are “engine-name” and “engine-version”</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-ViewCreation" class="impl"><a class="src
rightside" href="../src/iceberg/catalog/mod.rs.html#516">source</a><a
href="#impl-ViewCreation" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.ViewCreation.html" title="struct iceberg::ViewC
[...]
+</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-ViewCreation" class="impl"><a class="src
rightside" href="../src/iceberg/catalog/mod.rs.html#650">source</a><a
href="#impl-ViewCreation" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.ViewCreation.html" title="struct iceberg::ViewC
[...]
On the builder, call <code>.name(...)</code>, <code>.location(...)</code>,
<code>.representations(...)</code>, <code>.schema(...)</code>,
<code>.properties(...)</code>(optional), <code>.default_namespace(...)</code>,
<code>.default_catalog(...)</code>(optional),
<code>.summary(...)</code>(optional) to set the values of the fields.
Finally, call <code>.build()</code> to create the instance of
<code>ViewCreation</code>.</p>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-ViewCreation" class="impl"><a class="src rightside"
href="../src/iceberg/catalog/mod.rs.html#516">source</a><a
href="#impl-Debug-for-ViewCreation" class="anchor">§</a><h3
class="code-header">impl <a [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-ViewCreation" class="impl"><a class="src rightside"
href="../src/iceberg/catalog/mod.rs.html#650">source</a><a
href="#impl-Debug-for-ViewCreation" class="anchor">§</a><h3
class="code-header">impl <a [...]
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/search-index.js b/api/search-index.js
index 3005f9e6..36fe4b76 100644
--- a/api/search-index.js
+++ b/api/search-index.js
@@ -1,5 +1,5 @@
var searchIndex = new Map(JSON.parse('[\
-["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
[...]
+["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
[...]
["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/search.desc/iceberg/iceberg-desc-0-.js
b/api/search.desc/iceberg/iceberg-desc-0-.js
index 56860152..d5fd0428 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/catalog/mod.rs.html
b/api/src/iceberg/catalog/mod.rs.html
index 3793ec48..24dca87b 100644
--- a/api/src/iceberg/catalog/mod.rs.html
+++ b/api/src/iceberg/catalog/mod.rs.html
@@ -1234,6 +1234,301 @@
<a href="#1234" id="1234">1234</a>
<a href="#1235" id="1235">1235</a>
<a href="#1236" id="1236">1236</a>
+<a href="#1237" id="1237">1237</a>
+<a href="#1238" id="1238">1238</a>
+<a href="#1239" id="1239">1239</a>
+<a href="#1240" id="1240">1240</a>
+<a href="#1241" id="1241">1241</a>
+<a href="#1242" id="1242">1242</a>
+<a href="#1243" id="1243">1243</a>
+<a href="#1244" id="1244">1244</a>
+<a href="#1245" id="1245">1245</a>
+<a href="#1246" id="1246">1246</a>
+<a href="#1247" id="1247">1247</a>
+<a href="#1248" id="1248">1248</a>
+<a href="#1249" id="1249">1249</a>
+<a href="#1250" id="1250">1250</a>
+<a href="#1251" id="1251">1251</a>
+<a href="#1252" id="1252">1252</a>
+<a href="#1253" id="1253">1253</a>
+<a href="#1254" id="1254">1254</a>
+<a href="#1255" id="1255">1255</a>
+<a href="#1256" id="1256">1256</a>
+<a href="#1257" id="1257">1257</a>
+<a href="#1258" id="1258">1258</a>
+<a href="#1259" id="1259">1259</a>
+<a href="#1260" id="1260">1260</a>
+<a href="#1261" id="1261">1261</a>
+<a href="#1262" id="1262">1262</a>
+<a href="#1263" id="1263">1263</a>
+<a href="#1264" id="1264">1264</a>
+<a href="#1265" id="1265">1265</a>
+<a href="#1266" id="1266">1266</a>
+<a href="#1267" id="1267">1267</a>
+<a href="#1268" id="1268">1268</a>
+<a href="#1269" id="1269">1269</a>
+<a href="#1270" id="1270">1270</a>
+<a href="#1271" id="1271">1271</a>
+<a href="#1272" id="1272">1272</a>
+<a href="#1273" id="1273">1273</a>
+<a href="#1274" id="1274">1274</a>
+<a href="#1275" id="1275">1275</a>
+<a href="#1276" id="1276">1276</a>
+<a href="#1277" id="1277">1277</a>
+<a href="#1278" id="1278">1278</a>
+<a href="#1279" id="1279">1279</a>
+<a href="#1280" id="1280">1280</a>
+<a href="#1281" id="1281">1281</a>
+<a href="#1282" id="1282">1282</a>
+<a href="#1283" id="1283">1283</a>
+<a href="#1284" id="1284">1284</a>
+<a href="#1285" id="1285">1285</a>
+<a href="#1286" id="1286">1286</a>
+<a href="#1287" id="1287">1287</a>
+<a href="#1288" id="1288">1288</a>
+<a href="#1289" id="1289">1289</a>
+<a href="#1290" id="1290">1290</a>
+<a href="#1291" id="1291">1291</a>
+<a href="#1292" id="1292">1292</a>
+<a href="#1293" id="1293">1293</a>
+<a href="#1294" id="1294">1294</a>
+<a href="#1295" id="1295">1295</a>
+<a href="#1296" id="1296">1296</a>
+<a href="#1297" id="1297">1297</a>
+<a href="#1298" id="1298">1298</a>
+<a href="#1299" id="1299">1299</a>
+<a href="#1300" id="1300">1300</a>
+<a href="#1301" id="1301">1301</a>
+<a href="#1302" id="1302">1302</a>
+<a href="#1303" id="1303">1303</a>
+<a href="#1304" id="1304">1304</a>
+<a href="#1305" id="1305">1305</a>
+<a href="#1306" id="1306">1306</a>
+<a href="#1307" id="1307">1307</a>
+<a href="#1308" id="1308">1308</a>
+<a href="#1309" id="1309">1309</a>
+<a href="#1310" id="1310">1310</a>
+<a href="#1311" id="1311">1311</a>
+<a href="#1312" id="1312">1312</a>
+<a href="#1313" id="1313">1313</a>
+<a href="#1314" id="1314">1314</a>
+<a href="#1315" id="1315">1315</a>
+<a href="#1316" id="1316">1316</a>
+<a href="#1317" id="1317">1317</a>
+<a href="#1318" id="1318">1318</a>
+<a href="#1319" id="1319">1319</a>
+<a href="#1320" id="1320">1320</a>
+<a href="#1321" id="1321">1321</a>
+<a href="#1322" id="1322">1322</a>
+<a href="#1323" id="1323">1323</a>
+<a href="#1324" id="1324">1324</a>
+<a href="#1325" id="1325">1325</a>
+<a href="#1326" id="1326">1326</a>
+<a href="#1327" id="1327">1327</a>
+<a href="#1328" id="1328">1328</a>
+<a href="#1329" id="1329">1329</a>
+<a href="#1330" id="1330">1330</a>
+<a href="#1331" id="1331">1331</a>
+<a href="#1332" id="1332">1332</a>
+<a href="#1333" id="1333">1333</a>
+<a href="#1334" id="1334">1334</a>
+<a href="#1335" id="1335">1335</a>
+<a href="#1336" id="1336">1336</a>
+<a href="#1337" id="1337">1337</a>
+<a href="#1338" id="1338">1338</a>
+<a href="#1339" id="1339">1339</a>
+<a href="#1340" id="1340">1340</a>
+<a href="#1341" id="1341">1341</a>
+<a href="#1342" id="1342">1342</a>
+<a href="#1343" id="1343">1343</a>
+<a href="#1344" id="1344">1344</a>
+<a href="#1345" id="1345">1345</a>
+<a href="#1346" id="1346">1346</a>
+<a href="#1347" id="1347">1347</a>
+<a href="#1348" id="1348">1348</a>
+<a href="#1349" id="1349">1349</a>
+<a href="#1350" id="1350">1350</a>
+<a href="#1351" id="1351">1351</a>
+<a href="#1352" id="1352">1352</a>
+<a href="#1353" id="1353">1353</a>
+<a href="#1354" id="1354">1354</a>
+<a href="#1355" id="1355">1355</a>
+<a href="#1356" id="1356">1356</a>
+<a href="#1357" id="1357">1357</a>
+<a href="#1358" id="1358">1358</a>
+<a href="#1359" id="1359">1359</a>
+<a href="#1360" id="1360">1360</a>
+<a href="#1361" id="1361">1361</a>
+<a href="#1362" id="1362">1362</a>
+<a href="#1363" id="1363">1363</a>
+<a href="#1364" id="1364">1364</a>
+<a href="#1365" id="1365">1365</a>
+<a href="#1366" id="1366">1366</a>
+<a href="#1367" id="1367">1367</a>
+<a href="#1368" id="1368">1368</a>
+<a href="#1369" id="1369">1369</a>
+<a href="#1370" id="1370">1370</a>
+<a href="#1371" id="1371">1371</a>
+<a href="#1372" id="1372">1372</a>
+<a href="#1373" id="1373">1373</a>
+<a href="#1374" id="1374">1374</a>
+<a href="#1375" id="1375">1375</a>
+<a href="#1376" id="1376">1376</a>
+<a href="#1377" id="1377">1377</a>
+<a href="#1378" id="1378">1378</a>
+<a href="#1379" id="1379">1379</a>
+<a href="#1380" id="1380">1380</a>
+<a href="#1381" id="1381">1381</a>
+<a href="#1382" id="1382">1382</a>
+<a href="#1383" id="1383">1383</a>
+<a href="#1384" id="1384">1384</a>
+<a href="#1385" id="1385">1385</a>
+<a href="#1386" id="1386">1386</a>
+<a href="#1387" id="1387">1387</a>
+<a href="#1388" id="1388">1388</a>
+<a href="#1389" id="1389">1389</a>
+<a href="#1390" id="1390">1390</a>
+<a href="#1391" id="1391">1391</a>
+<a href="#1392" id="1392">1392</a>
+<a href="#1393" id="1393">1393</a>
+<a href="#1394" id="1394">1394</a>
+<a href="#1395" id="1395">1395</a>
+<a href="#1396" id="1396">1396</a>
+<a href="#1397" id="1397">1397</a>
+<a href="#1398" id="1398">1398</a>
+<a href="#1399" id="1399">1399</a>
+<a href="#1400" id="1400">1400</a>
+<a href="#1401" id="1401">1401</a>
+<a href="#1402" id="1402">1402</a>
+<a href="#1403" id="1403">1403</a>
+<a href="#1404" id="1404">1404</a>
+<a href="#1405" id="1405">1405</a>
+<a href="#1406" id="1406">1406</a>
+<a href="#1407" id="1407">1407</a>
+<a href="#1408" id="1408">1408</a>
+<a href="#1409" id="1409">1409</a>
+<a href="#1410" id="1410">1410</a>
+<a href="#1411" id="1411">1411</a>
+<a href="#1412" id="1412">1412</a>
+<a href="#1413" id="1413">1413</a>
+<a href="#1414" id="1414">1414</a>
+<a href="#1415" id="1415">1415</a>
+<a href="#1416" id="1416">1416</a>
+<a href="#1417" id="1417">1417</a>
+<a href="#1418" id="1418">1418</a>
+<a href="#1419" id="1419">1419</a>
+<a href="#1420" id="1420">1420</a>
+<a href="#1421" id="1421">1421</a>
+<a href="#1422" id="1422">1422</a>
+<a href="#1423" id="1423">1423</a>
+<a href="#1424" id="1424">1424</a>
+<a href="#1425" id="1425">1425</a>
+<a href="#1426" id="1426">1426</a>
+<a href="#1427" id="1427">1427</a>
+<a href="#1428" id="1428">1428</a>
+<a href="#1429" id="1429">1429</a>
+<a href="#1430" id="1430">1430</a>
+<a href="#1431" id="1431">1431</a>
+<a href="#1432" id="1432">1432</a>
+<a href="#1433" id="1433">1433</a>
+<a href="#1434" id="1434">1434</a>
+<a href="#1435" id="1435">1435</a>
+<a href="#1436" id="1436">1436</a>
+<a href="#1437" id="1437">1437</a>
+<a href="#1438" id="1438">1438</a>
+<a href="#1439" id="1439">1439</a>
+<a href="#1440" id="1440">1440</a>
+<a href="#1441" id="1441">1441</a>
+<a href="#1442" id="1442">1442</a>
+<a href="#1443" id="1443">1443</a>
+<a href="#1444" id="1444">1444</a>
+<a href="#1445" id="1445">1445</a>
+<a href="#1446" id="1446">1446</a>
+<a href="#1447" id="1447">1447</a>
+<a href="#1448" id="1448">1448</a>
+<a href="#1449" id="1449">1449</a>
+<a href="#1450" id="1450">1450</a>
+<a href="#1451" id="1451">1451</a>
+<a href="#1452" id="1452">1452</a>
+<a href="#1453" id="1453">1453</a>
+<a href="#1454" id="1454">1454</a>
+<a href="#1455" id="1455">1455</a>
+<a href="#1456" id="1456">1456</a>
+<a href="#1457" id="1457">1457</a>
+<a href="#1458" id="1458">1458</a>
+<a href="#1459" id="1459">1459</a>
+<a href="#1460" id="1460">1460</a>
+<a href="#1461" id="1461">1461</a>
+<a href="#1462" id="1462">1462</a>
+<a href="#1463" id="1463">1463</a>
+<a href="#1464" id="1464">1464</a>
+<a href="#1465" id="1465">1465</a>
+<a href="#1466" id="1466">1466</a>
+<a href="#1467" id="1467">1467</a>
+<a href="#1468" id="1468">1468</a>
+<a href="#1469" id="1469">1469</a>
+<a href="#1470" id="1470">1470</a>
+<a href="#1471" id="1471">1471</a>
+<a href="#1472" id="1472">1472</a>
+<a href="#1473" id="1473">1473</a>
+<a href="#1474" id="1474">1474</a>
+<a href="#1475" id="1475">1475</a>
+<a href="#1476" id="1476">1476</a>
+<a href="#1477" id="1477">1477</a>
+<a href="#1478" id="1478">1478</a>
+<a href="#1479" id="1479">1479</a>
+<a href="#1480" id="1480">1480</a>
+<a href="#1481" id="1481">1481</a>
+<a href="#1482" id="1482">1482</a>
+<a href="#1483" id="1483">1483</a>
+<a href="#1484" id="1484">1484</a>
+<a href="#1485" id="1485">1485</a>
+<a href="#1486" id="1486">1486</a>
+<a href="#1487" id="1487">1487</a>
+<a href="#1488" id="1488">1488</a>
+<a href="#1489" id="1489">1489</a>
+<a href="#1490" id="1490">1490</a>
+<a href="#1491" id="1491">1491</a>
+<a href="#1492" id="1492">1492</a>
+<a href="#1493" id="1493">1493</a>
+<a href="#1494" id="1494">1494</a>
+<a href="#1495" id="1495">1495</a>
+<a href="#1496" id="1496">1496</a>
+<a href="#1497" id="1497">1497</a>
+<a href="#1498" id="1498">1498</a>
+<a href="#1499" id="1499">1499</a>
+<a href="#1500" id="1500">1500</a>
+<a href="#1501" id="1501">1501</a>
+<a href="#1502" id="1502">1502</a>
+<a href="#1503" id="1503">1503</a>
+<a href="#1504" id="1504">1504</a>
+<a href="#1505" id="1505">1505</a>
+<a href="#1506" id="1506">1506</a>
+<a href="#1507" id="1507">1507</a>
+<a href="#1508" id="1508">1508</a>
+<a href="#1509" id="1509">1509</a>
+<a href="#1510" id="1510">1510</a>
+<a href="#1511" id="1511">1511</a>
+<a href="#1512" id="1512">1512</a>
+<a href="#1513" id="1513">1513</a>
+<a href="#1514" id="1514">1514</a>
+<a href="#1515" id="1515">1515</a>
+<a href="#1516" id="1516">1516</a>
+<a href="#1517" id="1517">1517</a>
+<a href="#1518" id="1518">1518</a>
+<a href="#1519" id="1519">1519</a>
+<a href="#1520" id="1520">1520</a>
+<a href="#1521" id="1521">1521</a>
+<a href="#1522" id="1522">1522</a>
+<a href="#1523" id="1523">1523</a>
+<a href="#1524" id="1524">1524</a>
+<a href="#1525" id="1525">1525</a>
+<a href="#1526" id="1526">1526</a>
+<a href="#1527" id="1527">1527</a>
+<a href="#1528" id="1528">1528</a>
+<a href="#1529" id="1529">1529</a>
+<a href="#1530" id="1530">1530</a>
+<a href="#1531" id="1531">1531</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
@@ -1265,8 +1560,8 @@
<span class="kw">use </span>uuid::Uuid;
<span class="kw">use </span><span class="kw">crate</span>::spec::{
- FormatVersion, Schema, Snapshot, SnapshotReference, SortOrder,
TableMetadataBuilder,
- UnboundPartitionSpec, ViewRepresentations,
+ FormatVersion, Schema, SchemaId, Snapshot, SnapshotReference, SortOrder,
TableMetadata,
+ TableMetadataBuilder, UnboundPartitionSpec, ViewRepresentations,
};
<span class="kw">use </span><span class="kw">crate</span>::table::Table;
<span class="kw">use crate</span>::{Error, ErrorKind, <span
class="prelude-ty">Result</span>};
@@ -1548,14 +1843,14 @@
</span>LastAssignedFieldIdMatch {
<span class="doccomment">/// The last assigned field id of the table
to assert.
</span><span class="attr">#[serde(rename = <span
class="string">"last-assigned-field-id"</span>)]
- </span>last_assigned_field_id: i64,
+ </span>last_assigned_field_id: i32,
},
<span class="doccomment">/// The table's current schema id must match the
requirement.
</span><span class="attr">#[serde(rename = <span
class="string">"assert-current-schema-id"</span>)]
</span>CurrentSchemaIdMatch {
<span class="doccomment">/// Current schema id of the table to assert.
</span><span class="attr">#[serde(rename = <span
class="string">"current-schema-id"</span>)]
- </span>current_schema_id: i64,
+ </span>current_schema_id: SchemaId,
},
<span class="doccomment">/// The table's last assigned partition id must
match the
/// requirement.
@@ -1563,14 +1858,14 @@
</span>LastAssignedPartitionIdMatch {
<span class="doccomment">/// Last assigned partition id of the table
to assert.
</span><span class="attr">#[serde(rename = <span
class="string">"last-assigned-partition-id"</span>)]
- </span>last_assigned_partition_id: i64,
+ </span>last_assigned_partition_id: i32,
},
<span class="doccomment">/// The table's default spec id must match the
requirement.
</span><span class="attr">#[serde(rename = <span
class="string">"assert-default-spec-id"</span>)]
</span>DefaultSpecIdMatch {
<span class="doccomment">/// Default spec id of the table to assert.
</span><span class="attr">#[serde(rename = <span
class="string">"default-spec-id"</span>)]
- </span>default_spec_id: i64,
+ </span>default_spec_id: i32,
},
<span class="doccomment">/// The table's default sort order id must match
the requirement.
</span><span class="attr">#[serde(rename = <span
class="string">"assert-default-sort-order-id"</span>)]
@@ -1689,6 +1984,140 @@
}
}
+<span class="kw">impl </span>TableRequirement {
+ <span class="doccomment">/// Check that the requirement is met by the
table metadata.
+ /// If the requirement is not met, an appropriate error is returned.
+ ///
+ /// Provide metadata as `None` if the table does not exist.
+ </span><span class="kw">pub fn </span>check(<span
class="kw-2">&</span><span class="self">self</span>, metadata: <span
class="prelude-ty">Option</span><<span
class="kw-2">&</span>TableMetadata>) -> <span
class="prelude-ty">Result</span><()> {
+ <span class="kw">if let </span><span
class="prelude-val">Some</span>(metadata) = metadata {
+ <span class="kw">match </span><span class="self">self </span>{
+ TableRequirement::NotExist => {
+ <span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="macro">format!</span>(
+ <span class="string">"Requirement failed: Table
with id {} already exists"</span>,
+ metadata.uuid()
+ ),
+ ));
+ }
+ TableRequirement::UuidMatch { uuid } => {
+ <span class="kw">if </span><span
class="kw-2">&</span>metadata.uuid() != uuid {
+ <span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="string">"Requirement failed: Table
UUID does not match"</span>,
+ )
+ .with_context(<span class="string">"expected"</span>,
<span class="kw-2">*</span>uuid)
+ .with_context(<span class="string">"found"</span>,
metadata.uuid()));
+ }
+ }
+ TableRequirement::CurrentSchemaIdMatch { current_schema_id }
=> {
+ <span class="comment">// ToDo: Harmonize the types of
current_schema_id
+ </span><span class="kw">if
</span>metadata.current_schema_id != <span
class="kw-2">*</span>current_schema_id {
+ <span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="string">"Requirement failed: Current
schema id does not match"</span>,
+ )
+ .with_context(<span class="string">"expected"</span>,
current_schema_id.to_string())
+ .with_context(<span class="string">"found"</span>,
metadata.current_schema_id.to_string()));
+ }
+ }
+ TableRequirement::DefaultSortOrderIdMatch {
+ default_sort_order_id,
+ } => {
+ <span class="kw">if
</span>metadata.default_sort_order().order_id != <span
class="kw-2">*</span>default_sort_order_id {
+ <span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="string">"Requirement failed: Default
sort order id does not match"</span>,
+ )
+ .with_context(<span class="string">"expected"</span>,
default_sort_order_id.to_string())
+ .with_context(
+ <span class="string">"found"</span>,
+ metadata.default_sort_order().order_id.to_string(),
+ ));
+ }
+ }
+ TableRequirement::RefSnapshotIdMatch { r#ref, snapshot_id }
=> {
+ <span class="kw">let </span>snapshot_ref =
metadata.snapshot_for_ref(r#ref);
+ <span class="kw">if let </span><span
class="prelude-val">Some</span>(snapshot_id) = snapshot_id {
+ <span class="kw">let </span>snapshot_ref =
snapshot_ref.ok_or(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="macro">format!</span>(<span
class="string">"Requirement failed: Branch or tag `{}` not found"</span>,
r#ref),
+ ))<span class="question-mark">?</span>;
+ <span class="kw">if </span>snapshot_ref.snapshot_id()
!= <span class="kw-2">*</span>snapshot_id {
+ <span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="macro">format!</span>(
+ <span class="string">"Requirement failed:
Branch or tag `{}`'s snapshot has changed"</span>,
+ r#ref
+ ),
+ )
+ .with_context(<span
class="string">"expected"</span>, snapshot_id.to_string())
+ .with_context(<span class="string">"found"</span>,
snapshot_ref.snapshot_id().to_string()));
+ }
+ } <span class="kw">else if </span>snapshot_ref.is_some() {
+ <span class="comment">// a null snapshot ID means the
ref should not exist already
+ </span><span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="macro">format!</span>(
+ <span class="string">"Requirement failed:
Branch or tag `{}` already exists"</span>,
+ r#ref
+ ),
+ ));
+ }
+ }
+ TableRequirement::DefaultSpecIdMatch { default_spec_id } =>
{
+ <span class="comment">// ToDo: Harmonize the types of
default_spec_id
+ </span><span class="kw">if
</span>metadata.default_partition_spec_id() != <span
class="kw-2">*</span>default_spec_id {
+ <span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="string">"Requirement failed: Default
partition spec id does not match"</span>,
+ )
+ .with_context(<span class="string">"expected"</span>,
default_spec_id.to_string())
+ .with_context(<span class="string">"found"</span>,
metadata.default_partition_spec_id().to_string()));
+ }
+ }
+ TableRequirement::LastAssignedPartitionIdMatch {
+ last_assigned_partition_id,
+ } => {
+ <span class="kw">if </span>metadata.last_partition_id !=
<span class="kw-2">*</span>last_assigned_partition_id {
+ <span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="string">"Requirement failed: Last
assigned partition id does not match"</span>,
+ )
+ .with_context(<span class="string">"expected"</span>,
last_assigned_partition_id.to_string())
+ .with_context(<span class="string">"found"</span>,
metadata.last_partition_id.to_string()));
+ }
+ }
+ TableRequirement::LastAssignedFieldIdMatch {
+ last_assigned_field_id,
+ } => {
+ <span class="kw">if </span><span
class="kw-2">&</span>metadata.last_column_id != last_assigned_field_id {
+ <span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="string">"Requirement failed: Last
assigned field id does not match"</span>,
+ )
+ .with_context(<span class="string">"expected"</span>,
last_assigned_field_id.to_string())
+ .with_context(<span class="string">"found"</span>,
metadata.last_column_id.to_string()));
+ }
+ }
+ };
+ } <span class="kw">else </span>{
+ <span class="kw">match </span><span class="self">self </span>{
+ TableRequirement::NotExist => {}
+ <span class="kw">_ </span>=> {
+ <span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
+ ErrorKind::DataInvalid,
+ <span class="string">"Requirement failed: Table does
not exist"</span>,
+ ));
+ }
+ }
+ }
+
+ <span class="prelude-val">Ok</span>(())
+ }
+}
+
<span class="kw">pub</span>(<span class="kw">super</span>) <span
class="kw">mod </span>_serde {
<span class="kw">use </span>serde::{Deserialize <span class="kw">as
_</span>, Deserializer};
@@ -1785,7 +2214,7 @@
<span class="kw">use </span><span class="kw">crate</span>::spec::{
FormatVersion, NestedField, NullOrder, Operation, PrimitiveType,
Schema, Snapshot,
SnapshotReference, SnapshotRetention, SortDirection, SortField,
SortOrder, Summary,
- TableMetadataBuilder, Transform, Type, UnboundPartitionSpec,
+ TableMetadata, TableMetadataBuilder, Transform, Type,
UnboundPartitionSpec,
};
<span class="kw">use crate</span>::{NamespaceIdent, TableCreation,
TableIdent, TableRequirement, TableUpdate};
@@ -1829,6 +2258,167 @@
</span>);
}
+ <span class="kw">fn </span>metadata() -> TableMetadata {
+ <span class="kw">let </span>tbl_creation = TableCreation::builder()
+ .name(<span class="string">"table"</span>.to_string())
+ .location(<span class="string">"/path/to/table"</span>.to_string())
+ .schema(Schema::builder().build().unwrap())
+ .build();
+
+ TableMetadataBuilder::from_table_creation(tbl_creation)
+ .unwrap()
+ .assign_uuid(uuid::Uuid::nil())
+ .unwrap()
+ .build()
+ .unwrap()
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_requirement_not_exist() {
+ <span class="kw">let </span>metadata = metadata();
+ <span class="kw">let </span>requirement = TableRequirement::NotExist;
+
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_err());
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">None</span>).is_ok());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_table_uuid() {
+ <span class="kw">let </span>metadata = metadata();
+
+ <span class="kw">let </span>requirement = TableRequirement::UuidMatch {
+ uuid: uuid::Uuid::now_v7(),
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_err());
+
+ <span class="kw">let </span>requirement = TableRequirement::UuidMatch {
+ uuid: uuid::Uuid::nil(),
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_ok());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_ref_snapshot_id() {
+ <span class="kw">let </span>metadata = metadata();
+
+ <span class="comment">// Ref does not exist but should
+ </span><span class="kw">let </span>requirement =
TableRequirement::RefSnapshotIdMatch {
+ r#ref: <span class="string">"my_branch"</span>.to_string(),
+ snapshot_id: <span class="prelude-val">Some</span>(<span
class="number">1</span>),
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_err());
+
+ <span class="comment">// Ref does not exist and should not
+ </span><span class="kw">let </span>requirement =
TableRequirement::RefSnapshotIdMatch {
+ r#ref: <span class="string">"my_branch"</span>.to_string(),
+ snapshot_id: <span class="prelude-val">None</span>,
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_ok());
+
+ <span class="comment">// Add snapshot
+ </span><span class="kw">let </span>record = <span class="string">r#"
+ {
+ "snapshot-id": 3051729675574597004,
+ "sequence-number": 10,
+ "timestamp-ms": 1515100955770,
+ "summary": {
+ "operation": "append"
+ },
+ "manifest-list": "s3://b/wh/.../s1.avro",
+ "schema-id": 0
+ }
+ "#</span>;
+
+ <span class="kw">let </span>snapshot =
serde_json::from_str::<Snapshot>(record).unwrap();
+ <span class="kw">let </span><span class="kw-2">mut </span>metadata =
metadata;
+ metadata.append_snapshot(snapshot);
+
+ <span class="comment">// Ref exists and should matches
+ </span><span class="kw">let </span>requirement =
TableRequirement::RefSnapshotIdMatch {
+ r#ref: <span class="string">"main"</span>.to_string(),
+ snapshot_id: <span class="prelude-val">Some</span>(<span
class="number">3051729675574597004</span>),
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_ok());
+
+ <span class="comment">// Ref exists but does not match
+ </span><span class="kw">let </span>requirement =
TableRequirement::RefSnapshotIdMatch {
+ r#ref: <span class="string">"main"</span>.to_string(),
+ snapshot_id: <span class="prelude-val">Some</span>(<span
class="number">1</span>),
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_err());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_last_assigned_field_id() {
+ <span class="kw">let </span>metadata = metadata();
+
+ <span class="kw">let </span>requirement =
TableRequirement::LastAssignedFieldIdMatch {
+ last_assigned_field_id: <span class="number">1</span>,
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_err());
+
+ <span class="kw">let </span>requirement =
TableRequirement::LastAssignedFieldIdMatch {
+ last_assigned_field_id: <span class="number">0</span>,
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_ok());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_current_schema_id() {
+ <span class="kw">let </span>metadata = metadata();
+
+ <span class="kw">let </span>requirement =
TableRequirement::CurrentSchemaIdMatch {
+ current_schema_id: <span class="number">1</span>,
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_err());
+
+ <span class="kw">let </span>requirement =
TableRequirement::CurrentSchemaIdMatch {
+ current_schema_id: <span class="number">0</span>,
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_ok());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_last_assigned_partition_id() {
+ <span class="kw">let </span>metadata = metadata();
+
+ <span class="kw">let </span>requirement =
TableRequirement::LastAssignedPartitionIdMatch {
+ last_assigned_partition_id: <span class="number">1</span>,
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_err());
+
+ <span class="kw">let </span>requirement =
TableRequirement::LastAssignedPartitionIdMatch {
+ last_assigned_partition_id: <span class="number">0</span>,
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_ok());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_default_spec_id() {
+ <span class="kw">let </span>metadata = metadata();
+
+ <span class="kw">let </span>requirement =
TableRequirement::DefaultSpecIdMatch { default_spec_id: <span class="number">1
</span>};
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_err());
+
+ <span class="kw">let </span>requirement =
TableRequirement::DefaultSpecIdMatch { default_spec_id: <span class="number">0
</span>};
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_ok());
+ }
+
+ <span class="attr">#[test]
+ </span><span class="kw">fn </span>test_check_default_sort_order_id() {
+ <span class="kw">let </span>metadata = metadata();
+
+ <span class="kw">let </span>requirement =
TableRequirement::DefaultSortOrderIdMatch {
+ default_sort_order_id: <span class="number">1</span>,
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_err());
+
+ <span class="kw">let </span>requirement =
TableRequirement::DefaultSortOrderIdMatch {
+ default_sort_order_id: <span class="number">0</span>,
+ };
+ <span class="macro">assert!</span>(requirement.check(<span
class="prelude-val">Some</span>(<span
class="kw-2">&</span>metadata)).is_ok());
+ }
+
<span class="attr">#[test]
</span><span class="kw">fn </span>test_table_uuid() {
test_serde_json(
diff --git a/api/src/iceberg/transaction.rs.html
b/api/src/iceberg/transaction.rs.html
index 31c5eeac..e218e901 100644
--- a/api/src/iceberg/transaction.rs.html
+++ b/api/src/iceberg/transaction.rs.html
@@ -519,7 +519,7 @@
<span class="kw">let </span>requirements = <span
class="macro">vec!</span>[
TableRequirement::CurrentSchemaIdMatch {
- current_schema_id: <span
class="self">self</span>.tx.table.metadata().current_schema().schema_id() <span
class="kw">as </span>i64,
+ current_schema_id: <span
class="self">self</span>.tx.table.metadata().current_schema().schema_id(),
},
TableRequirement::DefaultSortOrderIdMatch {
default_sort_order_id: <span
class="self">self</span>.tx.table.metadata().default_sort_order().order_id,