This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 3f0aee23437 deploy: a20116ec36f8c0c959aa9e6c547dc7e5625ebb1b
3f0aee23437 is described below
commit 3f0aee234371c0d1746fdb54deea50f0860071d7
Author: alamb <[email protected]>
AuthorDate: Tue Jun 11 18:50:23 2024 +0000
deploy: a20116ec36f8c0c959aa9e6c547dc7e5625ebb1b
---
index.html | 2 +-
.../selection/fn.intersect_row_selections.html | 2 +-
parquet/arrow/arrow_reader/selection/index.html | 2 +-
.../selection/struct.RowSelection.html | 37 +++++++++++++---------
.../arrow_reader/selection/struct.RowSelector.html | 2 +-
.../arrow/arrow_reader/struct.RowSelection.html | 37 +++++++++++++---------
parquet/arrow/arrow_reader/struct.RowSelector.html | 2 +-
src/parquet/arrow/arrow_reader/selection.rs.html | 32 +++++++++++++++++--
8 files changed, 78 insertions(+), 38 deletions(-)
diff --git a/index.html b/index.html
index 5affe225a19..775dc9a163e 100644
--- a/index.html
+++ b/index.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="List of
crates"><title>Index of
crates</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="List of
crates"><title>Index of
crates</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/parquet/arrow/arrow_reader/selection/fn.intersect_row_selections.html
b/parquet/arrow/arrow_reader/selection/fn.intersect_row_selections.html
index b457b646f82..4e834537dc6 100644
--- a/parquet/arrow/arrow_reader/selection/fn.intersect_row_selections.html
+++ b/parquet/arrow/arrow_reader/selection/fn.intersect_row_selections.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="Combine
two lists of `RowSelection` return the intersection of them For example: self:
NNYYYYNNYYNYN other: NYNNNNNNY"><title>intersect_row_selections in
parquet::arrow::arrow_reader::selection -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjac
[...]
+<!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="Combine
two lists of `RowSelection` return the intersection of them For example: self:
NNYYYYNNYYNYN other: NYNNNNNNY"><title>intersect_row_selections in
parquet::arrow::arrow_reader::selection -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjac
[...]
left: &[<a class="struct" href="struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a>],
right: &[<a class="struct" href="struct.RowSelector.html"
title="struct
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a>],
) -> <a class="struct" href="struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection">RowSelection</a></code></pre><details
class="toggle top-doc" open><summary class="hideme"><span>Expand
description</span></summary><div class="docblock"><p>Combine two lists of
<code>RowSelection</code> return the intersection of them
diff --git a/parquet/arrow/arrow_reader/selection/index.html
b/parquet/arrow/arrow_reader/selection/index.html
index 944b31243d5..46849d61f3c 100644
--- a/parquet/arrow/arrow_reader/selection/index.html
+++ b/parquet/arrow/arrow_reader/selection/index.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="API
documentation for the Rust `selection` mod in crate
`parquet`."><title>parquet::arrow::arrow_reader::selection -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-01
[...]
+<!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="API
documentation for the Rust `selection` mod in crate
`parquet`."><title>parquet::arrow::arrow_reader::selection -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-01
[...]
when scanning the parquet file.</div></li><li><div class="item-name"><a
class="struct" href="struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a></div><div
class="desc docblock-short"><a href="struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
is a collection of <a href="struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelecto [...]
scanning a parquet file</div></li></ul><h2 id="functions"
class="section-header">Functions<a href="#functions"
class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a
class="fn" href="fn.intersect_row_selections.html" title="fn
parquet::arrow::arrow_reader::selection::intersect_row_selections">intersect_row_selections</a><span
title="Restricted Visibility"> 🔒</span> </div><div class="desc
docblock-short">Combine two lists of <code>RowSelection</code> return the [...]
For example:
diff --git a/parquet/arrow/arrow_reader/selection/struct.RowSelection.html
b/parquet/arrow/arrow_reader/selection/struct.RowSelection.html
index 09e2e5e4c40..546d94e2253 100644
--- a/parquet/arrow/arrow_reader/selection/struct.RowSelection.html
+++ b/parquet/arrow/arrow_reader/selection/struct.RowSelection.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="`RowSelection` allows selecting or skipping a provided number of rows
when scanning the parquet file."><title>RowSelection in
parquet::arrow::arrow_reader::selection -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-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="`RowSelection` allows selecting or skipping a provided number of rows
when scanning the parquet file."><title>RowSelection in
parquet::arrow::arrow_reader::selection -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Reg
[...]
selectors: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"
title="struct alloc::vec::Vec">Vec</a><<a class="struct"
href="struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a>>,
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p><a href="struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
allows selecting or skipping a provided number of rows
when scanning the parquet file.</p>
@@ -25,6 +25,13 @@ that don’t satisfy a predicate</p>
RowSelector::skip(<span class="number">5</span>),
];
+<span class="kw">let </span>actual: Vec<RowSelector> = selection.into();
+<span class="macro">assert_eq!</span>(actual, expected);
+
+<span class="comment">// you can also create a selection from consecutive
ranges
+</span><span class="kw">let </span>ranges = <span
class="macro">vec!</span>[<span class="number">5</span>..<span
class="number">10</span>, <span class="number">10</span>..<span
class="number">15</span>];
+<span class="kw">let </span>selection =
+ RowSelection::from_consecutive_ranges(ranges.into_iter(), <span
class="number">20</span>);
<span class="kw">let </span>actual: Vec<RowSelector> = selection.into();
<span class="macro">assert_eq!</span>(actual, expected);</code></pre></div>
<p>A <a href="struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
maintains the following invariants:</p>
@@ -32,20 +39,20 @@ that don’t satisfy a predicate</p>
<li>It contains no <a href="struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelector"><code>RowSelector</code></a>
of 0 rows</li>
<li>Consecutive <a href="struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelector"><code>RowSelector</code></a>s
alternate skipping or selecting rows</li>
</ul>
-</div></details><h2 id="fields" class="fields section-header">Fields<a
href="#fields" class="anchor">§</a></h2><span id="structfield.selectors"
class="structfield section-header"><a href="#structfield.selectors"
class="anchor field">§</a><code>selectors: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"
title="struct alloc::vec::Vec">Vec</a><<a class="struct"
href="struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSel [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a
href="#fields" class="anchor">§</a></h2><span id="structfield.selectors"
class="structfield section-header"><a href="#structfield.selectors"
class="anchor field">§</a><code>selectors: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"
title="struct alloc::vec::Vec">Vec</a><<a class="struct"
href="struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSel [...]
<h5 id="panic"><a class="doc-anchor" href="#panic">§</a>Panic</h5>
<p>Panics if any of the [<code>BooleanArray</code>] contain nulls</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.from_consecutive_ranges" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#118-149">source</a><h4
class="code-header">pub(crate) fn <a href="#method.from_consecutive_ranges"
class="fn">from_consecutive_ranges</a><I: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html"
title="trait core::iter: [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.from_consecutive_ranges" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#125-156">source</a><h4
class="code-header">pub fn <a href="#method.from_consecutive_ranges"
class="fn">from_consecutive_ranges</a><I: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html"
title="trait core::iter::traits [...]
ranges: I,
total_rows: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
) -> Self</h4></section></summary><div class="docblock"><p>Creates a <a
href="struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
from an iterator of consecutive ranges to keep</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.scan_ranges" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#158-205">source</a><h4
class="code-header">pub fn <a href="#method.scan_ranges"
class="fn">scan_ranges</a>(&self, page_locations: &[<a class="struct"
href="../../../format/struct.PageLocation.html" title="struct
parquet::format::PageLocation">PageLocation</a>]) -> <a class [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.scan_ranges" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#165-212">source</a><h4
class="code-header">pub fn <a href="#method.scan_ranges"
class="fn">scan_ranges</a>(&self, page_locations: &[<a class="struct"
href="../../../format/struct.PageLocation.html" title="struct
parquet::format::PageLocation">PageLocation</a>]) -> <a class [...]
<p>This is useful for determining what byte ranges to fetch from underlying
storage</p>
<p>Note: this method does not make any effort to combine consecutive ranges,
nor coalesce
ranges that are close together. This is instead delegated to the IO subsystem
to optimise,
e.g. <a
href="object_store::ObjectStore::get_ranges"><code>ObjectStore::get_ranges</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.split_off" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#208-243">source</a><h4
class="code-header">pub fn <a href="#method.split_off"
class="fn">split_off</a>(&mut self, row_count: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.and_then" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#266-327">source</a><h4
class="code-header">pub fn <a href="#method.and_then"
class="fn">and_then</a>(&self, other: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Self</a>)
-> Self</h4></section></summary><div class="docblock"><p>re [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.split_off" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#215-250">source</a><h4
class="code-header">pub fn <a href="#method.split_off"
class="fn">split_off</a>(&mut self, row_count: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.and_then" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#273-334">source</a><h4
class="code-header">pub fn <a href="#method.and_then"
class="fn">and_then</a>(&self, other: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Self</a>)
-> Self</h4></section></summary><div class="docblock"><p>re [...]
input <a href="struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>s.</p>
<p>This is equivalent to the logical <code>AND</code> / conjunction of the two
selections.</p>
@@ -59,21 +66,21 @@ returned: NNNNNNNNNNNNYYYYYNNNNYYYYYYYYYYYYYNNNYYNNN
</code></pre></div><h5 id="panics"><a class="doc-anchor"
href="#panics">§</a>Panics</h5>
<p>Panics if <code>other</code> does not have a length equal to the number of
rows selected
by this RowSelection</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.intersection" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#335-337">source</a><h4
class="code-header">pub fn <a href="#method.intersection"
class="fn">intersection</a>(&self, other: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Self</a>)
-> Self</h4></section></summary><div class="doc [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.intersection" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#342-344">source</a><h4
class="code-header">pub fn <a href="#method.intersection"
class="fn">intersection</a>(&self, other: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Self</a>)
-> Self</h4></section></summary><div class="doc [...]
For example:
self: NNYYYYNNYYNYN
other: NYNNNNNNY</p>
<p>returned: NNNNNNNNYYNYN</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.selects_any" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#340-342">source</a><h4
class="code-header">pub fn <a href="#method.selects_any"
class="fn">selects_any</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div
class="docblock"><p>Returns <code>tr [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.trim" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#345-350">source</a><h4
class="code-header">pub(crate) fn <a href="#method.trim"
class="fn">trim</a>(self) -> Self</h4></section></summary><div
class="docblock"><p>Trims this <a href="struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowS [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.offset" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#353-390">source</a><h4
class="code-header">pub(crate) fn <a href="#method.offset"
class="fn">offset</a>(self, offset: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Applies an of [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.limit" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#393-410">source</a><h4
class="code-header">pub(crate) fn <a href="#method.limit"
class="fn">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>Limit this <a hre
[...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.iter" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#414-416">source</a><h4
class="code-header">pub fn <a href="#method.iter"
class="fn">iter</a>(&self) -> impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html"
title="trait core::iter::traits::iterator::Iterator">Iterator</a><Ite [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.selects_any" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#347-349">source</a><h4
class="code-header">pub fn <a href="#method.selects_any"
class="fn">selects_any</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div
class="docblock"><p>Returns <code>tr [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.trim" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#352-357">source</a><h4
class="code-header">pub(crate) fn <a href="#method.trim"
class="fn">trim</a>(self) -> Self</h4></section></summary><div
class="docblock"><p>Trims this <a href="struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowS [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.offset" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#360-397">source</a><h4
class="code-header">pub(crate) fn <a href="#method.offset"
class="fn">offset</a>(self, offset: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Applies an of [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.limit" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#400-417">source</a><h4
class="code-header">pub(crate) fn <a href="#method.limit"
class="fn">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>Limit this <a hre
[...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.iter" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#421-423">source</a><h4
class="code-header">pub fn <a href="#method.iter"
class="fn">iter</a>(&self) -> impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html"
title="trait core::iter::traits::iterator::Iterator">Iterator</a><Ite [...]
<a href="struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.row_count" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#419-421">source</a><h4
class="code-header">pub fn <a href="#method.row_count"
class="fn">row_count</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div
class="docblock"><p>Returns the number o [...]
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a
href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 cl [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.row_count" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#426-428">source</a><h4
class="code-header">pub fn <a href="#method.row_count"
class="fn">row_count</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div
class="docblock"><p>Returns the number o [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#99">source</a><a
href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 cl [...]
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><section id="impl-Eq-for-RowSelection"
class="impl"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a
href="#impl-Eq-for-RowSelection" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait
core::cmp::Eq">Eq</a> for <a class="struct" href="struct. [...]
+sufficient, and should not be overridden without very good
reason.</div></details></div></details><section id="impl-Eq-for-RowSelection"
class="impl"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#99">source</a><a
href="#impl-Eq-for-RowSelection" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait
core::cmp::Eq">Eq</a> for <a class="struct" href="struct. [...]
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/parquet/arrow/arrow_reader/selection/struct.RowSelector.html
b/parquet/arrow/arrow_reader/selection/struct.RowSelector.html
index ace594d91c3..8836d67ae5b 100644
--- a/parquet/arrow/arrow_reader/selection/struct.RowSelector.html
+++ b/parquet/arrow/arrow_reader/selection/struct.RowSelector.html
@@ -7,7 +7,7 @@ scanning a parquet file</p>
</div><span id="structfield.skip" class="structfield section-header"><a
href="#structfield.skip" class="anchor field">§</a><code>skip: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div
class="docblock"><p>If true, skip <code>row_count</code> rows</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-RowSelector" class="impl"><a class="src
rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#35-51">source</a><a
href="#impl-RowSelector" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.RowSelector.html" tit [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.skip" class="method"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#45-50">source</a><h4
class="code-header">pub fn <a href="#method.skip"
class="fn">skip</a>(row_count: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Skip
<code>row_count</code> rows</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-RowSelector" class="impl"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
href="#impl-Clone-for-RowSelector" class="anchor">§</a><h3 clas [...]
+</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-RowSelector" class="impl"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
href="#impl-Clone-for-RowSelector" class="anchor">§</a><h3 clas [...]
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><section id="impl-Copy-for-RowSelector"
class="impl"><a class="src rightside"
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
href="#impl-Copy-for-RowSelector" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html"
title="trait core::marker::Copy">Copy</a> for <a class="struct" [...]
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
[...]
diff --git a/parquet/arrow/arrow_reader/struct.RowSelection.html
b/parquet/arrow/arrow_reader/struct.RowSelection.html
index 83407074d6e..7276838a0e6 100644
--- a/parquet/arrow/arrow_reader/struct.RowSelection.html
+++ b/parquet/arrow/arrow_reader/struct.RowSelection.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="`RowSelection` allows selecting or skipping a provided number of rows
when scanning the parquet file."><title>RowSelection in
parquet::arrow::arrow_reader -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98e
[...]
+<!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="`RowSelection` allows selecting or skipping a provided number of rows
when scanning the parquet file."><title>RowSelection in
parquet::arrow::arrow_reader -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98e
[...]
selectors: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"
title="struct alloc::vec::Vec">Vec</a><<a class="struct"
href="selection/struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a>>,
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p><a href="selection/struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
allows selecting or skipping a provided number of rows
when scanning the parquet file.</p>
@@ -25,6 +25,13 @@ that don’t satisfy a predicate</p>
RowSelector::skip(<span class="number">5</span>),
];
+<span class="kw">let </span>actual: Vec<RowSelector> = selection.into();
+<span class="macro">assert_eq!</span>(actual, expected);
+
+<span class="comment">// you can also create a selection from consecutive
ranges
+</span><span class="kw">let </span>ranges = <span
class="macro">vec!</span>[<span class="number">5</span>..<span
class="number">10</span>, <span class="number">10</span>..<span
class="number">15</span>];
+<span class="kw">let </span>selection =
+ RowSelection::from_consecutive_ranges(ranges.into_iter(), <span
class="number">20</span>);
<span class="kw">let </span>actual: Vec<RowSelector> = selection.into();
<span class="macro">assert_eq!</span>(actual, expected);</code></pre></div>
<p>A <a href="selection/struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
maintains the following invariants:</p>
@@ -32,20 +39,20 @@ that don’t satisfy a predicate</p>
<li>It contains no <a href="selection/struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelector"><code>RowSelector</code></a>
of 0 rows</li>
<li>Consecutive <a href="selection/struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelector"><code>RowSelector</code></a>s
alternate skipping or selecting rows</li>
</ul>
-</div></details><h2 id="fields" class="fields section-header">Fields<a
href="#fields" class="anchor">§</a></h2><span id="structfield.selectors"
class="structfield section-header"><a href="#structfield.selectors"
class="anchor field">§</a><code>selectors: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"
title="struct alloc::vec::Vec">Vec</a><<a class="struct"
href="selection/struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selecti [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a
href="#fields" class="anchor">§</a></h2><span id="structfield.selectors"
class="structfield section-header"><a href="#structfield.selectors"
class="anchor field">§</a><code>selectors: <a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"
title="struct alloc::vec::Vec">Vec</a><<a class="struct"
href="selection/struct.RowSelector.html" title="struct
parquet::arrow::arrow_reader::selecti [...]
<h5 id="panic"><a class="doc-anchor" href="#panic">§</a>Panic</h5>
<p>Panics if any of the [<code>BooleanArray</code>] contain nulls</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.from_consecutive_ranges" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#118-149">source</a><h4
class="code-header">pub(crate) fn <a href="#method.from_consecutive_ranges"
class="fn">from_consecutive_ranges</a><I: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html"
title="trait core::iter::tr [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.from_consecutive_ranges" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#125-156">source</a><h4
class="code-header">pub fn <a href="#method.from_consecutive_ranges"
class="fn">from_consecutive_ranges</a><I: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html"
title="trait core::iter::traits::i [...]
ranges: I,
total_rows: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
) -> Self</h4></section></summary><div class="docblock"><p>Creates a <a
href="selection/struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
from an iterator of consecutive ranges to keep</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.scan_ranges" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#158-205">source</a><h4
class="code-header">pub fn <a href="#method.scan_ranges"
class="fn">scan_ranges</a>(&self, page_locations: &[<a class="struct"
href="../../format/struct.PageLocation.html" title="struct
parquet::format::PageLocation">PageLocation</a>]) -> <a class="stru [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.scan_ranges" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#165-212">source</a><h4
class="code-header">pub fn <a href="#method.scan_ranges"
class="fn">scan_ranges</a>(&self, page_locations: &[<a class="struct"
href="../../format/struct.PageLocation.html" title="struct
parquet::format::PageLocation">PageLocation</a>]) -> <a class="stru [...]
<p>This is useful for determining what byte ranges to fetch from underlying
storage</p>
<p>Note: this method does not make any effort to combine consecutive ranges,
nor coalesce
ranges that are close together. This is instead delegated to the IO subsystem
to optimise,
e.g. <a
href="object_store::ObjectStore::get_ranges"><code>ObjectStore::get_ranges</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.split_off" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#208-243">source</a><h4
class="code-header">pub fn <a href="#method.split_off"
class="fn">split_off</a>(&mut self, row_count: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Sp [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.and_then" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#266-327">source</a><h4
class="code-header">pub fn <a href="#method.and_then"
class="fn">and_then</a>(&self, other: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Self</a>)
-> Self</h4></section></summary><div class="docblock"><p>retur [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.split_off" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#215-250">source</a><h4
class="code-header">pub fn <a href="#method.split_off"
class="fn">split_off</a>(&mut self, row_count: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Sp [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.and_then" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#273-334">source</a><h4
class="code-header">pub fn <a href="#method.and_then"
class="fn">and_then</a>(&self, other: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Self</a>)
-> Self</h4></section></summary><div class="docblock"><p>retur [...]
input <a href="selection/struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>s.</p>
<p>This is equivalent to the logical <code>AND</code> / conjunction of the two
selections.</p>
@@ -59,21 +66,21 @@ returned: NNNNNNNNNNNNYYYYYNNNNYYYYYYYYYYYYYNNNYYNNN
</code></pre></div><h5 id="panics"><a class="doc-anchor"
href="#panics">§</a>Panics</h5>
<p>Panics if <code>other</code> does not have a length equal to the number of
rows selected
by this RowSelection</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.intersection" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#335-337">source</a><h4
class="code-header">pub fn <a href="#method.intersection"
class="fn">intersection</a>(&self, other: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Self</a>)
-> Self</h4></section></summary><div class="docblo [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.intersection" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#342-344">source</a><h4
class="code-header">pub fn <a href="#method.intersection"
class="fn">intersection</a>(&self, other: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&Self</a>)
-> Self</h4></section></summary><div class="docblo [...]
For example:
self: NNYYYYNNYYNYN
other: NYNNNNNNY</p>
<p>returned: NNNNNNNNYYNYN</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.selects_any" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#340-342">source</a><h4
class="code-header">pub fn <a href="#method.selects_any"
class="fn">selects_any</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div
class="docblock"><p>Returns <code>true< [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.trim" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#345-350">source</a><h4
class="code-header">pub(crate) fn <a href="#method.trim"
class="fn">trim</a>(self) -> Self</h4></section></summary><div
class="docblock"><p>Trims this <a href="selection/struct.RowSelection.html"
title="struct parquet::arrow::arrow_reader::selection::RowSelection"><co [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.offset" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#353-390">source</a><h4
class="code-header">pub(crate) fn <a href="#method.offset"
class="fn">offset</a>(self, offset: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Applies an offse
[...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.limit" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#393-410">source</a><h4
class="code-header">pub(crate) fn <a href="#method.limit"
class="fn">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>Limit this <a
href=" [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.iter" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#414-416">source</a><h4
class="code-header">pub fn <a href="#method.iter"
class="fn">iter</a>(&self) -> impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html"
title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item =
[...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.selects_any" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#347-349">source</a><h4
class="code-header">pub fn <a href="#method.selects_any"
class="fn">selects_any</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div
class="docblock"><p>Returns <code>true< [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.trim" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#352-357">source</a><h4
class="code-header">pub(crate) fn <a href="#method.trim"
class="fn">trim</a>(self) -> Self</h4></section></summary><div
class="docblock"><p>Trims this <a href="selection/struct.RowSelection.html"
title="struct parquet::arrow::arrow_reader::selection::RowSelection"><co [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.offset" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#360-397">source</a><h4
class="code-header">pub(crate) fn <a href="#method.offset"
class="fn">offset</a>(self, offset: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Applies an offse
[...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.limit" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#400-417">source</a><h4
class="code-header">pub(crate) fn <a href="#method.limit"
class="fn">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>Limit this <a
href=" [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.iter" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#421-423">source</a><h4
class="code-header">pub fn <a href="#method.iter"
class="fn">iter</a>(&self) -> impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html"
title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item =
[...]
<a href="selection/struct.RowSelection.html" title="struct
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.row_count" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#419-421">source</a><h4
class="code-header">pub fn <a href="#method.row_count"
class="fn">row_count</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div
class="docblock"><p>Returns the number of s [...]
-</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-RowSelection" class="impl"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a
href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 class [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.row_count" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#426-428">source</a><h4
class="code-header">pub fn <a href="#method.row_count"
class="fn">row_count</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div
class="docblock"><p>Returns the number of s [...]
+</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-RowSelection" class="impl"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#99">source</a><a
href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 class [...]
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><section id="impl-Eq-for-RowSelection"
class="impl"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a
href="#impl-Eq-for-RowSelection" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait
core::cmp::Eq">Eq</a> for <a class="struct" href="selection/ [...]
+sufficient, and should not be overridden without very good
reason.</div></details></div></details><section id="impl-Eq-for-RowSelection"
class="impl"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#99">source</a><a
href="#impl-Eq-for-RowSelection" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait
core::cmp::Eq">Eq</a> for <a class="struct" href="selection/ [...]
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/parquet/arrow/arrow_reader/struct.RowSelector.html
b/parquet/arrow/arrow_reader/struct.RowSelector.html
index 668d8fa406c..c85f5dd288f 100644
--- a/parquet/arrow/arrow_reader/struct.RowSelector.html
+++ b/parquet/arrow/arrow_reader/struct.RowSelector.html
@@ -7,7 +7,7 @@ scanning a parquet file</p>
</div><span id="structfield.skip" class="structfield section-header"><a
href="#structfield.skip" class="anchor field">§</a><code>skip: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div
class="docblock"><p>If true, skip <code>row_count</code> rows</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-RowSelector" class="impl"><a class="src
rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#35-51">source</a><a
href="#impl-RowSelector" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="selection/struct.RowSelector.ht [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.skip" class="method"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#45-50">source</a><h4
class="code-header">pub fn <a href="#method.skip"
class="fn">skip</a>(row_count: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Skip
<code>row_count</code> rows</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-RowSelector" class="impl"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
href="#impl-Clone-for-RowSelector" class="anchor">§</a><h3 class=" [...]
+</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-RowSelector" class="impl"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
href="#impl-Clone-for-RowSelector" class="anchor">§</a><h3 class=" [...]
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><section id="impl-Copy-for-RowSelector"
class="impl"><a class="src rightside"
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
href="#impl-Copy-for-RowSelector" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html"
title="trait core::marker::Copy">Copy</a> for <a class="struct" hr [...]
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
[...]
diff --git a/src/parquet/arrow/arrow_reader/selection.rs.html
b/src/parquet/arrow/arrow_reader/selection.rs.html
index be4caf9bb45..a767d76a66a 100644
--- a/src/parquet/arrow/arrow_reader/selection.rs.html
+++ b/src/parquet/arrow/arrow_reader/selection.rs.html
@@ -1201,6 +1201,19 @@
<a href="#1201" id="1201">1201</a>
<a href="#1202" id="1202">1202</a>
<a href="#1203" id="1203">1203</a>
+<a href="#1204" id="1204">1204</a>
+<a href="#1205" id="1205">1205</a>
+<a href="#1206" id="1206">1206</a>
+<a href="#1207" id="1207">1207</a>
+<a href="#1208" id="1208">1208</a>
+<a href="#1209" id="1209">1209</a>
+<a href="#1210" id="1210">1210</a>
+<a href="#1211" id="1211">1211</a>
+<a href="#1212" id="1212">1212</a>
+<a href="#1213" id="1213">1213</a>
+<a href="#1214" id="1214">1214</a>
+<a href="#1215" id="1215">1215</a>
+<a href="#1216" id="1216">1216</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
@@ -1284,6 +1297,13 @@
///
/// let actual: Vec<RowSelector> = selection.into();
/// assert_eq!(actual, expected);
+///
+/// // you can also create a selection from consecutive ranges
+/// let ranges = vec![5..10, 10..15];
+/// let selection =
+/// RowSelection::from_consecutive_ranges(ranges.into_iter(), 20);
+/// let actual: Vec<RowSelector> = selection.into();
+/// assert_eq!(actual, expected);
/// ```
///
/// A [`RowSelection`] maintains the following invariants:
@@ -1318,7 +1338,7 @@
}
<span class="doccomment">/// Creates a [`RowSelection`] from an iterator
of consecutive ranges to keep
- </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span
class="kw">fn </span>from_consecutive_ranges<I: Iterator<Item =
Range<usize>>>(
+ </span><span class="kw">pub fn </span>from_consecutive_ranges<I:
Iterator<Item = Range<usize>>>(
ranges: I,
total_rows: usize,
) -> <span class="self">Self </span>{
@@ -2339,7 +2359,7 @@
}
<span class="attr">#[test]
- </span><span class="kw">fn </span>test_empty_ranges() {
+ </span><span class="kw">fn </span>test_from_ranges() {
<span class="kw">let </span>ranges = [<span
class="number">1</span>..<span class="number">3</span>, <span
class="number">4</span>..<span class="number">6</span>, <span
class="number">6</span>..<span class="number">6</span>, <span
class="number">8</span>..<span class="number">8</span>, <span
class="number">9</span>..<span class="number">10</span>];
<span class="kw">let </span>selection =
RowSelection::from_consecutive_ranges(ranges.into_iter(), <span
class="number">10</span>);
<span class="macro">assert_eq!</span>(
@@ -2352,7 +2372,13 @@
RowSelector::skip(<span class="number">3</span>),
RowSelector::select(<span class="number">1</span>)
]
- )
+ );
+
+ <span class="kw">let </span>out_of_order_ranges = [<span
class="number">1</span>..<span class="number">3</span>, <span
class="number">8</span>..<span class="number">10</span>, <span
class="number">4</span>..<span class="number">7</span>];
+ <span class="kw">let </span>result = std::panic::catch_unwind(|| {
+
RowSelection::from_consecutive_ranges(out_of_order_ranges.into_iter(), <span
class="number">10</span>)
+ });
+ <span class="macro">assert!</span>(result.is_err());
}
<span class="attr">#[test]