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 88635dd3 deploy: 5cdd6eb1d6f7352e6da6e63406bd488c7d322858
88635dd3 is described below
commit 88635dd38d2dcb76928e9f98866d1f7722b915e3
Author: liurenjie1024 <[email protected]>
AuthorDate: Mon Mar 31 13:23:15 2025 +0000
deploy: 5cdd6eb1d6f7352e6da6e63406bd488c7d322858
---
api/help.html | 2 +-
api/iceberg/inspect/struct.SnapshotsTable.html | 8 +-
api/search-index.js | 2 +-
api/search.desc/iceberg/iceberg-desc-0-.js | 2 +-
api/settings.html | 2 +-
api/src/iceberg/inspect/snapshots.rs.html | 144 +++++++++++++++++--------
6 files changed, 107 insertions(+), 53 deletions(-)
diff --git a/api/help.html b/api/help.html
index 21943ce1..b3855f23 100644
--- a/api/help.html
+++ b/api/help.html
@@ -1 +1 @@
-<!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="Documentation for
Rustdoc"><title>Help</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-Regular-5
[...]
\ No newline at end of file
+<!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="Documentation for
Rustdoc"><title>Help</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-Regular-5
[...]
\ No newline at end of file
diff --git a/api/iceberg/inspect/struct.SnapshotsTable.html
b/api/iceberg/inspect/struct.SnapshotsTable.html
index 8d287dba..18284ec6 100644
--- a/api/iceberg/inspect/struct.SnapshotsTable.html
+++ b/api/iceberg/inspect/struct.SnapshotsTable.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Snapshots
table."><title>SnapshotsTable in iceberg::inspect -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w
[...]
-</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-SnapshotsTable%3C'a%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/inspect/snapshots.rs.html#35-108">source</a><a
href="#impl-SnapshotsTable%3C'a%3E" class="anchor">§</a><h3
class="code-header">impl<'a> <a class="struct" href="st [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.schema" class="method"><a class="src rightside"
href="../../src/iceberg/inspect/snapshots.rs.html#42-72">source</a><h4
class="code-header">pub fn <a href="#method.schema"
class="fn">schema</a>(&self) -> Schema</h4></section></summary><div
class="docblock"><p>Returns the schema of the snapshots table.</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.scan" class="method"><a class="src rightside"
href="../../src/iceberg/inspect/snapshots.rs.html#75-107">source</a><h4
class="code-header">pub async fn <a href="#method.scan"
class="fn">scan</a>(&self) -> <a class="type" href="../type.Result.html"
title="type iceberg::Result">Result</a><<a class="type"
href="../scan/type.ArrowRecordBatchStream.html" title="type
iceberg::scan::ArrowRecordBatch [...]
+<!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="Snapshots
table."><title>SnapshotsTable in iceberg::inspect -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w
[...]
+</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-SnapshotsTable%3C'a%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/inspect/snapshots.rs.html#41-135">source</a><a
href="#impl-SnapshotsTable%3C'a%3E" class="anchor">§</a><h3
class="code-header">impl<'a> <a class="struct" href="st [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.schema" class="method"><a class="src rightside"
href="../../src/iceberg/inspect/snapshots.rs.html#48-79">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 iceberg schema of the snapshots t [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.scan" class="method"><a class="src rightside"
href="../../src/iceberg/inspect/snapshots.rs.html#82-134">source</a><h4
class="code-header">pub async fn <a href="#method.scan"
class="fn">scan</a>(&self) -> <a class="type" href="../type.Result.html"
title="type iceberg::Result">Result</a><<a class="type"
href="../scan/type.ArrowRecordBatchStream.html" title="type
iceberg::scan::ArrowRecordBatch [...]
</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-SnapshotsTable%3C'a%3E" class="impl"><a
href="#impl-Freeze-for-SnapshotsTable%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" titl
[...]
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 f104c727..14be72c3 100644
--- a/api/search-index.js
+++ b/api/search-index.js
@@ -1,5 +1,5 @@
var searchIndex = new Map(JSON.parse('[\
-["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPPPPIPPPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFFFFKSRRSNNNNNNNNHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNMNMHMNNNNNNNNNNNNNNHNNNNNNNNNNNPPPPPPPPFKRGFIPPPPPPPPFP
[...]
+["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPPPPIPPPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFFFFKSRRSNNNNNNNNHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNMNMHMNNNNNNNNNNNNNNHNNNNNNNNNNNPPPPPPPPFKRGFIPPPPPPPPFP
[...]
["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 41533b88..d900b73d 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/settings.html b/api/settings.html
index 8bb04340..0b4d7eab 100644
--- a/api/settings.html
+++ b/api/settings.html
@@ -1 +1 @@
-<!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="Settings
of
Rustdoc"><title>Settings</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-Regular-562
[...]
\ No newline at end of file
+<!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="Settings
of
Rustdoc"><title>Settings</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-Regular-562
[...]
\ No newline at end of file
diff --git a/api/src/iceberg/inspect/snapshots.rs.html
b/api/src/iceberg/inspect/snapshots.rs.html
index 9904f033..213fd592 100644
--- a/api/src/iceberg/inspect/snapshots.rs.html
+++ b/api/src/iceberg/inspect/snapshots.rs.html
@@ -187,6 +187,33 @@
<a href="#187" id="187">187</a>
<a href="#188" id="188">188</a>
<a href="#189" id="189">189</a>
+<a href="#190" id="190">190</a>
+<a href="#191" id="191">191</a>
+<a href="#192" id="192">192</a>
+<a href="#193" id="193">193</a>
+<a href="#194" id="194">194</a>
+<a href="#195" id="195">195</a>
+<a href="#196" id="196">196</a>
+<a href="#197" id="197">197</a>
+<a href="#198" id="198">198</a>
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a>
+<a href="#202" id="202">202</a>
+<a href="#203" id="203">203</a>
+<a href="#204" id="204">204</a>
+<a href="#205" id="205">205</a>
+<a href="#206" id="206">206</a>
+<a href="#207" id="207">207</a>
+<a href="#208" id="208">208</a>
+<a href="#209" id="209">209</a>
+<a href="#210" id="210">210</a>
+<a href="#211" id="211">211</a>
+<a href="#212" id="212">212</a>
+<a href="#213" id="213">213</a>
+<a href="#214" id="214">214</a>
+<a href="#215" id="215">215</a>
+<a href="#216" id="216">216</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
@@ -204,15 +231,21 @@
// specific language governing permissions and limitations
// under the License.
-</span><span class="kw">use </span>std::sync::Arc;
+</span><span class="kw">use </span>std::collections::HashMap;
+<span class="kw">use </span>std::sync::Arc;
-<span class="kw">use </span>arrow_array::builder::{MapBuilder,
PrimitiveBuilder, StringBuilder};
-<span class="kw">use </span>arrow_array::types::{Int64Type,
TimestampMillisecondType};
+<span class="kw">use </span>arrow_array::builder::{MapBuilder, MapFieldNames,
PrimitiveBuilder, StringBuilder};
+<span class="kw">use </span>arrow_array::types::{Int64Type,
TimestampMicrosecondType};
<span class="kw">use </span>arrow_array::RecordBatch;
-<span class="kw">use </span>arrow_schema::{DataType, Field, Schema, TimeUnit};
+<span class="kw">use </span>arrow_schema::{DataType, Field};
<span class="kw">use </span>futures::{stream, StreamExt};
+<span class="kw">use </span>parquet::arrow::PARQUET_FIELD_ID_META_KEY;
+<span class="kw">use </span><span
class="kw">crate</span>::arrow::{schema_to_arrow_schema,
DEFAULT_MAP_FIELD_NAME};
<span class="kw">use </span><span
class="kw">crate</span>::scan::ArrowRecordBatchStream;
+<span class="kw">use </span><span class="kw">crate</span>::spec::{
+ MapType, NestedField, PrimitiveType, Type, MAP_KEY_FIELD_NAME,
MAP_VALUE_FIELD_NAME,
+};
<span class="kw">use </span><span class="kw">crate</span>::table::Table;
<span class="kw">use </span><span class="kw">crate</span>::Result;
@@ -227,51 +260,72 @@
<span class="self">Self </span>{ table }
}
- <span class="doccomment">/// Returns the schema of the snapshots table.
- </span><span class="kw">pub fn </span>schema(<span
class="kw-2">&</span><span class="self">self</span>) -> Schema {
- Schema::new(<span class="macro">vec!</span>[
- Field::new(
+ <span class="doccomment">/// Returns the iceberg schema of the snapshots
table.
+ </span><span class="kw">pub fn </span>schema(<span
class="kw-2">&</span><span class="self">self</span>) -> <span
class="kw">crate</span>::spec::Schema {
+ <span class="kw">let </span>fields = <span class="macro">vec!</span>[
+ NestedField::required(
+ <span class="number">1</span>,
<span class="string">"committed_at"</span>,
- DataType::Timestamp(TimeUnit::Millisecond, <span
class="prelude-val">Some</span>(<span class="string">"+00:00"</span>.into())),
- <span class="bool-val">false</span>,
+ Type::Primitive(PrimitiveType::Timestamptz),
),
- Field::new(<span class="string">"snapshot_id"</span>,
DataType::Int64, <span class="bool-val">false</span>),
- Field::new(<span class="string">"parent_id"</span>,
DataType::Int64, <span class="bool-val">true</span>),
- Field::new(<span class="string">"operation"</span>,
DataType::Utf8, <span class="bool-val">false</span>),
- Field::new(<span class="string">"manifest_list"</span>,
DataType::Utf8, <span class="bool-val">false</span>),
- Field::new(
+ NestedField::required(<span class="number">2</span>, <span
class="string">"snapshot_id"</span>, Type::Primitive(PrimitiveType::Long)),
+ NestedField::optional(<span class="number">3</span>, <span
class="string">"parent_id"</span>, Type::Primitive(PrimitiveType::Long)),
+ NestedField::optional(<span class="number">4</span>, <span
class="string">"operation"</span>, Type::Primitive(PrimitiveType::String)),
+ NestedField::optional(<span class="number">5</span>, <span
class="string">"manifest_list"</span>, Type::Primitive(PrimitiveType::String)),
+ NestedField::optional(
+ <span class="number">6</span>,
<span class="string">"summary"</span>,
- DataType::Map(
- Arc::new(Field::new(
- <span class="string">"entries"</span>,
- DataType::Struct(
- <span class="macro">vec!</span>[
- Field::new(<span class="string">"keys"</span>,
DataType::Utf8, <span class="bool-val">false</span>),
- Field::new(<span
class="string">"values"</span>, DataType::Utf8, <span
class="bool-val">true</span>),
- ]
- .into(),
- ),
+ Type::Map(MapType {
+ key_field: Arc::new(NestedField::map_key_element(
+ <span class="number">7</span>,
+ Type::Primitive(PrimitiveType::String),
+ )),
+ value_field: Arc::new(NestedField::map_value_element(
+ <span class="number">8</span>,
+ Type::Primitive(PrimitiveType::String),
<span class="bool-val">false</span>,
)),
- <span class="bool-val">false</span>,
- ),
- <span class="bool-val">false</span>,
+ }),
),
- ])
+ ];
+ <span class="kw">crate</span>::spec::Schema::builder()
+ .with_fields(fields.into_iter().map(|f| f.into()))
+ .build()
+ .unwrap()
}
<span class="doccomment">/// Scans the snapshots table.
</span><span class="kw">pub async fn </span>scan(<span
class="kw-2">&</span><span class="self">self</span>) -> <span
class="prelude-ty">Result</span><ArrowRecordBatchStream> {
+ <span class="kw">let </span>schema = schema_to_arrow_schema(<span
class="kw-2">&</span><span class="self">self</span>.schema())<span
class="question-mark">?</span>;
+
<span class="kw">let </span><span class="kw-2">mut </span>committed_at
=
-
PrimitiveBuilder::<TimestampMillisecondType>::new().with_timezone(<span
class="string">"+00:00"</span>);
+
PrimitiveBuilder::<TimestampMicrosecondType>::new().with_timezone(<span
class="string">"+00:00"</span>);
<span class="kw">let </span><span class="kw-2">mut </span>snapshot_id
= PrimitiveBuilder::<Int64Type>::new();
<span class="kw">let </span><span class="kw-2">mut </span>parent_id =
PrimitiveBuilder::<Int64Type>::new();
<span class="kw">let </span><span class="kw-2">mut </span>operation =
StringBuilder::new();
<span class="kw">let </span><span class="kw-2">mut
</span>manifest_list = StringBuilder::new();
- <span class="kw">let </span><span class="kw-2">mut </span>summary =
MapBuilder::new(<span class="prelude-val">None</span>, StringBuilder::new(),
StringBuilder::new());
-
+ <span class="kw">let </span><span class="kw-2">mut </span>summary =
MapBuilder::new(
+ <span class="prelude-val">Some</span>(MapFieldNames {
+ entry: DEFAULT_MAP_FIELD_NAME.to_string(),
+ key: MAP_KEY_FIELD_NAME.to_string(),
+ value: MAP_VALUE_FIELD_NAME.to_string(),
+ }),
+ StringBuilder::new(),
+ StringBuilder::new(),
+ )
+ .with_keys_field(Arc::new(
+ Field::new(MAP_KEY_FIELD_NAME, DataType::Utf8, <span
class="bool-val">false</span>).with_metadata(HashMap::from([(
+ PARQUET_FIELD_ID_META_KEY.to_string(),
+ <span class="string">"7"</span>.to_string(),
+ )])),
+ ))
+ .with_values_field(Arc::new(
+ Field::new(MAP_VALUE_FIELD_NAME, DataType::Utf8, <span
class="bool-val">true</span>).with_metadata(HashMap::from([
+ (PARQUET_FIELD_ID_META_KEY.to_string(), <span
class="string">"8"</span>.to_string()),
+ ])),
+ ));
<span class="kw">for </span>snapshot <span class="kw">in </span><span
class="self">self</span>.table.metadata().snapshots() {
- committed_at.append_value(snapshot.timestamp_ms());
+ committed_at.append_value(snapshot.timestamp_ms() * <span
class="number">1000</span>);
snapshot_id.append_value(snapshot.snapshot_id());
parent_id.append_option(snapshot.parent_snapshot_id());
manifest_list.append_value(snapshot.manifest_list());
@@ -283,7 +337,7 @@
summary.append(<span class="bool-val">true</span>)<span
class="question-mark">?</span>;
}
- <span class="kw">let </span>batch =
RecordBatch::try_new(Arc::new(<span class="self">self</span>.schema()), <span
class="macro">vec!</span>[
+ <span class="kw">let </span>batch =
RecordBatch::try_new(Arc::new(schema), <span class="macro">vec!</span>[
Arc::new(committed_at.finish()),
Arc::new(snapshot_id.finish()),
Arc::new(parent_id.finish()),
@@ -312,14 +366,14 @@
check_record_batches(
batch_stream,
<span class="macro">expect!</span>[[<span class="string">r#"
- Field { name: "committed_at", data_type:
Timestamp(Millisecond, Some("+00:00")), nullable: false, dict_id: 0,
dict_is_ordered: false, metadata: {} },
- Field { name: "snapshot_id", data_type: Int64, nullable:
false, dict_id: 0, dict_is_ordered: false, metadata: {} },
- Field { name: "parent_id", data_type: Int64, nullable: true,
dict_id: 0, dict_is_ordered: false, metadata: {} },
- Field { name: "operation", data_type: Utf8, nullable: false,
dict_id: 0, dict_is_ordered: false, metadata: {} },
- Field { name: "manifest_list", data_type: Utf8, nullable:
false, dict_id: 0, dict_is_ordered: false, metadata: {} },
- Field { name: "summary", data_type: Map(Field { name:
"entries", data_type: Struct([Field { name: "keys", data_type: Utf8, nullable:
false, dict_id: 0, dict_is_ordered: false, metadata: {} }, Field { name:
"values", data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false,
metadata: {} }]), nullable: false, dict_id: 0, dict_is_ordered: false,
metadata: {} }, false), nullable: false, dict_id: 0, dict_is_ordered: false,
metadata: {} }"#</span>]],
+ Field { name: "committed_at", data_type:
Timestamp(Microsecond, Some("+00:00")), nullable: false, dict_id: 0,
dict_is_ordered: false, metadata: {"PARQUET:field_id": "1"} },
+ Field { name: "snapshot_id", data_type: Int64, nullable:
false, dict_id: 0, dict_is_ordered: false, metadata: {"PARQUET:field_id": "2"}
},
+ Field { name: "parent_id", data_type: Int64, nullable: true,
dict_id: 0, dict_is_ordered: false, metadata: {"PARQUET:field_id": "3"} },
+ Field { name: "operation", data_type: Utf8, nullable: true,
dict_id: 0, dict_is_ordered: false, metadata: {"PARQUET:field_id": "4"} },
+ Field { name: "manifest_list", data_type: Utf8, nullable:
true, dict_id: 0, dict_is_ordered: false, metadata: {"PARQUET:field_id": "5"} },
+ Field { name: "summary", data_type: Map(Field { name:
"key_value", data_type: Struct([Field { name: "key", data_type: Utf8, nullable:
false, dict_id: 0, dict_is_ordered: false, metadata: {"PARQUET:field_id": "7"}
}, Field { name: "value", data_type: Utf8, nullable: true, dict_id: 0,
dict_is_ordered: false, metadata: {"PARQUET:field_id": "8"} }]), nullable:
false, dict_id: 0, dict_is_ordered: false, metadata: {} }, false), nullable:
true, dict_id: 0, dict_is_ordered: false [...]
<span class="macro">expect!</span>[[<span class="string">r#"
- committed_at: PrimitiveArray<Timestamp(Millisecond,
Some("+00:00"))>
+ committed_at: PrimitiveArray<Timestamp(Microsecond,
Some("+00:00"))>
[
2018-01-04T21:22:35.770+00:00,
2019-04-12T20:29:15.770+00:00,
@@ -347,11 +401,11 @@
[
]
[
- -- child 0: "keys" (Utf8)
+ -- child 0: "key" (Utf8)
StringArray
[
]
- -- child 1: "values" (Utf8)
+ -- child 1: "value" (Utf8)
StringArray
[
]
@@ -361,11 +415,11 @@
[
]
[
- -- child 0: "keys" (Utf8)
+ -- child 0: "key" (Utf8)
StringArray
[
]
- -- child 1: "values" (Utf8)
+ -- child 1: "value" (Utf8)
StringArray
[
]