Files
greptimedb/store_api/region_engine/trait.RegionScanner.html
2025-12-23 03:52:51 +00:00

37 lines
13 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 scanner that provides a way to scan the region concurrently."><title>RegionScanner in store_api::region_engine - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="store_api" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">RegionScanner</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../store_api/index.html">store_<wbr>api</a><span class="version">1.0.0-beta.3</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Region<wbr>Scanner</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.has_predicate_without_region" title="has_predicate_without_region">has_predicate_without_region</a></li><li><a href="#tymethod.metadata" title="metadata">metadata</a></li><li><a href="#tymethod.name" title="name">name</a></li><li><a href="#tymethod.prepare" title="prepare">prepare</a></li><li><a href="#tymethod.properties" title="properties">properties</a></li><li><a href="#tymethod.scan_partition" title="scan_partition">scan_partition</a></li><li><a href="#tymethod.schema" title="schema">schema</a></li><li><a href="#tymethod.set_logical_region" title="set_logical_region">set_logical_region</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In store_<wbr>api::<wbr>region_<wbr>engine</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">store_api</a>::<wbr><a href="index.html">region_engine</a></div><h1>Trait <span class="trait">Region<wbr>Scanner</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/store_api/region_engine.rs.html#423-456">Source</a> </span></div><pre class="rust item-decl"><code>pub trait RegionScanner:
<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>
+ DisplayAs
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> {
// Required methods
fn <a href="#tymethod.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.properties" class="fn">properties</a>(&amp;self) -&gt; &amp;<a class="struct" href="struct.ScannerProperties.html" title="struct store_api::region_engine::ScannerProperties">ScannerProperties</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.schema" class="fn">schema</a>(&amp;self) -&gt; <a class="type" href="../storage/type.SchemaRef.html" title="type store_api::storage::SchemaRef">SchemaRef</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.metadata" class="fn">metadata</a>(&amp;self) -&gt; <a class="type" href="../metadata/type.RegionMetadataRef.html" title="type store_api::metadata::RegionMetadataRef">RegionMetadataRef</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.prepare" class="fn">prepare</a>(&amp;mut self, request: <a class="struct" href="struct.PrepareRequest.html" title="struct store_api::region_engine::PrepareRequest">PrepareRequest</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, BoxedError&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.scan_partition" class="fn">scan_partition</a>(
&amp;self,
ctx: &amp;<a class="struct" href="struct.QueryScanContext.html" title="struct store_api::region_engine::QueryScanContext">QueryScanContext</a>,
metrics_set: &amp;ExecutionPlanMetricsSet,
partition: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;SendableRecordBatchStream, BoxedError&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.has_predicate_without_region" class="fn">has_predicate_without_region</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.set_logical_region" class="fn">set_logical_region</a>(&amp;mut self, logical_region: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>);
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A scanner that provides a way to scan the region concurrently.</p>
<p>The scanner splits the region into partitions so that each partition can be scanned concurrently.
You can use this trait to implement an <a href="datafusion_physical_plan::ExecutionPlan"><code>ExecutionPlan</code></a>.</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><section id="tymethod.name" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#424">Source</a><h4 class="code-header">fn <a href="#tymethod.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section><details class="toggle method-toggle" open><summary><section id="tymethod.properties" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#427">Source</a><h4 class="code-header">fn <a href="#tymethod.properties" class="fn">properties</a>(&amp;self) -&gt; &amp;<a class="struct" href="struct.ScannerProperties.html" title="struct store_api::region_engine::ScannerProperties">ScannerProperties</a></h4></section></summary><div class="docblock"><p>Returns the properties of the scanner.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.schema" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#430">Source</a><h4 class="code-header">fn <a href="#tymethod.schema" class="fn">schema</a>(&amp;self) -&gt; <a class="type" href="../storage/type.SchemaRef.html" title="type store_api::storage::SchemaRef">SchemaRef</a></h4></section></summary><div class="docblock"><p>Returns the schema of the record batches.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.metadata" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#433">Source</a><h4 class="code-header">fn <a href="#tymethod.metadata" class="fn">metadata</a>(&amp;self) -&gt; <a class="type" href="../metadata/type.RegionMetadataRef.html" title="type store_api::metadata::RegionMetadataRef">RegionMetadataRef</a></h4></section></summary><div class="docblock"><p>Returns the metadata of the region.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.prepare" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#438">Source</a><h4 class="code-header">fn <a href="#tymethod.prepare" class="fn">prepare</a>(&amp;mut self, request: <a class="struct" href="struct.PrepareRequest.html" title="struct store_api::region_engine::PrepareRequest">PrepareRequest</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, BoxedError&gt;</h4></section></summary><div class="docblock"><p>Prepares the scanner with the given partition ranges.</p>
<p>This method is for the planner to adjust the scanners behavior based on the partition ranges.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.scan_partition" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#444-449">Source</a><h4 class="code-header">fn <a href="#tymethod.scan_partition" class="fn">scan_partition</a>(
&amp;self,
ctx: &amp;<a class="struct" href="struct.QueryScanContext.html" title="struct store_api::region_engine::QueryScanContext">QueryScanContext</a>,
metrics_set: &amp;ExecutionPlanMetricsSet,
partition: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;SendableRecordBatchStream, BoxedError&gt;</h4></section></summary><div class="docblock"><p>Scans the partition and returns a stream of record batches.</p>
<h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
<p>Panics if the <code>partition</code> is out of bound.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.has_predicate_without_region" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#452">Source</a><h4 class="code-header">fn <a href="#tymethod.has_predicate_without_region" class="fn">has_predicate_without_region</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if there is any predicate exclude region partition exprs that may be executed in this scanner.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.set_logical_region" class="method"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#455">Source</a><h4 class="code-header">fn <a href="#tymethod.set_logical_region" class="fn">set_logical_region</a>(&amp;mut self, logical_region: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</h4></section></summary><div class="docblock"><p>Sets whether the scanner is reading a logical region.</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-RegionScanner-for-SinglePartitionScanner" class="impl"><a class="src rightside" href="../../src/store_api/region_engine.rs.html#949-991">Source</a><a href="#impl-RegionScanner-for-SinglePartitionScanner" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.RegionScanner.html" title="trait store_api::region_engine::RegionScanner">RegionScanner</a> for <a class="struct" href="struct.SinglePartitionScanner.html" title="struct store_api::region_engine::SinglePartitionScanner">SinglePartitionScanner</a></h3></section></div><script src="../../trait.impl/store_api/region_engine/trait.RegionScanner.js" async></script></section></div></main></body></html>