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 1fe1612  deploy: 257cdbd64b4f3bff553a1301a79247edf057b93c
1fe1612 is described below

commit 1fe1612c101355f31a1154269f58725b59ce2f44
Author: Xuanwo <[email protected]>
AuthorDate: Tue Aug 13 15:25:28 2024 +0000

    deploy: 257cdbd64b4f3bff553a1301a79247edf057b93c
---
 api/iceberg/arrow/fn.arrow_schema_to_schema.html |  2 +-
 api/iceberg/arrow/fn.schema_to_arrow_schema.html |  2 +-
 api/iceberg/arrow/trait.ArrowSchemaVisitor.html  | 32 ++++++------
 api/iceberg/scan/index.html                      |  2 +-
 api/iceberg/scan/struct.FileScanTask.html        | 14 ++---
 api/iceberg/scan/struct.TableScan.html           |  8 +--
 api/iceberg/spec/struct.Schema.html              |  2 +-
 api/src/iceberg/arrow/schema.rs.html             | 66 ++++++++++++++++++++----
 api/src/iceberg/scan.rs.html                     | 36 ++++++++++---
 9 files changed, 116 insertions(+), 48 deletions(-)

diff --git a/api/iceberg/arrow/fn.arrow_schema_to_schema.html 
b/api/iceberg/arrow/fn.arrow_schema_to_schema.html
index ee47042..98c5961 100644
--- a/api/iceberg/arrow/fn.arrow_schema_to_schema.html
+++ b/api/iceberg/arrow/fn.arrow_schema_to_schema.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="Convert 
Arrow schema to ceberg schema."><title>arrow_schema_to_schema in iceberg::arrow 
- 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa
 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Convert 
Arrow schema to ceberg schema."><title>arrow_schema_to_schema in iceberg::arrow 
- 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa
 [...]
 </div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg/arrow/fn.schema_to_arrow_schema.html 
b/api/iceberg/arrow/fn.schema_to_arrow_schema.html
index c7eac22..8dc74f8 100644
--- a/api/iceberg/arrow/fn.schema_to_arrow_schema.html
+++ b/api/iceberg/arrow/fn.schema_to_arrow_schema.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="Convert 
iceberg schema to an arrow schema."><title>schema_to_arrow_schema in 
iceberg::arrow - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi
 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Convert 
iceberg schema to an arrow schema."><title>schema_to_arrow_schema in 
iceberg::arrow - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi
 [...]
 </div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg/arrow/trait.ArrowSchemaVisitor.html 
b/api/iceberg/arrow/trait.ArrowSchemaVisitor.html
index c21c9f2..64dc983 100644
--- a/api/iceberg/arrow/trait.ArrowSchemaVisitor.html
+++ b/api/iceberg/arrow/trait.ArrowSchemaVisitor.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 post 
order arrow schema visitor."><title>ArrowSchemaVisitor in iceberg::arrow - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu
 [...]
+<!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 post 
order arrow schema visitor."><title>ArrowSchemaVisitor in iceberg::arrow - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu
 [...]
     type <a href="#associatedtype.T" class="associatedtype">T</a>;
     type <a href="#associatedtype.U" class="associatedtype">U</a>;
 
@@ -33,28 +33,28 @@
 <span class="item-spacer"></span>    fn <a href="#method.after_map_value" 
class="fn">after_map_value</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.unit.html";>()</a>&gt; { 
... }
 </details>}</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>A post order arrow schema visitor.</p>
 <p>For order of methods called, please refer to 
[<code>visit_schema</code>].</p>
-</div></details><h2 id="required-associated-types" 
class="section-header">Required Associated Types<a 
href="#required-associated-types" class="anchor">§</a></h2><div 
class="methods"><details class="toggle" open><summary><section 
id="associatedtype.T" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#48">source</a><h4 
class="code-header">type <a href="#associatedtype.T" 
class="associatedtype">T</a></h4></section></summary><div 
class="docblock"><p>Return  [...]
-</div></details><details class="toggle" open><summary><section 
id="associatedtype.U" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#51">source</a><h4 
class="code-header">type <a href="#associatedtype.U" 
class="associatedtype">U</a></h4></section></summary><div 
class="docblock"><p>Return type of this visitor on arrow schema.</p>
-</div></details></div><h2 id="required-methods" 
class="section-header">Required Methods<a href="#required-methods" 
class="anchor">§</a></h2><div class="methods"><details class="toggle 
method-toggle" open><summary><section id="tymethod.schema" class="method"><a 
class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#94">source</a><h4 
class="code-header">fn <a href="#tymethod.schema" class="fn">schema</a>(
+</div></details><h2 id="required-associated-types" 
class="section-header">Required Associated Types<a 
href="#required-associated-types" class="anchor">§</a></h2><div 
class="methods"><details class="toggle" open><summary><section 
id="associatedtype.T" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#50">source</a><h4 
class="code-header">type <a href="#associatedtype.T" 
class="associatedtype">T</a></h4></section></summary><div 
class="docblock"><p>Return  [...]
+</div></details><details class="toggle" open><summary><section 
id="associatedtype.U" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#53">source</a><h4 
class="code-header">type <a href="#associatedtype.U" 
class="associatedtype">U</a></h4></section></summary><div 
class="docblock"><p>Return type of this visitor on arrow schema.</p>
+</div></details></div><h2 id="required-methods" 
class="section-header">Required Methods<a href="#required-methods" 
class="anchor">§</a></h2><div class="methods"><details class="toggle 
method-toggle" open><summary><section id="tymethod.schema" class="method"><a 
class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#96">source</a><h4 
class="code-header">fn <a href="#tymethod.schema" class="fn">schema</a>(
     &amp;mut self,
     schema: &amp;ArrowSchema,
     values: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;Self::<a class="associatedtype" 
href="trait.ArrowSchemaVisitor.html#associatedtype.T" title="type 
iceberg::arrow::ArrowSchemaVisitor::T">T</a>&gt;,
 ) -&gt; <a class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;Self::<a class="associatedtype" 
href="trait.ArrowSchemaVisitor.html#associatedtype.U" title="type 
iceberg::arrow::ArrowSchemaVisitor::U">U</a>&gt;</h4></section></summary><div 
class="docblock"><p>Called after schema’s type visited.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.struct" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#97">source</a><h4 
class="code-header">fn <a href="#tymethod.struct" 
class="fn">struct</a>(&amp;mut self, fields: &amp;Fields, results: <a 
class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;Self::<a class="associatedtype" 
href="trait.Arr [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.list" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#100">source</a><h4 
class="code-header">fn <a href="#tymethod.list" class="fn">list</a>(&amp;mut 
self, list: &amp;DataType, value: Self::<a class="associatedtype" 
href="trait.ArrowSchemaVisitor.html#associatedtype.T" title="type 
iceberg::arrow::ArrowSchemaVisitor::T">T</a>) -&gt; <a class="type" 
href="../type.R [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.map" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#103">source</a><h4 
class="code-header">fn <a href="#tymethod.map" class="fn">map</a>(
+</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.struct" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#99">source</a><h4 
class="code-header">fn <a href="#tymethod.struct" 
class="fn">struct</a>(&amp;mut self, fields: &amp;Fields, results: <a 
class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;Self::<a class="associatedtype" 
href="trait.Arr [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.list" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#102">source</a><h4 
class="code-header">fn <a href="#tymethod.list" class="fn">list</a>(&amp;mut 
self, list: &amp;DataType, value: Self::<a class="associatedtype" 
href="trait.ArrowSchemaVisitor.html#associatedtype.T" title="type 
iceberg::arrow::ArrowSchemaVisitor::T">T</a>) -&gt; <a class="type" 
href="../type.R [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.map" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#105">source</a><h4 
class="code-header">fn <a href="#tymethod.map" class="fn">map</a>(
     &amp;mut self,
     map: &amp;DataType,
     key_value: Self::<a class="associatedtype" 
href="trait.ArrowSchemaVisitor.html#associatedtype.T" title="type 
iceberg::arrow::ArrowSchemaVisitor::T">T</a>,
     value: Self::<a class="associatedtype" 
href="trait.ArrowSchemaVisitor.html#associatedtype.T" title="type 
iceberg::arrow::ArrowSchemaVisitor::T">T</a>,
 ) -&gt; <a class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;Self::<a class="associatedtype" 
href="trait.ArrowSchemaVisitor.html#associatedtype.T" title="type 
iceberg::arrow::ArrowSchemaVisitor::T">T</a>&gt;</h4></section></summary><div 
class="docblock"><p>Called after map’s key and value fields visited.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.primitive" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#106">source</a><h4 
class="code-header">fn <a href="#tymethod.primitive" 
class="fn">primitive</a>(&amp;mut self, p: &amp;DataType) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;Self::<a 
class="associatedtype" href="trait.ArrowSchemaVisitor.html#associatedtype.T 
[...]
-</div></details></div><h2 id="provided-methods" 
class="section-header">Provided Methods<a href="#provided-methods" 
class="anchor">§</a></h2><div class="methods"><details class="toggle 
method-toggle" open><summary><section id="method.before_field" 
class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#54-56">source</a><h4 
class="code-header">fn <a href="#method.before_field" 
class="fn">before_field</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type"  [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.after_field" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#59-61">source</a><h4 
class="code-header">fn <a href="#method.after_field" 
class="fn">after_field</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.uni [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.before_list_element" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#64-66">source</a><h4 
class="code-header">fn <a href="#method.before_list_element" 
class="fn">before_list_element</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/n [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.after_list_element" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#69-71">source</a><h4 
class="code-header">fn <a href="#method.after_list_element" 
class="fn">after_list_element</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nigh [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.before_map_key" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#74-76">source</a><h4 
class="code-header">fn <a href="#method.before_map_key" 
class="fn">before_map_key</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/prim [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.after_map_key" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#79-81">source</a><h4 
class="code-header">fn <a href="#method.after_map_key" 
class="fn">after_map_key</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primiti [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.before_map_value" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#84-86">source</a><h4 
class="code-header">fn <a href="#method.before_map_value" 
class="fn">before_map_value</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/st [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.after_map_value" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#89-91">source</a><h4 
class="code-header">fn <a href="#method.after_map_value" 
class="fn">after_map_value</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/p [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.primitive" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#108">source</a><h4 
class="code-header">fn <a href="#tymethod.primitive" 
class="fn">primitive</a>(&amp;mut self, p: &amp;DataType) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;Self::<a 
class="associatedtype" href="trait.ArrowSchemaVisitor.html#associatedtype.T 
[...]
+</div></details></div><h2 id="provided-methods" 
class="section-header">Provided Methods<a href="#provided-methods" 
class="anchor">§</a></h2><div class="methods"><details class="toggle 
method-toggle" open><summary><section id="method.before_field" 
class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#56-58">source</a><h4 
class="code-header">fn <a href="#method.before_field" 
class="fn">before_field</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type"  [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.after_field" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#61-63">source</a><h4 
class="code-header">fn <a href="#method.after_field" 
class="fn">after_field</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.uni [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.before_list_element" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#66-68">source</a><h4 
class="code-header">fn <a href="#method.before_list_element" 
class="fn">before_list_element</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/n [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.after_list_element" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#71-73">source</a><h4 
class="code-header">fn <a href="#method.after_list_element" 
class="fn">after_list_element</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nigh [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.before_map_key" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#76-78">source</a><h4 
class="code-header">fn <a href="#method.before_map_key" 
class="fn">before_map_key</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/prim [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.after_map_key" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#81-83">source</a><h4 
class="code-header">fn <a href="#method.after_map_key" 
class="fn">after_map_key</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primiti [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.before_map_value" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#86-88">source</a><h4 
class="code-header">fn <a href="#method.before_map_value" 
class="fn">before_map_value</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/st [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.after_map_value" class="method"><a class="src rightside" 
href="../../src/iceberg/arrow/schema.rs.html#91-93">source</a><h4 
class="code-header">fn <a href="#method.after_map_value" 
class="fn">after_map_value</a>(&amp;mut self, _field: &amp;Field) -&gt; <a 
class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/p [...]
 </div></details></div><h2 id="implementors" 
class="section-header">Implementors<a href="#implementors" 
class="anchor">§</a></h2><div id="implementors-list"></div><script 
src="../../trait.impl/iceberg/arrow/schema/trait.ArrowSchemaVisitor.js" 
async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg/scan/index.html b/api/iceberg/scan/index.html
index d337328..f53f3fa 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 8ed0198..d11519f 100644
--- a/api/iceberg/scan/struct.FileScanTask.html
+++ b/api/iceberg/scan/struct.FileScanTask.html
@@ -1,10 +1,10 @@
-<!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
 [...]
-</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-FileScanTask" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/scan.rs.html#827-847">source</a><a 
href="#impl-FileScanTask" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.FileScanTask.html" title="struct iceb [...]
-</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#834-836">source</a><h4 
class="code-header">pub fn <a href="#method.project_field_ids" 
class="fn">project_field_ids</a>(&amp;self) -&gt; &amp;[<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>]</h4></section></summary><div
 class="docblock"><p>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#839-841">source</a><h4 
class="code-header">pub fn <a href="#method.predicate" 
class="fn">predicate</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;&amp;<a class="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#844-846">source</a><h4 
class="code-header">pub fn <a href="#method.schema" 
class="fn">schema</a>(&amp;self) -&gt; &amp;<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 id of this file scan task.</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-FileScanTask" class="impl"><a class="src rightside" 
href="../../src/iceberg/scan.rs.html#816">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.207/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Seria [...]
+<!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
 [...]
+</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-FileScanTask" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/scan.rs.html#839-859">source</a><a 
href="#impl-FileScanTask" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.FileScanTask.html" title="struct iceb [...]
+</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#846-848">source</a><h4 
class="code-header">pub fn <a href="#method.project_field_ids" 
class="fn">project_field_ids</a>(&amp;self) -&gt; &amp;[<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>]</h4></section></summary><div
 class="docblock"><p>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#851-853">source</a><h4 
class="code-header">pub fn <a href="#method.predicate" 
class="fn">predicate</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;&amp;<a class="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#856-858">source</a><h4 
class="code-header">pub fn <a href="#method.schema" 
class="fn">schema</a>(&amp;self) -&gt; &amp;<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 id of this file scan task.</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-FileScanTask" class="impl"><a class="src rightside" 
href="../../src/iceberg/scan.rs.html#828">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.207/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Seria [...]
     __S: <a class="trait" 
href="https://docs.rs/serde/1.0.207/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.207/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details></div><h2 
id="synthetic-implementations" class="section-header">Auto Trait 
Implementations<a href="#syn [...]
     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/iceberg/scan/struct.TableScan.html 
b/api/iceberg/scan/struct.TableScan.html
index 7dc34c6..011d460 100644
--- a/api/iceberg/scan/struct.TableScan.html
+++ b/api/iceberg/scan/struct.TableScan.html
@@ -1,8 +1,8 @@
 <!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#290-416">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#340-348">source</a><h4 
class="code-header">pub async fn <a href="#method.to_arrow" 
class="fn">to_arrow</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<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#351-353">source</a><h4 
class="code-header">pub fn <a href="#method.column_names" 
class="fn">column_names</a>(&amp;self) -&gt; &amp;[<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#355-357">source</a><h4 
class="code-header">pub fn <a href="#method.snapshot" 
class="fn">snapshot</a>(&amp;self) -&gt; &amp;<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><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#290-428">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#352-360">source</a><h4 
class="code-header">pub async fn <a href="#method.to_arrow" 
class="fn">to_arrow</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<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#363-365">source</a><h4 
class="code-header">pub fn <a href="#method.column_names" 
class="fn">column_names</a>(&amp;self) -&gt; &amp;[<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#367-369">source</a><h4 
class="code-header">pub fn <a href="#method.snapshot" 
class="fn">snapshot</a>(&amp;self) -&gt; &amp;<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#256">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:/ [...]
diff --git a/api/iceberg/spec/struct.Schema.html 
b/api/iceberg/spec/struct.Schema.html
index 6510ac6..601a398 100644
--- a/api/iceberg/spec/struct.Schema.html
+++ b/api/iceberg/spec/struct.Schema.html
@@ -21,7 +21,7 @@
     __D: <a class="trait" 
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.207/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.207/serde/ser/trait.Serialize.html"; 
title="trait serde::ser::Seri [...]
-    __S: <a class="trait" 
href="https://docs.rs/serde/1.0.207/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.207/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.207/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.207/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/src/iceberg/arrow/schema.rs.html 
b/api/src/iceberg/arrow/schema.rs.html
index 17cc536..b677d6d 100644
--- a/api/src/iceberg/arrow/schema.rs.html
+++ b/api/src/iceberg/arrow/schema.rs.html
@@ -1234,6 +1234,28 @@
 <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>
 </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
@@ -1256,10 +1278,12 @@
 </span><span class="kw">use </span>std::collections::HashMap;
 <span class="kw">use </span>std::sync::Arc;
 
-<span class="kw">use 
</span>arrow_array::types::{validate_decimal_precision_and_scale, 
Decimal128Type};
+<span class="kw">use </span>arrow_array::types::{
+    validate_decimal_precision_and_scale, Decimal128Type, 
TimestampMicrosecondType,
+};
 <span class="kw">use </span>arrow_array::{
     BooleanArray, Datum <span class="kw">as </span>ArrowDatum, Float32Array, 
Float64Array, Int32Array, Int64Array,
-    StringArray,
+    PrimitiveArray, Scalar, StringArray, TimestampMicrosecondArray,
 };
 <span class="kw">use </span>arrow_schema::{DataType, Field, Fields, Schema 
<span class="kw">as </span>ArrowSchema, TimeUnit};
 <span class="kw">use </span>bitvec::macros::internal::funty::Fundamental;
@@ -1842,18 +1866,38 @@
 
 <span class="doccomment">/// Convert Iceberg Datum to Arrow Datum.
 </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span 
class="kw">fn </span>get_arrow_datum(datum: <span 
class="kw-2">&amp;</span>Datum) -&gt; <span 
class="prelude-ty">Result</span>&lt;Box&lt;<span class="kw">dyn 
</span>ArrowDatum + Send&gt;&gt; {
-    <span class="kw">match </span>datum.literal() {
-        PrimitiveLiteral::Boolean(value) =&gt; <span 
class="prelude-val">Ok</span>(Box::new(BooleanArray::new_scalar(<span 
class="kw-2">*</span>value))),
-        PrimitiveLiteral::Int(value) =&gt; <span 
class="prelude-val">Ok</span>(Box::new(Int32Array::new_scalar(<span 
class="kw-2">*</span>value))),
-        PrimitiveLiteral::Long(value) =&gt; <span 
class="prelude-val">Ok</span>(Box::new(Int64Array::new_scalar(<span 
class="kw-2">*</span>value))),
-        PrimitiveLiteral::Float(value) =&gt; <span 
class="prelude-val">Ok</span>(Box::new(Float32Array::new_scalar(value.as_f32()))),
-        PrimitiveLiteral::Double(value) =&gt; <span 
class="prelude-val">Ok</span>(Box::new(Float64Array::new_scalar(value.as_f64()))),
-        PrimitiveLiteral::String(value) =&gt; <span 
class="prelude-val">Ok</span>(Box::new(StringArray::new_scalar(value.as_str()))),
-        l =&gt; <span class="prelude-val">Err</span>(Error::new(
+    <span class="kw">match </span>(datum.data_type(), datum.literal()) {
+        (PrimitiveType::Boolean, PrimitiveLiteral::Boolean(value)) =&gt; {
+            <span 
class="prelude-val">Ok</span>(Box::new(BooleanArray::new_scalar(<span 
class="kw-2">*</span>value)))
+        }
+        (PrimitiveType::Int, PrimitiveLiteral::Int(value)) =&gt; {
+            <span 
class="prelude-val">Ok</span>(Box::new(Int32Array::new_scalar(<span 
class="kw-2">*</span>value)))
+        }
+        (PrimitiveType::Long, PrimitiveLiteral::Long(value)) =&gt; {
+            <span 
class="prelude-val">Ok</span>(Box::new(Int64Array::new_scalar(<span 
class="kw-2">*</span>value)))
+        }
+        (PrimitiveType::Float, PrimitiveLiteral::Float(value)) =&gt; {
+            <span 
class="prelude-val">Ok</span>(Box::new(Float32Array::new_scalar(value.as_f32())))
+        }
+        (PrimitiveType::Double, PrimitiveLiteral::Double(value)) =&gt; {
+            <span 
class="prelude-val">Ok</span>(Box::new(Float64Array::new_scalar(value.as_f64())))
+        }
+        (PrimitiveType::String, PrimitiveLiteral::String(value)) =&gt; {
+            <span 
class="prelude-val">Ok</span>(Box::new(StringArray::new_scalar(value.as_str())))
+        }
+        (PrimitiveType::Timestamp, PrimitiveLiteral::Long(value)) =&gt; {
+            <span 
class="prelude-val">Ok</span>(Box::new(TimestampMicrosecondArray::new_scalar(<span
 class="kw-2">*</span>value)))
+        }
+        (PrimitiveType::Timestamptz, PrimitiveLiteral::Long(value)) =&gt; 
<span class="prelude-val">Ok</span>(Box::new(Scalar::new(
+            PrimitiveArray::&lt;TimestampMicrosecondType&gt;::new(<span 
class="macro">vec!</span>[<span class="kw-2">*</span>value; <span 
class="number">1</span>].into(), <span class="prelude-val">None</span>)
+                .with_timezone(<span class="string">"UTC"</span>),
+        ))),
+
+        (typ, <span class="kw">_</span>) =&gt; <span 
class="prelude-val">Err</span>(Error::new(
             ErrorKind::FeatureUnsupported,
             <span class="macro">format!</span>(
                 <span class="string">"Converting datum from type {:?} to arrow 
not supported yet."</span>,
-                l
+                typ
             ),
         )),
     }
diff --git a/api/src/iceberg/scan.rs.html b/api/src/iceberg/scan.rs.html
index baf1fa5..9c2f892 100644
--- a/api/src/iceberg/scan.rs.html
+++ b/api/src/iceberg/scan.rs.html
@@ -1562,6 +1562,18 @@
 <a href="#1562" id="1562">1562</a>
 <a href="#1563" id="1563">1563</a>
 <a href="#1564" id="1564">1564</a>
+<a href="#1565" id="1565">1565</a>
+<a href="#1566" id="1566">1566</a>
+<a href="#1567" id="1567">1567</a>
+<a href="#1568" id="1568">1568</a>
+<a href="#1569" id="1569">1569</a>
+<a href="#1570" id="1570">1570</a>
+<a href="#1571" id="1571">1571</a>
+<a href="#1572" id="1572">1572</a>
+<a href="#1573" id="1573">1573</a>
+<a href="#1574" id="1574">1574</a>
+<a href="#1575" id="1575">1575</a>
+<a href="#1576" id="1576">1576</a>
 </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
@@ -1872,18 +1884,26 @@
             </span>.plan_context
             .build_manifest_file_contexts(manifest_list, 
manifest_entry_ctx_tx)<span class="question-mark">?</span>;
 
+        <span class="kw">let </span><span class="kw-2">mut 
</span>channel_for_manifest_error = file_scan_task_tx.clone();
+
         <span class="comment">// Concurrently load all [`Manifest`]s and 
stream their [`ManifestEntry`]s
         </span>spawn(<span class="kw">async move </span>{
-            futures::stream::iter(manifest_file_contexts)
+            <span class="kw">let </span>result = 
futures::stream::iter(manifest_file_contexts)
                 .try_for_each_concurrent(concurrency_limit_manifest_files, 
|ctx| <span class="kw">async move </span>{
                     ctx.fetch_manifest_and_stream_manifest_entries().<span 
class="kw">await
                 </span>})
-                .<span class="kw">await
-        </span>});
+                .<span class="kw">await</span>;
+
+            <span class="kw">if let </span><span 
class="prelude-val">Err</span>(error) = result {
+                <span class="kw">let _ </span>= 
channel_for_manifest_error.send(<span 
class="prelude-val">Err</span>(error)).<span class="kw">await</span>;
+            }
+        });
+
+        <span class="kw">let </span><span class="kw-2">mut 
</span>channel_for_manifest_entry_error = file_scan_task_tx.clone();
 
         <span class="comment">// Process the [`ManifestEntry`] stream in 
parallel
         </span>spawn(<span class="kw">async move </span>{
-            manifest_entry_ctx_rx
+            <span class="kw">let </span>result = manifest_entry_ctx_rx
                 .map(|me_ctx| <span class="prelude-val">Ok</span>((me_ctx, 
file_scan_task_tx.clone())))
                 .try_for_each_concurrent(
                     concurrency_limit_manifest_entries,
@@ -1894,8 +1914,12 @@
                         .<span class="kw">await
                     </span>},
                 )
-                .<span class="kw">await
-        </span>});
+                .<span class="kw">await</span>;
+
+            <span class="kw">if let </span><span 
class="prelude-val">Err</span>(error) = result {
+                <span class="kw">let _ </span>= 
channel_for_manifest_entry_error.send(<span 
class="prelude-val">Err</span>(error)).<span class="kw">await</span>;
+            }
+        });
 
         <span class="kw">return </span><span 
class="prelude-val">Ok</span>(file_scan_task_rx.boxed());
     }

Reply via email to