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 0692e0bb deploy: 11e36c0ae635aac57471f82f9e7e0c12e587aa22
0692e0bb is described below
commit 0692e0bb4cd92f338602446ede76db3cfcebec6b
Author: liurenjie1024 <[email protected]>
AuthorDate: Fri Oct 25 09:42:37 2024 +0000
deploy: 11e36c0ae635aac57471f82f9e7e0c12e587aa22
---
api/iceberg/scan/index.html | 2 +-
api/iceberg/scan/struct.FileScanTask.html | 20 ++---
api/iceberg/scan/struct.TableScan.html | 12 +--
api/iceberg/scan/struct.TableScanBuilder.html | 21 ++---
api/search-index.js | 2 +-
api/search.desc/iceberg/iceberg-desc-0-.js | 2 +-
.../iceberg/arrow/record_batch_transformer.rs.html | 36 +++------
api/src/iceberg/scan.rs.html | 92 ++++++++++++++++++----
8 files changed, 116 insertions(+), 71 deletions(-)
diff --git a/api/iceberg/scan/index.html b/api/iceberg/scan/index.html
index 44c0a1c5..2de90b3c 100644
--- a/api/iceberg/scan/index.html
+++ b/api/iceberg/scan/index.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Table scan
api."><title>iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Reg
[...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Table scan
api."><title>iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Reg
[...]
</div></details><h2 id="structs" class="section-header">Structs<a
href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div
class="item-name"><a class="struct" href="struct.FileScanTask.html"
title="struct iceberg::scan::FileScanTask">FileScanTask</a></div><div
class="desc docblock-short">A task to scan part of file.</div></li><li><div
class="item-name"><a class="struct" href="struct.TableScan.html" title="struct
iceberg::scan::TableScan">TableScan</a></div><div class="des [...]
\ No newline at end of file
diff --git a/api/iceberg/scan/struct.FileScanTask.html
b/api/iceberg/scan/struct.FileScanTask.html
index 62010df8..b0d38f39 100644
--- a/api/iceberg/scan/struct.FileScanTask.html
+++ b/api/iceberg/scan/struct.FileScanTask.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="A task to
scan part of file."><title>FileScanTask in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497
[...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="A task to
scan part of file."><title>FileScanTask in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497
[...]
pub start: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
pub length: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
pub record_count: <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.u64.html">u64</a>>,
@@ -20,16 +20,16 @@ reading the entire data file.</p>
</div><span id="structfield.schema" class="structfield section-header"><a
href="#structfield.schema" class="anchor field">§</a><code>schema: <a
class="type" href="../spec/type.SchemaRef.html" title="type
iceberg::spec::SchemaRef">SchemaRef</a></code></span><div
class="docblock"><p>The schema of the file to scan.</p>
</div><span id="structfield.project_field_ids" class="structfield
section-header"><a href="#structfield.project_field_ids" class="anchor
field">§</a><code>project_field_ids: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"
title="struct alloc::vec::Vec">Vec</a><<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>></code></span><div
class="docblock"><p>The field ids to project.</p>
</div><span id="structfield.predicate" class="structfield section-header"><a
href="#structfield.predicate" class="anchor field">§</a><code>predicate: <a
class="enum"
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"
title="enum core::option::Option">Option</a><<a class="enum"
href="../expr/enum.BoundPredicate.html" title="enum
iceberg::expr::BoundPredicate">BoundPredicate</a>></code></span><div
class="docblock"><p>The predicate to filter.</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-FileScanTask" class="impl"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#909-934">source</a><a
href="#impl-FileScanTask" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.FileScanTask.html" title="struct iceberg::scan:
[...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.project_field_ids" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#916-918">source</a><h4
class="code-header">pub fn <a href="#method.project_field_ids"
class="fn">project_field_ids</a>(&self) -> &[<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>]</h4></section></summary><div
class="docblock"><p>Returns the project fie [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.predicate" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#921-923">source</a><h4
class="code-header">pub fn <a href="#method.predicate"
class="fn">predicate</a>(&self) -> <a class="enum"
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"
title="enum core::option::Option">Option</a><&<a class="enum"
href="../expr/enum.BoundPredicate.html" t [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.schema" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#926-928">source</a><h4
class="code-header">pub fn <a href="#method.schema"
class="fn">schema</a>(&self) -> &<a class="struct"
href="../spec/struct.Schema.html" title="struct
iceberg::spec::Schema">Schema</a></h4></section></summary><div
class="docblock"><p>Returns the schema of this file scan task as a refe [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.schema_ref" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#931-933">source</a><h4
class="code-header">pub fn <a href="#method.schema_ref"
class="fn">schema_ref</a>(&self) -> <a class="type"
href="../spec/type.SchemaRef.html" title="type
iceberg::spec::SchemaRef">SchemaRef</a></h4></section></summary><div
class="docblock"><p>Returns the schema of this file scan task [...]
-</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-FileScanTask" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#881">source</a><a
href="#impl-Clone-for-FileScanTask" class="anchor">§</a><h3
class="code-header">impl <a cla [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.213/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.213/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Parti [...]
+</div><h2 id="implementations" class="section-header">Implementations<a
href="#implementations" class="anchor">§</a></h2><div
id="implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-FileScanTask" class="impl"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#927-952">source</a><a
href="#impl-FileScanTask" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.FileScanTask.html" title="struct iceberg::scan:
[...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.project_field_ids" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#934-936">source</a><h4
class="code-header">pub fn <a href="#method.project_field_ids"
class="fn">project_field_ids</a>(&self) -> &[<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>]</h4></section></summary><div
class="docblock"><p>Returns the project fie [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.predicate" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#939-941">source</a><h4
class="code-header">pub fn <a href="#method.predicate"
class="fn">predicate</a>(&self) -> <a class="enum"
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"
title="enum core::option::Option">Option</a><&<a class="enum"
href="../expr/enum.BoundPredicate.html" t [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.schema" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#944-946">source</a><h4
class="code-header">pub fn <a href="#method.schema"
class="fn">schema</a>(&self) -> &<a class="struct"
href="../spec/struct.Schema.html" title="struct
iceberg::spec::Schema">Schema</a></h4></section></summary><div
class="docblock"><p>Returns the schema of this file scan task as a refe [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.schema_ref" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#949-951">source</a><h4
class="code-header">pub fn <a href="#method.schema_ref"
class="fn">schema_ref</a>(&self) -> <a class="type"
href="../spec/type.SchemaRef.html" title="type
iceberg::spec::SchemaRef">SchemaRef</a></h4></section></summary><div
class="docblock"><p>Returns the schema of this file scan task [...]
+</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-FileScanTask" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#899">source</a><a
href="#impl-Clone-for-FileScanTask" class="anchor">§</a><h3
class="code-header">impl <a cla [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.213/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.213/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-FileScanTask" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#881">source</a><a
href="#impl-Serialize-for-FileScanTask" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.213/serde/ser/trait.Serialize.html"
title="trait serde::ser [...]
- __S: <a class="trait"
href="https://docs.rs/serde/1.0.213/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.213/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section
id="impl-StructuralPartialEq-for-FileScanTask" class="impl"><a class="src
rightside" href="../ [...]
+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-FileScanTask" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#899">source</a><a
href="#impl-Serialize-for-FileScanTask" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.213/serde/ser/trait.Serialize.html"
title="trait serde::ser [...]
+ __S: <a class="trait"
href="https://docs.rs/serde/1.0.213/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.213/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section
id="impl-StructuralPartialEq-for-FileScanTask" class="impl"><a class="src
rightside" href="../ [...]
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/scan/struct.TableScan.html
b/api/iceberg/scan/struct.TableScan.html
index 0c429a13..23966703 100644
--- a/api/iceberg/scan/struct.TableScan.html
+++ b/api/iceberg/scan/struct.TableScan.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Table
scan."><title>TableScan in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCo
[...]
-</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-TableScan" class="impl"><a
class="src rightside"
href="../../src/iceberg/scan.rs.html#336-477">source</a><a
href="#impl-TableScan" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.TableScan.html" title="struct iceberg::scan [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.to_arrow" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#398-409">source</a><h4
class="code-header">pub async fn <a href="#method.to_arrow"
class="fn">to_arrow</a>(&self) -> <a class="type"
href="../type.Result.html" title="type iceberg::Result">Result</a><<a
class="type" href="type.ArrowRecordBatchStream.html" title="type
iceberg::scan::ArrowRecordBatchStream"> [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.column_names" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#412-414">source</a><h4
class="code-header">pub fn <a href="#method.column_names"
class="fn">column_names</a>(&self) -> &[<a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>]</h4></section></summary><div
class="docbl [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.snapshot" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#416-418">source</a><h4
class="code-header">pub fn <a href="#method.snapshot"
class="fn">snapshot</a>(&self) -> &<a class="type"
href="../spec/type.SnapshotRef.html" title="type
iceberg::spec::SnapshotRef">SnapshotRef</a></h4></section></summary><div
class="docblock"><p>Returns a reference to the snapshot [...]
-</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-TableScan" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#295">source</a><a
href="#impl-Debug-for-TableScan" class="anchor">§</a><h3
class="code-header">impl <a class="tr [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Table
scan."><title>TableScan in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCo
[...]
+</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-TableScan" class="impl"><a
class="src rightside"
href="../../src/iceberg/scan.rs.html#353-495">source</a><a
href="#impl-TableScan" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.TableScan.html" title="struct iceberg::scan [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.to_arrow" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#415-426">source</a><h4
class="code-header">pub async fn <a href="#method.to_arrow"
class="fn">to_arrow</a>(&self) -> <a class="type"
href="../type.Result.html" title="type iceberg::Result">Result</a><<a
class="type" href="type.ArrowRecordBatchStream.html" title="type
iceberg::scan::ArrowRecordBatchStream"> [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.column_names" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#429-431">source</a><h4
class="code-header">pub fn <a href="#method.column_names"
class="fn">column_names</a>(&self) -> <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.o [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.snapshot" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#434-436">source</a><h4
class="code-header">pub fn <a href="#method.snapshot"
class="fn">snapshot</a>(&self) -> &<a class="type"
href="../spec/type.SnapshotRef.html" title="type
iceberg::spec::SnapshotRef">SnapshotRef</a></h4></section></summary><div
class="docblock"><p>Returns a reference to the snapshot [...]
+</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-TableScan" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#312">source</a><a
href="#impl-Debug-for-TableScan" class="anchor">§</a><h3
class="code-header">impl <a class="tr [...]
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/scan/struct.TableScanBuilder.html
b/api/iceberg/scan/struct.TableScanBuilder.html
index dd91daea..4f03f7bf 100644
--- a/api/iceberg/scan/struct.TableScanBuilder.html
+++ b/api/iceberg/scan/struct.TableScanBuilder.html
@@ -1,19 +1,20 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Builder to
create table scan."><title>TableScanBuilder in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78
[...]
-</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-TableScanBuilder%3C'a%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#67-292">source</a><a
href="#impl-TableScanBuilder%3C'a%3E" class="anchor">§</a><h3
class="code-header">impl<'a> <a class="struct" href="struct.Tabl [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Builder to
create table scan."><title>TableScanBuilder in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78
[...]
+</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-TableScanBuilder%3C'a%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#67-309">source</a><a
href="#impl-TableScanBuilder%3C'a%3E" class="anchor">§</a><h3
class="code-header">impl<'a> <a class="struct" href="struct.Tabl [...]
to something other than the default</p>
</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_case_sensitive" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#94-97">source</a><h4
class="code-header">pub fn <a href="#method.with_case_sensitive"
class="fn">with_case_sensitive</a>(self, case_sensitive: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)
-> Self</h4></section></summary><div class="docblock"><p>Sets th [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_filter" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#100-105">source</a><h4
class="code-header">pub fn <a href="#method.with_filter"
class="fn">with_filter</a>(self, predicate: <a class="enum"
href="../expr/enum.Predicate.html" title="enum
iceberg::expr::Predicate">Predicate</a>) ->
Self</h4></section></summary><div class="docblock"><p>Specifies a predicate to
u [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.select_all" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#108-111">source</a><h4
class="code-header">pub fn <a href="#method.select_all"
class="fn">select_all</a>(self) -> Self</h4></section></summary><div
class="docblock"><p>Select all columns.</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.select" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#114-120">source</a><h4
class="code-header">pub fn <a href="#method.select" class="fn">select</a>(
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.select_empty" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#114-117">source</a><h4
class="code-header">pub fn <a href="#method.select_empty"
class="fn">select_empty</a>(self) -> Self</h4></section></summary><div
class="docblock"><p>Select empty columns.</p>
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.select" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#120-128">source</a><h4
class="code-header">pub fn <a href="#method.select" class="fn">select</a>(
self,
column_names: impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html"
title="trait
core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = 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="docblock"><p>Select some
columns of the table.</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.snapshot_id" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#123-126">source</a><h4
class="code-header">pub fn <a href="#method.snapshot_id"
class="fn">snapshot_id</a>(self, snapshot_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) ->
Self</h4></section></summary><div class="docblock"><p>Set the snapshot to scan.
When not [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_concurrency_limit" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#130-135">source</a><h4
class="code-header">pub fn <a href="#method.with_concurrency_limit"
class="fn">with_concurrency_limit</a>(self, limit: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Set [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.snapshot_id" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#131-134">source</a><h4
class="code-header">pub fn <a href="#method.snapshot_id"
class="fn">snapshot_id</a>(self, snapshot_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) ->
Self</h4></section></summary><div class="docblock"><p>Set the snapshot to scan.
When not [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_concurrency_limit" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#138-143">source</a><h4
class="code-header">pub fn <a href="#method.with_concurrency_limit"
class="fn">with_concurrency_limit</a>(self, limit: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Set [...]
entries for this scan</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_data_file_concurrency_limit" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#138-141">source</a><h4
class="code-header">pub fn <a href="#method.with_data_file_concurrency_limit"
class="fn">with_data_file_concurrency_limit</a>(self, limit: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summar [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_manifest_entry_concurrency_limit" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#144-147">source</a><h4
class="code-header">pub fn <a
href="#method.with_manifest_entry_concurrency_limit"
class="fn">with_manifest_entry_concurrency_limit</a>(self, limit: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></s [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_row_group_filtering_enabled" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#157-160">source</a><h4
class="code-header">pub fn <a href="#method.with_row_group_filtering_enabled"
class="fn">with_row_group_filtering_enabled</a>(
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_data_file_concurrency_limit" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#146-149">source</a><h4
class="code-header">pub fn <a href="#method.with_data_file_concurrency_limit"
class="fn">with_data_file_concurrency_limit</a>(self, limit: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summar [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_manifest_entry_concurrency_limit" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#152-155">source</a><h4
class="code-header">pub fn <a
href="#method.with_manifest_entry_concurrency_limit"
class="fn">with_manifest_entry_concurrency_limit</a>(self, limit: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></s [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_row_group_filtering_enabled" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#165-168">source</a><h4
class="code-header">pub fn <a href="#method.with_row_group_filtering_enabled"
class="fn">with_row_group_filtering_enabled</a>(
self,
row_group_filtering_enabled: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
) -> Self</h4></section></summary><div class="docblock"><p>Determines
whether to enable row group filtering.
@@ -23,7 +24,7 @@ evaluated against the filter predicate and row groups
that cant contain matching rows will be skipped entirely.</p>
<p>Defaults to enabled, as it generally improves performance or
keeps it the same, with performance degradation unlikely.</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_row_selection_enabled" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#176-179">source</a><h4
class="code-header">pub fn <a href="#method.with_row_selection_enabled"
class="fn">with_row_selection_enabled</a>(self, row_selection_enabled: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)
-> Self</h4></section></summary><d [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_row_selection_enabled" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#184-187">source</a><h4
class="code-header">pub fn <a href="#method.with_row_selection_enabled"
class="fn">with_row_selection_enabled</a>(self, row_selection_enabled: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)
-> Self</h4></section></summary><d [...]
When enabled, if a read is performed with a filter predicate,
then (for row groups that have not been skipped) the page index
for each row group in a parquet file is parsed and evaluated
@@ -36,7 +37,7 @@ gains from the reduced number of rows that need scanning.
It is recommended to experiment with partitioning, sorting, row group size,
page size, and page row limit Iceberg settings on the table being scanned in
order to get the best performance from using row selection.</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.build" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#182-291">source</a><h4
class="code-header">pub fn <a href="#method.build" class="fn">build</a>(self)
-> <a class="type" href="../type.Result.html" title="type
iceberg::Result">Result</a><<a class="struct" href="struct.TableScan.html"
title="struct
iceberg::scan::TableScan">TableScan</a>></h4></section></summar [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.build" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#190-308">source</a><h4
class="code-header">pub fn <a href="#method.build" class="fn">build</a>(self)
-> <a class="type" href="../type.Result.html" title="type
iceberg::Result">Result</a><<a class="struct" href="struct.TableScan.html"
title="struct
iceberg::scan::TableScan">TableScan</a>></h4></section></summar [...]
</div></details></div></details></div><h2 id="synthetic-implementations"
class="section-header">Auto Trait Implementations<a
href="#synthetic-implementations" class="anchor">§</a></h2><div
id="synthetic-implementations-list"><section
id="impl-Freeze-for-TableScanBuilder%3C'a%3E" class="impl"><a
href="#impl-Freeze-for-TableScanBuilder%3C'a%3E" class="anchor">§</a><h3
class="code-header">impl<'a> <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
diff --git a/api/search-index.js b/api/search-index.js
index f3b005bf..472cfc86 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":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
[...]
["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 4967dea1..d4f02a90 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/arrow/record_batch_transformer.rs.html
b/api/src/iceberg/arrow/record_batch_transformer.rs.html
index a8f4f3ef..70042da2 100644
--- a/api/src/iceberg/arrow/record_batch_transformer.rs.html
+++ b/api/src/iceberg/arrow/record_batch_transformer.rs.html
@@ -613,13 +613,6 @@
<a href="#613" id="613">613</a>
<a href="#614" id="614">614</a>
<a href="#615" id="615">615</a>
-<a href="#616" id="616">616</a>
-<a href="#617" id="617">617</a>
-<a href="#618" id="618">618</a>
-<a href="#619" id="619">619</a>
-<a href="#620" id="620">620</a>
-<a href="#621" id="621">621</a>
-<a href="#622" id="622">622</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
@@ -642,7 +635,7 @@
<span class="kw">use </span>arrow_array::{
Array <span class="kw">as </span>ArrowArray, ArrayRef, BinaryArray,
BooleanArray, Float32Array, Float64Array,
- Int32Array, Int64Array, NullArray, RecordBatch, StringArray,
+ Int32Array, Int64Array, NullArray, RecordBatch, RecordBatchOptions,
StringArray,
};
<span class="kw">use </span>arrow_cast::cast;
<span class="kw">use </span>arrow_schema::{
@@ -746,19 +739,7 @@
snapshot_schema: Arc<IcebergSchema>,
projected_iceberg_field_ids: <span class="kw-2">&</span>[i32],
) -> <span class="self">Self </span>{
- <span class="kw">let </span>projected_iceberg_field_ids = <span
class="kw">if </span>projected_iceberg_field_ids.is_empty() {
- <span class="comment">// If the list of field ids is empty, this
indicates that we
- // need to select all fields.
- // Project all fields in table schema order
- </span>snapshot_schema
- .as_struct()
- .fields()
- .iter()
- .map(|field| field.id)
- .collect()
- } <span class="kw">else </span>{
- projected_iceberg_field_ids.to_vec()
- };
+ <span class="kw">let </span>projected_iceberg_field_ids =
projected_iceberg_field_ids.to_vec();
<span class="self">Self </span>{
snapshot_schema,
@@ -776,10 +757,15 @@
<span class="prelude-val">Some</span>(BatchTransform::Modify {
<span class="kw-2">ref </span>target_schema,
<span class="kw-2">ref </span>operations,
- }) => RecordBatch::try_new(
- target_schema.clone(),
- <span
class="self">self</span>.transform_columns(record_batch.columns(),
operations)<span class="question-mark">?</span>,
- )<span class="question-mark">?</span>,
+ }) => {
+ <span class="kw">let </span>options =
+ RecordBatchOptions::default().with_row_count(<span
class="prelude-val">Some</span>(record_batch.num_rows()));
+ RecordBatch::try_new_with_options(
+ target_schema.clone(),
+ <span
class="self">self</span>.transform_columns(record_batch.columns(),
operations)<span class="question-mark">?</span>,
+ <span class="kw-2">&</span>options,
+ )<span class="question-mark">?
+ </span>}
<span class="prelude-val">Some</span>(BatchTransform::ModifySchema
{ target_schema }) => {
record_batch.with_schema(target_schema.clone())<span
class="question-mark">?
</span>}
diff --git a/api/src/iceberg/scan.rs.html b/api/src/iceberg/scan.rs.html
index e8176130..c7653ee8 100644
--- a/api/src/iceberg/scan.rs.html
+++ b/api/src/iceberg/scan.rs.html
@@ -1846,6 +1846,35 @@
<a href="#1846" id="1846">1846</a>
<a href="#1847" id="1847">1847</a>
<a href="#1848" id="1848">1848</a>
+<a href="#1849" id="1849">1849</a>
+<a href="#1850" id="1850">1850</a>
+<a href="#1851" id="1851">1851</a>
+<a href="#1852" id="1852">1852</a>
+<a href="#1853" id="1853">1853</a>
+<a href="#1854" id="1854">1854</a>
+<a href="#1855" id="1855">1855</a>
+<a href="#1856" id="1856">1856</a>
+<a href="#1857" id="1857">1857</a>
+<a href="#1858" id="1858">1858</a>
+<a href="#1859" id="1859">1859</a>
+<a href="#1860" id="1860">1860</a>
+<a href="#1861" id="1861">1861</a>
+<a href="#1862" id="1862">1862</a>
+<a href="#1863" id="1863">1863</a>
+<a href="#1864" id="1864">1864</a>
+<a href="#1865" id="1865">1865</a>
+<a href="#1866" id="1866">1866</a>
+<a href="#1867" id="1867">1867</a>
+<a href="#1868" id="1868">1868</a>
+<a href="#1869" id="1869">1869</a>
+<a href="#1870" id="1870">1870</a>
+<a href="#1871" id="1871">1871</a>
+<a href="#1872" id="1872">1872</a>
+<a href="#1873" id="1873">1873</a>
+<a href="#1874" id="1874">1874</a>
+<a href="#1875" id="1875">1875</a>
+<a href="#1876" id="1876">1876</a>
+<a href="#1877" id="1877">1877</a>
</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
@@ -1899,8 +1928,8 @@
<span class="doccomment">/// Builder to create table scan.
</span><span class="kw">pub struct </span>TableScanBuilder<<span
class="lifetime">'a</span>> {
table: <span class="kw-2">&</span><span class="lifetime">'a
</span>Table,
- <span class="comment">// Empty column names means to select all columns
- </span>column_names: Vec<String>,
+ <span class="comment">// Defaults to none which means select all columns
+ </span>column_names: <span
class="prelude-ty">Option</span><Vec<String>>,
snapshot_id: <span class="prelude-ty">Option</span><i64>,
batch_size: <span class="prelude-ty">Option</span><usize>,
case_sensitive: bool,
@@ -1918,7 +1947,7 @@
<span class="self">Self </span>{
table,
- column_names: <span class="macro">vec!</span>[],
+ column_names: <span class="prelude-val">None</span>,
snapshot_id: <span class="prelude-val">None</span>,
batch_size: <span class="prelude-val">None</span>,
case_sensitive: <span class="bool-val">true</span>,
@@ -1954,16 +1983,24 @@
<span class="doccomment">/// Select all columns.
</span><span class="kw">pub fn </span>select_all(<span class="kw-2">mut
</span><span class="self">self</span>) -> <span class="self">Self </span>{
- <span class="self">self</span>.column_names.clear();
+ <span class="self">self</span>.column_names = <span
class="prelude-val">None</span>;
+ <span class="self">self
+ </span>}
+
+ <span class="doccomment">/// Select empty columns.
+ </span><span class="kw">pub fn </span>select_empty(<span class="kw-2">mut
</span><span class="self">self</span>) -> <span class="self">Self </span>{
+ <span class="self">self</span>.column_names = <span
class="prelude-val">Some</span>(<span class="macro">vec!</span>[]);
<span class="self">self
</span>}
<span class="doccomment">/// Select some columns of the table.
</span><span class="kw">pub fn </span>select(<span class="kw-2">mut
</span><span class="self">self</span>, column_names: <span class="kw">impl
</span>IntoIterator<Item = <span class="kw">impl </span>ToString>) ->
<span class="self">Self </span>{
- <span class="self">self</span>.column_names = column_names
- .into_iter()
- .map(|item| item.to_string())
- .collect();
+ <span class="self">self</span>.column_names = <span
class="prelude-val">Some</span>(
+ column_names
+ .into_iter()
+ .map(|item| item.to_string())
+ .collect(),
+ );
<span class="self">self
</span>}
@@ -2053,8 +2090,8 @@
<span class="kw">let </span>schema = snapshot.schema(<span
class="self">self</span>.table.metadata())<span class="question-mark">?</span>;
<span class="comment">// Check that all column names exist in the
schema.
- </span><span class="kw">if </span>!<span
class="self">self</span>.column_names.is_empty() {
- <span class="kw">for </span>column_name <span class="kw">in
</span><span class="kw-2">&</span><span
class="self">self</span>.column_names {
+ </span><span class="kw">if let </span><span
class="prelude-val">Some</span>(column_names) = <span
class="self">self</span>.column_names.as_ref() {
+ <span class="kw">for </span>column_name <span class="kw">in
</span>column_names {
<span class="kw">if
</span>schema.field_by_name(column_name).is_none() {
<span class="kw">return </span><span
class="prelude-val">Err</span>(Error::new(
ErrorKind::DataInvalid,
@@ -2068,7 +2105,16 @@
}
<span class="kw">let </span><span class="kw-2">mut </span>field_ids =
<span class="macro">vec!</span>[];
- <span class="kw">for </span>column_name <span class="kw">in
</span><span class="kw-2">&</span><span
class="self">self</span>.column_names {
+ <span class="kw">let </span>column_names = <span
class="self">self</span>.column_names.clone().unwrap_or_else(|| {
+ schema
+ .as_struct()
+ .fields()
+ .iter()
+ .map(|f| f.name.clone())
+ .collect()
+ });
+
+ <span class="kw">for </span>column_name <span class="kw">in
</span>column_names.iter() {
<span class="kw">let </span>field_id =
schema.field_id_by_name(column_name).ok_or_else(|| {
Error::new(
ErrorKind::DataInvalid,
@@ -2145,7 +2191,7 @@
plan_context: PlanContext,
batch_size: <span class="prelude-ty">Option</span><usize>,
file_io: FileIO,
- column_names: Vec<String>,
+ column_names: <span
class="prelude-ty">Option</span><Vec<String>>,
<span class="doccomment">/// The maximum number of manifest files that
will be
/// retrieved from [`FileIO`] concurrently
</span>concurrency_limit_manifest_files: usize,
@@ -2257,9 +2303,10 @@
}
<span class="doccomment">/// Returns a reference to the column names of
the table scan.
- </span><span class="kw">pub fn </span>column_names(<span
class="kw-2">&</span><span class="self">self</span>) -> <span
class="kw-2">&</span>[String] {
- <span class="kw-2">&</span><span
class="self">self</span>.column_names
+ </span><span class="kw">pub fn </span>column_names(<span
class="kw-2">&</span><span class="self">self</span>) -> <span
class="prelude-ty">Option</span><<span class="kw-2">&</span>[String]>
{
+ <span class="self">self</span>.column_names.as_deref()
}
+
<span class="doccomment">/// Returns a reference to the snapshot of the
table scan.
</span><span class="kw">pub fn </span>snapshot(<span
class="kw-2">&</span><span class="self">self</span>) -> <span
class="kw-2">&</span>SnapshotRef {
<span class="kw-2">&</span><span
class="self">self</span>.plan_context.snapshot
@@ -3084,7 +3131,10 @@
<span class="kw">let </span>table = TableTestFixture::new().table;
<span class="kw">let </span>table_scan = table.scan().select([<span
class="string">"x"</span>, <span class="string">"y"</span>]).build().unwrap();
- <span class="macro">assert_eq!</span>(<span
class="macro">vec!</span>[<span class="string">"x"</span>, <span
class="string">"y"</span>], table_scan.column_names);
+ <span class="macro">assert_eq!</span>(
+ <span class="prelude-val">Some</span>(<span
class="macro">vec!</span>[<span class="string">"x"</span>.to_string(), <span
class="string">"y"</span>.to_string()]),
+ table_scan.column_names
+ );
<span class="kw">let </span>table_scan = table
.scan()
@@ -3092,7 +3142,7 @@
.select([<span class="string">"z"</span>])
.build()
.unwrap();
- <span class="macro">assert_eq!</span>(<span
class="macro">vec!</span>[<span class="string">"z"</span>],
table_scan.column_names);
+ <span class="macro">assert_eq!</span>(<span
class="prelude-val">Some</span>(<span class="macro">vec!</span>[<span
class="string">"z"</span>.to_string()]), table_scan.column_names);
}
<span class="attr">#[test]
@@ -3100,7 +3150,7 @@
<span class="kw">let </span>table = TableTestFixture::new().table;
<span class="kw">let </span>table_scan =
table.scan().select_all().build().unwrap();
- <span class="macro">assert!</span>(table_scan.column_names.is_empty());
+ <span class="macro">assert!</span>(table_scan.column_names.is_none());
}
<span class="attr">#[test]
@@ -3272,6 +3322,14 @@
<span class="kw">let </span>col2 = batches[<span
class="number">0</span>].column_by_name(<span
class="string">"z"</span>).unwrap();
<span class="kw">let </span>int64_arr =
col2.as_any().downcast_ref::<Int64Array>().unwrap();
<span class="macro">assert_eq!</span>(int64_arr.value(<span
class="number">0</span>), <span class="number">3</span>);
+
+ <span class="comment">// test empty scan
+ </span><span class="kw">let </span>table_scan =
fixture.table.scan().select_empty().build().unwrap();
+ <span class="kw">let </span>batch_stream = table_scan.to_arrow().<span
class="kw">await</span>.unwrap();
+ <span class="kw">let </span>batches: Vec<<span
class="kw">_</span>> = batch_stream.try_collect().<span
class="kw">await</span>.unwrap();
+
+ <span class="macro">assert_eq!</span>(batches[<span
class="number">0</span>].num_columns(), <span class="number">0</span>);
+ <span class="macro">assert_eq!</span>(batches[<span
class="number">0</span>].num_rows(), <span class="number">1024</span>);
}
<span class="attr">#[tokio::test]